我们即将开始一个简单的Web服务项目,其中包含一些JSP / servlet代码作为课程的一部分。我们是一个由4人和3人组成的团队,从未使用过版本控制软件。我计划在谷歌代码上主持项目,以便我们可以处理我们的时间,仍然可以访问代码,版本控制等。我需要在SVN和Mecurial / GIT之间进行选择。鉴于代码相当小,选择DVCS而不是SVN有什么特别的优势吗?我觉得与Git / Mercurial相比,学习SVN更容易。
PS:GUI客户端将使生活更轻松。 Git有什么好的吗?
PPS:我略微倾向于DVCS,因为我想学习它,嘿!学年是最好的学习时间!答案 0 :(得分:3)
与之前的回答相反,我强烈建议不要使用Git ,至少现在。我懒得重复my points并再次与Git狂热分子开始发火焰。但是 - 在大多数团队中选择Git作为第一个SCM(和DVCS)是最差选择。
我觉得与Git / Mercurial相比,学习SVN更容易
SVN和Hg的学习曲线可能被认为几乎相等(两侧都有一些不同的头痛)
鉴于代码相当小,选择DVCS而不是SVN有什么特别的优势吗?
没有重复讨论很多次点(感谢@ AD7six的链接) - 是的,有... 一些 ...
hg serve
每个人都可以按需进行p2p通信来自另一个POV:
CVCS(作为类和SVN作为“同类最佳”)将在公司生活和使用很多年(IMNSHO) - 并且能够以良好的方式使用Subversion将始终加上
Subversion 自动教授设计和规划的纪律和准确性,而在DVCS中,它只是协议,而不是要求(在某种程度上,确定)
TBC
答案 1 :(得分:2)
两个最大的选择是在git和Subversion之间。 Git是一个分布式版本控制系统,而Subversion是集中式的。正如我告诉很多人的那样,他们是不同的,没有一个更好,一个更糟。根据具体情况,每种都有自己的优势。
Subversion更易于使用,并且具有更好的文档。 Git复杂性来自于它是一个分布式系统,因此您拥有本地存储库和远程存储库,这意味着现在有两个存储库正在向您发送更新。对于许多人来说,这可能会变得非常混乱 - 特别是对版本控制系统不熟悉的人。
我建议您下载Subversion,然后阅读Subversion on line manual并使用它。这并不是说使用Subversion。这只是为了让您了解如何使用版本控制系统。
现在,为了满足那里的Git粉丝:Git比Subversion有一个很大的优势:它是分布式的。在Subversion中,您必须拥有一个集中的存储库。这意味着设置Apache服务器,或至少在每个人都可以访问的某台机器上运行svnserve
Subversion服务器进程。你有一个躺在那里?大多数小型团队都没有。
Git在像你这样的情况下闪耀的地方是你不需要运行Git的集中式服务器。每个人都拥有整个存储库的副本,您可以直接在团队成员之间传递更新,而无需将更改检查到中央服务器。您可以通过email向对方发送Git补丁。或者,您甚至可以在Dropbox中使用集中式Git存储库,并从那里推送本地副本。 (不要直接使用该存储库!)。主要问题是确保团队中的每个人都获得与其他人相同的更新。如果你不小心,这就是Git崩溃的地方。
现在,如果您碰巧拥有一个集中式服务器,而是使用Subversion,那么设置Subversion存储库服务器非常简单。 Subversion附带svnserve
,它是一个非常轻量级的服务器,可以设置为Windows service。如果您更喜欢Apache httpd作为服务器,您可以从许多不同的来源免费获得Subversion服务器包。以下是一些:
1 这些软件包是完整的Apache httpd和Subversion软件包,所有软件包都集成在一个简单的安装中。如果您放弃GUI前端,则可以自己设置LDAP / Active Directory或SSL。如果不支付 pro 版本,则无法使用前端执行此操作。但是,我不确定他们的许可协议到底是什么意思。
答案 2 :(得分:0)
如果你们大多数人之前没有使用任何版本控制软件,我建议你从Mercurial开始。 Git是Mercurial的大哥,可能有点吓人。
使用版本控制有两个主要规则: