Web开发中的源代码控制系统

9

我们刚开始寻找源代码控制系统。我知道我们已经落后了,但迟做总比不做好。我们团队的成员都没有使用过任何系统的经验,所以我希望在开始调查不同的工具时能找到一些基本的事情。以下是我们团队的一些背景信息:

  • 我们的团队由开发人员和设计师组成
  • 我们主要使用PC,并有一两个人使用Mac
  • 许多人不熟悉基于命令行的系统
  • 我们大部分的开发都是为Web而进行的
  • 我们使用ASP.NET、ColdFusion和PHP进行开发

我们计划研究一些工具:

任何与这些相关的经验都将有助于了解。

如果有适用于Mac的TortoiseSVN客户端(或类似工具),我建议使用SVN。 - Earlz
2
没有Mercurial / TortoiseHg的爱吗? - jk.
19个回答

12

不要使用 Source Safe!它不仅对源代码控制有害,也对整个世界不利。

我使用 Tortoise 下的 Subversion。我很喜欢它,而且很容易上手。然而分支/合并仍然可能会很麻烦。

Visual SVN 也不错。


1
+1 你在显而易见的事情上抓住了声誉。 (不要使用源代码安全) - Earlz
1
但事实就是这样,Source Safe 是残酷的。 - Jack Marchetti
再怎么说也不为过,SourceSafe太残忍了。 - Tim Scarborough
我甚至不明白为什么它会出现在某人的列表上!! - deubeulyou
1
我有一个朋友,在大学毕业后曾在微软的支持部门工作,负责Source Safe。他花费了一半的时间帮助人们重建他们的代码库,因为它们被搞砸了。如果我提到“Source Safe”,他就会出现奇怪的紧张反应。 - Steve Sheldon

5
如果你迄今为止没有使用过任何源代码控制系统,那么我怀疑你是否能看到GIT等工具的改进。开始简单,获得更多支持:作为服务器使用Subversion,作为客户端使用Tortoise。这是一个简单易用的配置。

3
Subversion在二进制文件方面使用的“差异算法”使其特别适合Web开发。Web开发不仅仅涉及代码,还有很多二进制资源(图片、PDF等)。Subversion跟踪文件之间的差异并记录它们。与CVS相比,后者基本上存储了另一个副本的二进制文件,随着二进制资源和提交次数的增加,这种优势变得明显起来。我使用的是TortoiseSVN插件,对我来说已经足够好了。由于您特别标记了asp.net,您可能需要考虑一下VisualSVN,它在缓解版本控制中最大的问题 - 同事忘记将文件添加到存储库方面做得非常出色。我以前也用过Visual Sourcesafe。不知道现在是否还是那个样子,但它每个用户独占的检出方式在多个开发人员的团队中完全是一场噩梦。不断地提醒人们把东西检入或者说服一个友好的管理员在某人不在办公室时用他们的凭据登录我。

+1 - 很好的推荐。唯一需要注意的是,我购买了VisualSVN,但过了一段时间后就没有再使用它了。对我来说,直接使用TortoiseSVN界面比通过VisualSVN在VS中操作更自然。你的情况可能会有所不同。 - Mark Brittingham
1
此外,如果您使用ColdFusion Builder或任何其他基于Eclipse的编辑器,它们都有非常好的SVN客户端插件。 - Ben Doom
TortoiseSVN是我所使用的,我没有任何不好的话要说。但这可能只是我的一般性情较为阳光。 - Stephen Fischer

3

3

你应该选择Subversion,或者可能是Git或Mercurial。

我认为购买任何商业解决方案对你来说显然不值得,可以从你的清单中删除它们。

此外,你应该考虑使用第三方托管而不是运行自己的服务器。


2
我在一家客户那里工作,他们使用TortoiseSVN作为客户端,安装了VisualSVN(Subversion)作为服务器组件。曾经我们有一个大计划,使用nANT和CruiseControl来保持三个不同的.NET网站环境同步,但是我们还没有得到批准(震惊)。因此,在那之前,我们使用Subversion服务器保存所有源代码,并手动保持不同的环境同步。这并不是世界上最好的情况,但它让每个人都能够访问代码,而且我们的开发团队足够小,每个人都很容易知道正在开发什么。

1

Subversion作为服务器,而Tortoise SVN作为客户端,非常适合您的需求,尽管我听说GIT是更新的,并且有很多改进。


1

我建议使用Tortoise SVN,避免使用SourceSafe,并将另一个添加到列表中:

Perforce - 这是我以前工作场所使用的。虽然合并有些痛苦,需要1-2个开发人员一天的时间才能将代码合并到另一个环境中,例如dev->test,test->staging,但总体来说还不错。

Tortoise SVN具有许多内置的Windows资源管理器选项,可以代替命令行使用Subversion,因此我很少使用命令行。

如果您决定使用SourceSafe,请注意有一个管理工具可分析数据库,应定期运行,这可能有点麻烦,因为我认为在分析器运行时没有人应该使用SS。 VSS中的分支相对较弱,特别是与看到SVN中事物如何良好运作相比。

另一个要考虑的问题是,如果您有缺陷跟踪系统并希望在两者之间进行集成。


在这种情况下可能不是很有用的信息,但如果您碰巧有大型项目并且需要使用Visual Studio,则Perforce会很麻烦,它会减慢项目加载速度,而管理绑定的整个概念似乎是浪费时间。只是提醒一下,并不是一个坏主意,是一个可靠的系统,但仅限于某些情况下。 - Steve Sheldon

1

我个人使用Cygwin与Git。相比于SVN,我更喜欢Git,因为过去在合并方面,SVN曾经给我带来了很多痛苦。Git的设计目标是让合并变得轻松,并且它在这方面做得非常出色。

如果你不喜欢Cygwin,需要在Windows资源管理器中集成Git,请查看ToroiseGit项目。它的外观和感觉类似于ToroiseSVN,因此很容易上手。你甚至可以同时运行ToroitseGit和TortoiseSVN。

TortoiseGit还内置了对SVN存储库的支持,因此您可以检出SVN存储库并获得所有本地分支等好处。


1

确实,VSS不应该被考虑 - 它是一个已经死亡的产品,而且非常糟糕。然而,Team Foundation Server - 特别是2010版值得一看。它不仅可以进行源代码控制,还有工作项跟踪系统、CI和构建服务器,并且具有一些非常好的测试工具。例如,它将运行自动化脚本并记录会话在MPEG电影中,以便您可以实际上看到屏幕在测试失败时/如果失败时的样子。

如果这比你想要的多,那就选择SVN吧。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接