Git 和 Trac(或类似的)

Posted

技术标签:

【中文标题】Git 和 Trac(或类似的)【英文标题】:Git and Trac (or similar) 【发布时间】:2010-10-12 00:12:51 【问题描述】:

过去,我非常喜欢将Trac 与托管在我自己的一些服务器上的颠覆存储库一起使用。票务和在线代码浏览一体化,非常方便。

我在一些公共项目中使用了github,但我没有钱购买额外服务,尤其是当我已经为远程 VPS 托管付费时。

有没有人知道或有任何使用 git 版本控制设置类似 Trac 的经验?具体来说,我已经可以推送到远程服务器,但我想要一些 Web 界面,允许我(以及与我一起工作的人)在线查看代码库的提交和当前状态,而无需公开项目。我知道GitPlugin,但未能成功启动并运行。还有其他建议吗?

需要集成票务(和 wiki),但并非绝对必要。

编辑:

在使用了 GitPlugin 和 Trac 之后,我已经能够启动并运行它。主要问题是我需要通过在 trac.ini 中执行类似的操作来为 trac 环境显式启用插件:

[components]
# for version 0.10
gitplugin.* = enabled
# for version 0.11
tracext.git.* = enabled 

我也可以尝试Redmine 和CGit,因为这看起来就像其他软件一样,可以满足我的需求。欢迎任何其他建议。

【问题讨论】:

【参考方案1】:

您应该看看 Redmine (http://www.redmine.org/)。它具有您提到的所有功能以及更多功能。您可以在自己的 vps 上托管它(我愿意)。

【讨论】:

对我来说唯一的缺点是 Redmine 中的 Wiki 语法。仍然是一个很酷的工具。 Trac 支持开箱即用的 git since late 2012。【参考方案2】:

我们使用 Trac 和两个 Git 插件——GitPlugin 和 GitWebPlugin。看,我们实际上有三个存储库(长篇大论),而 Trac 仍然仅限于一个存储库。因此,我编写了自己的插件,它定义了 wiki 语法(实际上是宏),用于引用存储库、分支或提交,以及这些指向 GitWebPlugin 链接的链接。我还能够编写一些 git hook 脚本,以便我们可以在提交消息中引用、关闭或修改 Trac 票证——它是 Trac 附带的 SVN 提交挂钩的修改版本。

GitPlugin 的主要问题是由于缺少“libgit”库而运行缓慢。对于中小型项目来说这还不错,但大型项目是一种痛苦。如果您真的需要一个快速的 Web 界面,您真的应该查看Cgit。 Cgit 使其成为自己的 libgit,因此它与特定版本的 Git 相关联。

事实然而,基于 Web 的 Git 视图并没有那么有用,除非您想向某人发送链接(例如在电子邮件或 IRC 中)。因为使用 Git,您在每个克隆中都拥有完整的存储库,因此您最好使用 gitk 甚至普通的 git log 之类的工具。查询和 grepping 功能真的很棒而且(显然)很快。我发现 Cgit 和 GitWeb 真的只对发送提交链接有用,而且这种情况很少见。

【讨论】:

在小型团队中,我喜欢 Trac 的一件事是时间线视图。很高兴能够看到已将哪些更改推送到主仓库。打开浏览器并访问 Trac 站点通常比启动 gitk 或控制台更容易。通常归结为驱动动力。 好点。 Trac 时间线很好,尤其是当您可以看到散布在票证更新、wiki 编辑等中的提交时。目前,只有 GitPlugin(不是 GitWebPlugin)为您提供这种级别的集成。 从 Trac 0.12 开始,witch 已于 2010 年 6 月 13 日发布,您可以将多个存储库添加到一个 Trac 环境,甚至可以混合不同类型的存储库。【参考方案3】:

提示:获取 Trac 票务功能的另一种方式是 ditz。

“Ditz 是一个简单、轻量级的分布式问题跟踪器,旨在与 git、darcs、Mercurial 和 Bazaar 等分布式版本控制系统配合使用。”

您的门票与您的代码一起保存。不可能失去一个而拥有另一个;这是一件好事。类 Trac 网站由ditz 命令行工具生成。

我喜欢它。

【讨论】:

ditz 的另一个粉丝。 Bugs-Everywhere 也类似,但基于 python。【参考方案4】:

自从提出这个问题以来,GitHub 现在已经集成了问题跟踪。有点轻巧,但对我来说这是一个奖励。

【讨论】:

【参考方案5】:

我们使用的是GitLab,它是一个开源的 GitHub 克隆。 它有

    在线代码浏览(同GitHub滑动树)。 问题跟踪。 维基。 您还可以通过它管理项目权限。

【讨论】:

【参考方案6】:

Assembla 免费提供 wiki、门票和其他东西,并允许 Github integration。如果您不想使用 Github,您可以使用普通的 Git with Assembla(以及您在任何其他项目中获得的所有好东西)。

定价也很便宜(“每个团队成员每月 2 美元”)。

【讨论】:

我以前用过 Assembla 和 SVN/Trac,很高兴看到他们添加了 GIT 支持。这不是我想要的,而是一个很好的建议。【参考方案7】:

为了完整性:http://gitorious.org/

【讨论】:

gitorious 现在属于 gitlab【参考方案8】:

Gitweb 可能很好,但它没有集成票务或 wiki 或类似的东西。

【讨论】:

【参考方案9】:

http://mtrack.wezfurlong.org/ 支持 Git 的 simil Trac

【讨论】:

【参考方案10】:

Github 的 Trac postreceive 挂钩现已修复:http://support.github.com/discussions/post-receive-issues/118-trac-service-hook

【讨论】:

【参考方案11】:

前几天搜索时发现了这个,但我还没有亲自使用过,所以我不能保证。

http://www.indefero.net/

【讨论】:

我尝试在我的 Mac OSX 上使用 MAMP 安装它。 4小时后,没有喜悦。试图让 PEAR/PLUF 框架的依赖项与 MAMP 一起工作对我来说是不行的。如果有人知道如何让 MAMP + InDefero 工作,请告诉我。 :)【参考方案12】:

gitweb 很棒且易于设置,git gui 也不错

【讨论】:

【参考方案13】:

顺便说一下InDefero,您可以使用 250MB 可用空间和无限私人/公共项目的托管方式。托管选项提供 Git 和 Subversion,但遗憾的是还没有 Mercurial:/

【讨论】:

【参考方案14】:

我运行 Trac + Perforce,我会继续尝试让 GitPlugin 工作。

【讨论】:

【参考方案15】:

JavaForge 还提供具有 Trac 的所有功能的免费 G​​it 托管,以及更多其他功能。

如果您想为您的项目进行托管,您也可以下载并安装software that powers JavaForge。

(免责声明:软件本身是商业产品,我们是其背后的公司。)

【讨论】:

【参考方案16】:

这对 http://www.lowendbox.com/blog/running-trac-git-hosting-on-a-low-end-vps/ 帮助很大

【讨论】:

只包含链接的答案是considered bad practice。请在此处总结内容(请勿复制/粘贴),以便答案可以独立存在。如果您不这样做,您的答案将面临被删除的风险,尤其是在链接失效的情况下。

以上是关于Git 和 Trac(或类似的)的主要内容,如果未能解决你的问题,请参考以下文章

TRAC-IK机器人运动学求解器

Trac的安装和简单使用

Linux(Ubuntu)。 SVN + TRAC。在 TRAC 中显示 SVN 项目

trac

带有 Subversion 的 Trac 缺少“浏览源代码”按钮

trac admin命令行initenv示例