首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你使用分布式版本控制吗?

你使用分布式版本控制吗?
EN

Stack Overflow用户
提问于 2008-08-25 20:46:10
回答 18查看 2.9K关注 0票数 37

我想听听使用分布式版本控制(又称分布式版本控制,分散式版本控制)的人的意见,以及他们是如何找到它的。你在用什么,Mercurial,Darcs,Git,Bazaar?你还在用它吗?如果你过去使用过客户机/服务器rcs,你觉得它是更好,还是更差,还是只是不同?你能告诉我什么能让我随大流吗?或者跳过这件事,我也有兴趣听到有负面经历的人的意见。

我目前正在考虑替换我们当前的源代码控制系统(Subversion),这是这个问题的动力所在。

我对那些和其他国家的同事一起使用过它的人特别感兴趣,因为在其他国家,你的机器可能不是同时开机的,而且你的连接速度非常慢。

如果你不确定什么是分布式版本控制,这里有几篇文章:

Intro to Distributed Version Control

Wikipedia Entry

EN

回答 18

Stack Overflow用户

回答已采纳

发布于 2008-08-25 22:16:04

我在工作中和我自己的项目中都在使用Mercurial,我真的对它很满意。我看到的优势是:

  1. Local版本控制。有时候我在做一些事情,我想保留一个版本历史记录,但我还没有准备好把它推到中央存储库。使用分布式VCS,我可以只提交到我的本地存储库,直到它准备就绪,而不需要分支。这样,如果其他人做了我需要的更改,我仍然可以获得它们并将它们集成到我的代码中。当我准备好的时候,我把它推到servers.
  2. Fewer合并冲突上。冲突仍然会发生,但它们似乎不那么频繁,风险也更小,因为所有的代码都签入到我的本地存储库中,所以即使我搞砸了合并,我也总是可以备份并将again.
  3. Separate存储库作为分支来做。如果我有几个开发向量同时运行,我可以创建我的存储库的几个克隆,并独立开发每个功能。这样,如果有什么东西报废或滑倒了,我就不用把它们拔出来了。当它们准备就绪时,我只需合并它们,使用Mercurial要快得多,这主要是因为您的大多数常见操作都是本地操作。

当然,像任何新系统一样,在过渡期间也有一些痛苦。您必须以与使用SVN时不同的方式考虑版本控制,但总的来说,我认为这是非常值得的。

票数 30
EN

Stack Overflow用户

发布于 2008-08-27 11:37:20

在我工作的地方,我们决定从SVN迁移到Bazaar (在评估了git和mercurial之后)。Bazaar很容易上手,使用简单的命令(不像git拥有的140个命令)

我们看到的优势是能够创建本地分支并在其上工作,而不会干扰主版本。也可以在没有网络访问的情况下工作,这样做的速度更快。

在bzr中,我喜欢的一个命令是shelve扩展。如果您开始在单个文件中处理两个逻辑上不同的代码片段,并且只想提交一个片段,则可以使用搁置扩展在以后搁置其他更改。在Git中,您可以在索引(登台区)中执行相同的操作,但bzr有一个更好的UI。

大多数人都不愿意移动,因为他们必须输入两个命令来提交和推送(bzr ci + bzr push)。此外,他们很难理解分支和合并的概念(没有人在svn中使用分支或合并分支)。

一旦你理解了这一点,它将提高开发人员的生产力。在每个人都明白这一点之前,每个人之间都会有不一致的行为。

票数 6
EN

Stack Overflow用户

发布于 2008-08-25 21:39:59

在我工作的地方,大约两个月前我们从CVS换成了Git (我的大部分经验都是使用Subversion的)。虽然熟悉分布式系统有一个学习曲线,但我发现Git在两个关键领域更优越:工作环境的灵活性和合并。

我不需要在我们的VPN上,甚至不需要有网络连接,就可以访问完整的版本控制功能。这意味着当冲动袭来时,我可以在任何地方尝试想法或执行大型重构,而不必记住检查我建立的巨大承诺,也不必担心当我弄得一团糟时无法恢复。

因为合并是在客户端执行的,所以它们比启动服务器端合并要快得多,也不容易出错。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档