2

我是一名开发人员,正在为我的公司开发一个项目。我使用 subversion 和 Trac(用于错误跟踪和与管理类型的通信)。我有一个登台服务器和一个生产服务器。今天我检查了一些代码,发现我的基于 FSFS 的 svn (v1.4) 存储库已不可挽回地损坏。虽然这很糟糕,但它让我有机会将我的 VCS/staging 系统迁移到更现代的发行版(目前在一个 2 年前的系统上)。(就回购而言,我确实有一个未损坏的当前代码版本,所以当我丢失所有开发历史和评论时,我不会丢失任何代码。唷。)

目前我在 Ubuntu 上开发,生产运行 RHEL5-64。我的硬件将保持不变,一个 32 位 x86 单核系统。

我熟悉 SVN 及其结构,但我对 FSFS 损坏问题感到有些恼火。我对 git 了解不多,只是它很受欢迎。我目前使用 Trac 来管理问题,我真的很喜欢它与 svn 的集成。似乎有插件可以支持 Git,但我不确定该开发的成熟度。

我目前正在考虑构建以下内容:

  1. Ubuntu 8.10 桌面(然后添加 apache2 和其他软件包……上次我尝试将 GUI 添加到服务器版本时,我差点把头发拉出来)
  2. SVN(因为我很熟悉它,而且 Git 对于一个人的团队来说似乎有点矫枉过正)
  3. Trac(因为我熟悉它并且它适用于 SVN)。

我想对我的“新”vcs 系统提出一些建议和想法。我有理由转向 Git 吗?有什么比 Trac“更好”的吗?

4

7 回答 7

4

我将 git 用于我所有的个人项目。我无法想象有什么更好的了。一旦项目超过您,它就特别有用。您的开发过程几乎不需要改变,除了偶尔向公共回购添加推送。

于 2009-02-18T02:16:39.570 回答
2

SVN(因为我很熟悉它,而且 Git 对于一个人的团队来说似乎有点矫枉过正)

git 非常轻巧且易于使用。语法与颠覆略有不同,但仅此而已。我不会说这是矫枉过正。确实没有什么比颠覆更复杂的了。

对于错误跟踪,我使用了一个名为 Pivotal 的基于 Web 的系统。它是免费的(目前),并且内置了一些项目管理功能。它非常适合小型团队,因为它非常简单,几乎不需要设置即可使用。

于 2009-02-18T02:21:03.727 回答
1

我们在这里使用 svn/trac/ubuntu。

为了减少损坏的影响,我建议您实施一项自动化作业(cron?)以每天一次热复制 svn 和 trac 存储库并将它们发送到异地(rsync)以进行备份。我们在这里使用 NAS,但 S3 或 Dreamhost 之类的东西也可以正常工作。

这样,如果出现问题,您只会损失一天的工作量。

SVN 热拷贝:

svnadmin hotcopy $REPOSITORY $DESTINATION

跟踪热拷贝:

trac-admin $REPOSITORY hotcopy $DESTINATION
于 2009-02-18T02:29:09.230 回答
1

Git 是一个很好的源代码控制系统,特别是如果您对命令行感到满意的话。SVN 显然是一个不错的老主力,现在有了 1.5 合并支持,它的性能要好得多。

Trac 很好,但是当我们查看它时,它仅限于单个项目,并且在源代码控制支持部门并不好。

我们现在使用 redmine,它允许多个项目,并允许我们为每个项目使用不同类型的源代码控制,包括 git。

哦,是的,我们使用 hudson 来建造 :)

于 2009-02-18T08:36:35.803 回答
1

我支持Redmine的建议。虽然我主要是 Mercurial 用户,但也支持 git(如 Darcs、svn 和 cvs)。分布式版本控制系统的好处之一是您基本上可以免费获得备份(您知道您应该对旧的 svn 存储库进行备份,对吗?)...

于 2009-02-18T08:56:34.727 回答
0

Perforce最多可供两个用户免费使用,并且享有良好的声誉

于 2009-02-18T03:09:14.547 回答
0

我要退后一步,看看更大的视野。如果您熟悉并熟悉 SVN 和 Trac,并且他们为您完成了工作(暂时忽略腐败问题),我会质疑是否需要移动。这是源代码控制和错误跟踪,一般来说,只要他们为您的团队工作,我看不出花费大量精力来管理他们的环境、安装和评估新工具等。

我的 10,000 英尺建议是利用这个机会完全外包这个功能。有一些主机(免责声明:我的公司就是其中之一)可以免费/低价为您托管您的 Subversion、Git、Trac、Lighthouse 等。然后,当磁盘阵列或 FSFS 或其他什么出现问题时,花费 100% 时间担心这些问题的人可以处理它,而您甚至可能没有意识到这个问题。如果您公司的政策允许您使用主机来实现此功能,您现在可以节省一个周末、一个周末(为下一次灾难)以及无数美元的生产时间。

于 2009-02-18T18:05:56.030 回答