您知道有关版本控制系统(git/mercurial/svn/cvs)的好的赞成/反对论文吗?
似乎很难找到有关这些版本控制系统的优缺点的良好参考资料。
如果有人能就此写一篇简短而简洁的论文,进行镜像并发布在这里,我想很多人就不会那么困惑了。
我应该使用什么版本控制系统?我认为这取决于项目以及参与该项目的人数。 然而,有一些普遍接受的事实,例如:Git 是最快的,CVS 稳定且经过测试,SVN 很简单,Mercurial 似乎对 Windows 更友好。
此外,论文应提供证据、基准链接以及对每个陈述的解释。
我在 stackoverflow 上写过文章,因为这里的大多数读者应该是经验丰富的程序员,并且知道在哪里寻求适当的贡献,甚至写论文(那会很棒)。
注意:这个问题不是关于一种工具相对于另一种工具的相对优点(有很多关于这些主题的帖子),而是更多关于可用于区分它们并用于为您的项目选择一个工具的客观标准。
It seems to be quite hard to find good references about the pros and cons of these Version control systems.
If someone can make a short and neat paper about it, mirror it and post it here, I think a lot of people would be less confused.
What version control system should I use ? I think it depend on the project and on the number of people working on it.
However there are some commonly accepted facts, for instance: Git is the fastest, CVS is stable and tested, SVN is simple and Mercurial seems more Windows friendly.
Moreover, the paper should present evidences, link to benchmarks and explanation for each statement.
I've written on stackoverflow because most of the readers here should be experienced programmers and know where to ask to get proper contributions OR even write the paper (that would be awesome).
Note: This question is not about the relative merits of one tool over another (there are many post on those topics), but more about the objective criteria which can be used to differentiate them and used to choose one for your project.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
Martin Fowler 关于他的 bliki:
http://martinfowler.com/bliki/VersionControlTools.html
Martin Fowler on his bliki:
http://martinfowler.com/bliki/VersionControlTools.html
归根结底,“哪个 vcs 适合我”是一个非常主观的问题,它在很大程度上取决于您的工作流程需求、您的项目需求以及您的团队的总体风格的参数。
如果您正在寻找每个 VCS 的经验特性比较的详细信息,请查看以下图表:
http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
实际上,除此之外的任何内容都将是主观意见 - 即使您进行实证测试,您得到的最好结果也是一组不同的比较指出一种 VCS 在某一特定领域表现出色,而另一种则在不同领域表现出色。如何根据重要性对这些领域进行排名取决于您。
When it comes down to it, "which vcs is right for me" is a heavily subjective question that depends on a lot on the parameters of your workflow needs, your project needs, and just your group's general style.
If you're looking for details of how the empirical features of each VCS compare, take a look at the following charts:
http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
Really though, anything beyond that will be a subjective opinion - even if you do empirical testing, the best you'll get is a set of different comparisons that point out that one VCS excels in a given area and another in a different one. How you rank those areas in terms of importance is up to you.
Google 的 DVCSAnalysis 是一个良好的开端。(好吧,Scott Chacon,Git 冠军 和GitHub 背后的人之一,不同意评论:
关于该市场份额的任何来源/参考资料,斯科特?
也许是社交编码协作网站中声明的存储库/用户数量?
)
除此之外,我还写了一些关于该主题的一般帖子:
这些 SO 答案可能不是“特定于工具”已经足够了,但至少可以向您指出这些版本控制系统的每个类提供的相关功能。
在基准测试方面,您有 Jakub 提出的 有趣的问题Narębski 进行网络基准测试,以及他对 Git 的回答。
这可能过于“以 Git 为中心”,但也可以用来在决定项目需要哪种版本控制工具时提出正确的问题。
The DVCSAnalysis from Google is a good start.(Well, Scott Chacon, Git champion and one of the guys behind GitHub, disagree in the comments:
Any sources/references about that market share, Scott?
Perhaps the number of repos/users declared in social coding collaboration sites?
)
Beside that, I have written some general posts on the topic:
Those SO answers may not be "tool-specific" enough, but at least can point you to the relevant features each class of those Versioning system provide.
On the benchmark front, you have the interesting question from Jakub Narębski on network benchmarking, as well as his answer for Git.
That may be too "Git-centric", but can also be used to ask the right questions when deciding what kind of versioning tool you want for your project.
如果您想了解 Git,Google 的 Linus Torvalds TechTalk 非常好 1 。
(当然)它非常支持 git,并且与其他任何东西都不同,但观看起来很有趣。
If you like to get to know Git, Linus Torvalds TechTalk at Google is very good 1.
It's (of course) very pro git and against anything else but it's fun to watch.