有很好的分支和合并支持的颠覆性的,良好的,非分布式的替代方法是什么?
我厌倦了手动跟踪我的分支并在我的存储库中合并!太容易出错了。在每个人似乎都有减少重复并自动执行所有操作的想法的世界中,Subversion分支/合并感觉像是80年代遗留下来的。在不增加分布式SCM范例复杂性的情况下,具有优良的分支和合并支持的Subversion的一个很好的替代方案是什么?理想情况下,它是免费的,但是如果我必须掏出一些现金,如果它足够好,我可能会倾向于。
解决方案
回答
任何分布式解决方案。 Git,Mercurial等。我更喜欢git。
回答
吉特
我爱上了它。
回答
我们是否研究过分布式版本控制(例如Git)?每个"签出"本质上都是一个分支……这是一种考虑源代码控制的完全不同的方式。
Git是免费的,由Linus Torvalds创建,并用于Linux(当然还有许多其他项目)。
回答
Perforce是一款出色的工具,但是针对专业人士,这将导致我们(超过2位用户)花费不菲。我们将其与相当繁重的分支方案一起使用(在主要开发过程中,每个功能均分支1个分支),并且效果很好。有点像微软使用的"蜘蛛网"分支(它使用了Perforce的较旧版本),但现在我找不到在线故事。
回答
我已经使用了很多Clearcase。只要我们经常进行合并,就可以毫不费力,并且还可以在后台运行合并作业。如果存在合并冲突,则需要我们进行干预。
但是,这很昂贵,而且很难找到熟练的Clearcase管理员。
回答
git http://git.or.cz/(我很喜欢git,很棒的@分支和分布式开发)http://github.com/是一个很好的示例。
回答
Git,Mercurial,市集,Darcs
回答
Perforce最多可免费使用2个用户。
我不确定我们希望/应该自动化什么,
但是perforce的质量很高。我们可以轻松创建和维护
分支,我们可以轻松合并。摘樱桃很容易
我们在一个分支中进行的特定更改,然后将其合并到另一个分支中
高度自动化的分支机构。
回答
我们是否曾经问过自己,为什么有这么多分支/合并操作?有没有一种方法可以简化开发流程?
颠覆,恕我直言,是KISS(保持简单,愚蠢)原理的良好应用。翻译:以我的经验,通过简化开发流程,我们将获得比使用更复杂的工具更大的生产率提高。
回答
我可能为此而感到恼火,但是如果我们不免费购买MS Team Foundation Server,那么值得一看。与其他将无法命名的MS产品不同,源代码管理功能牢固且功能齐全。将其与IDE集成,自动化的构建/测试引擎以及工作管理功能相结合,这真是太棒了。当然,它是针对公司的,并且价格合适。
注意:如果我们不主要在Visual Studio中进行开发,那么我不会为之烦恼。
回答
我们是否已升级到Subversion 1.5?它包括自动合并跟踪。这可以解决问题。听起来我们已经熟悉了该工具本身,并且它是免费的。因此,如果将当前的解决方案升级到1.5,我们将几乎没有学习曲线,成本也为零,而且我们将不必经历将现有代码移植到新的源代码控制系统的痛苦。
回答
这是根据CVS而不是SVN的替代方案来构架的,但是无论它列出了几种替代方案,包括其他非分布式替代方案。 http://better-scm.berlios.de/alternatives/
回答
尽管可以用颠覆的替代方法不错,但用口红进行颠覆也可以。以下是在Mac上运行的Subversion前端的概述:http://www.geocities.com/~karlvonl/blog/2006/03/daddy-needs-new-subversion-gui.html
回答
集市,由Ubuntu的创建者。
http://bazaar-vcs.org/
为什么选择集市?
http://bazaar-vcs.org/Bzr为什么
回答
我也厌倦了旧版本Subversion中的这些限制。但是,我公司中没有其他人使用分支和合并。他们每个人都在尝试一项新功能时又进行了一次签出,hack-hack-hack,并在好时提交错误的情况下将其删除。只是有时候他们犯了一些不好的事情;)
因此,我开始使用git + svn。意思是:我有svn checkout,并且在这个目录中我已经开始git了。现在,我具有快速合并和分支的功能,并且不会中断其他任何操作。如果我需要尝试新功能X,只需进行分支/签出/黑客入侵。如果我现在需要从SVN存储库中进行一些重要更新:git stash,git checkout master,svn更新,git commit -a,git checkout功能-X,git rebase,git stash适用(所有这些都是因为git-svn不在Windows上工作)。
看起来很多操作,但是它们很快。我的意思是非常快。并给我所需的灵活性(请参阅git + visual studio上的文章)。
我认为Bazaar可以做类似的事情,并且在一件事上可能会做得更好:它可以轻松地支持基于中央存储库的非分布式开发。
回答
还没有提到的一件事是,完全有可能以与Subversion相同的集中方式使用git。它确实是一款出色的软件。
回答
仅添加到DarenW对于Windows,有一个非常不错的Subversion服务器产品,它是免费的,使生活成为梦想的VisualSVN Server。它将最新的Subversion版本打包到一个MSI安装程序中,并添加了一个非常有用的管理控制台。
回答
我们认为像GIT这样的DVCS有何复杂之处?它在某些方面更简单:没有客户端/服务器,在一个地方没有仓库,在另一个地方没有工作目录,用户管理不是内置的(如果需要,请使用ssh)。正如Jim Puls所说,如果需要,我们可以像非分布式的那样使用DVCS。我将GIT用于单人项目,甚至仅持续几个星期的项目。完全没有Tortoise一样,但是gitk,qgit和git-gui对于这些功能比我在SVN上看到的要好。我曾经更喜欢guis,但是现在我非常喜欢git命令行,但是请查看easygit以获得一些改进。
回答
我从Perforce商店到Subversion商店,却错过了Perforce强大的分支和合并支持。因此,Perforce将是我的第一个建议,但之后又要花钱:)。
Subversion 1.5的合并跟踪支持看起来很有希望,但是它被标记为基础,并且看起来它几乎没有我愿意在任何时候接受的合并支持(即类似Perforce)。
因此,我倾向于使用分布式VCS,尤其是Bazaar:
- 分支和合并工作确实很好,并且符合我期望的方式
- 可以与集中式工作流程一起使用
- 支持Subversion分支,工作副本和存储库。这意味着我的团队可以在使用Subversion的大型组织中使用Bazaar,并且仍与他们共享代码。
回答
我们应该查看Accurev。它确实指向并单击了新流(如分支,但更好的IMO)的创建,并且流过流的代码的整个概念使合并变得不那么痛苦,也减少了执行任务的频率。它非常易于管理,拥有3个用户的免费许可证,并且内置了出色的可视化工具。
回答
Plastic SCM就是关于分支和合并...变得容易。检查其GUI并与其他替代方案进行比较。