Con*_*ode 54

SVN与Git和Mercurial不同,因为它是所有用户必须提取和提交的单个存储库.

Git和Mercurial有一个分布式模型.这意味着每台计算机上都有一个存储库,通常有一个"官方"存储库,人们会选择将其更改提交到拉取.

Git和Mercurial非常相似.我更喜欢Mercurial,因为我发现它更容易使用.对于2人团队,我会推荐Mercurial,但这只是我的意见.如果您不熟悉版本控制,那么您仍然需要花时间学习使用任何选项,但Mercurial对我来说似乎最简单.

要启动Mercurial存储库,您只需打开一个shell并cd到要进行版本控制的目录,然后键入hg init.这创建了存储库.要将文件夹中的所有内容添加到存储库,请键入hg add ..以下是其他一些命令:

  • 提交本地更改: hg commit -m "Descriptions of changes"
  • 要从服务器提取最新版本: hg pull
  • 推动本地变化: hg push

  • 如果其中一个链接重复项(问题中列出)尚未涵盖,则应在其中一个上发布答案. (7认同)
  • 您使用 hg 列出的所有命令与 git 完全相同,因此这并不能解释为什么您发现 hg 更容易。 (2认同)

jac*_*aer 16

首先,有他们写的语言.我与Git和Mercurial的经历非常相似,但我知道如果我想调整Mercurial,我可以这样做,因为它是用Python编写的.Git至少在C语言中,我并不熟悉.

Git和Mercurial就是所谓的分布式.每个副本都是相同的,它们可以在临时的基础上推送(使用该术语)相互之间的变化.另一方面,Subversion由一个中央存储库组成,每个工作副本都是该中央服务器的从属服务器,在它和它之间推送和拉动(在这种情况下提交和更新)更改.

为几个人安装Git或Mercurial包括获得对同一服务器的SSH访问并安装几个软件包.而对于SVN,据我所知,您需要在Apache下配置和运行实际的服务器应用程序,然后使用SSL证书和.htaccess等来保护它.

对于我所有的个人项目,我选择Mercurial或Git.如果我和一个大团队合作,我可能会去Subversion,因为你获得了集中认证和托管.但对于两个人,我会选择一个分布式的,因为那样你就不必搞乱集中式身份验证和托管.:-)

  • 虽然这个线程很老,但我仍然遇到它,所以觉得有必要纠正"对于SVN而言,据我所知,你需要在Apache下配置和运行一个实际的服务器应用程序,然后搞乱SSL证书和.htaccess等." - 这是无稽之谈,您可以像安装svnserve一样启动和运行,如果您需要安全性,则阻止防火墙中的SVN端口并允许仅通过SSH访问(svn + ssh:// ...). (3认同)
  • 您可以将分布式版本控制系统视为集中式,如果它适合大型团队的工作流程. (2认同)

gof*_*rie 6

Git和Mercurial非常相似(但不同以至于需要谨慎).另一方面,SVN是完全不同的:前两个是分布式VCS,因此它们不需要中央服务器,而SVN则需要.通常,许多项目正在向分布式系统发展.

对于您的小项目,您最好使用Git或Mercurial.你选择哪一个基本上是一个品味问题,虽然我自己更喜欢Git(而且我更熟悉它).您根本不需要设置服务器:您可以通过SSH推送/拉取更改,甚至可以通过电子邮件发送补丁(这可以直接从VCS完成,但有点麻烦).您可以随时设置中央服务器,所有更改都将在那里.您可以使用例如GitHub或Gitorious来托管您的项目(如果您使用Git,我不知道Mercurial).