9

我厌倦了手动跟踪我的分支并在我的存储库中合并!太容易出错了。在每个人似乎都想到减少重复和自动化一切的世界里,颠覆分支/合并感觉就像是 80 年代遗留下来的。在不增加分布式 SCM 范式复杂性的情况下,具有出色的分支和合并支持的 subversion 有什么好的替代方案?理想情况下它是免费的,但如果我必须支付一些现金,我可能会倾向于如果它足够好的话。

4

22 回答 22

26

Have you upgraded to Subversion 1.5? It includes automated merge tracking. This may address your issue. It sounds like you're already familiar with the tool itself and it's free. So, if you upgrade your current solution to 1.5 you'll have almost no learning curve and zero cost - plus you won't have to go through the pain of porting your existing code to a new source code control system.

于 2008-09-16T05:15:01.713 回答
7

您是否研究过分布式版本控制,例如 Git?每个“结帐”本质上都是一个分支……这是一种完全不同的源代码控制思维方式。

Git 是免费的,由 Linus Torvalds 创建,用于 Linux(当然还有许多其他项目)。

于 2008-09-16T04:58:54.857 回答
6

Perforce是一个出色的工具,但如果超过 2 个用户,它会花费你,因为它是针对专业人士的。我们将它与一个非常繁重的分支方案一起使用(在主要开发期间每个功能 1 个分支)并且效果很好。有点像微软使用的“蜘蛛网”分支(它使用了修改后的旧版 Perforce),但我现在在网上找不到这个故事。

于 2008-09-16T04:59:22.563 回答
5

我也厌倦了旧版本 Subversion 中的这些限制。然而,我公司中没有其他人使用分支和合并。他们每个人在尝试新功能时,都会再次结帐,hack-hack-hack,如果不好就摆脱它——好的时候提交。只是有时他们犯了一些坏事;)

所以我开始使用 git + svn。含义:我有 svn checkout 并且在这个目录中我已经启动了 git。现在我可以快速合并和分支,并且不会中断任何其他操作。如果我需要尝试新功能 X,只需分支/结帐/hack-hack。如果我现在需要从我们的 SVN 存储库中获取一些重要更新:git stash、git checkout master、svn update、git commit -a、git checkout feature-X、git rebase、git stash apply(这一切都是因为 git-svn 没有在 Windows 上工作)。

看起来有很多操作,但它们很快。我的意思是真的很快。并给我所需的灵活性(请参阅我关于 git + visual studio 的文章)。

我认为 Bazaar 可以做类似的事情,并且可能在一件事上做得更好:它可以轻松支持非分布式、基于中央存储库的开发

于 2008-09-16T07:22:05.513 回答
3

Did you ever ask yourself why you have so many branch/merge operations? Is there a way to simplify your development process?

Subversion, IMHO, is a good application of the KISS (Keep it simple, stupid) principle. Translation: In my experience you will get a far greater productivity boost from streamlining your development process than from getting a more complex tool.

于 2008-09-16T05:03:11.103 回答
3

你应该看看Accurev。它确实指向并单击创建新流(如分支,但更好的 IMO),并且流经流的代码的整个概念使得合并变得不那么痛苦和频繁的任务。它管理起来非常简单,拥有 3 用户免费许可证,并且内置了出色的可视化工具。

于 2008-10-09T14:49:10.730 回答
2

任何分布式解决方案。Git、mercurial 等。我的偏好是 git。

于 2008-09-16T04:58:06.653 回答
2

我从Perforce商店进入了 Subversion 商店,却错过了 Perforce 所拥有的强大的分支和合并支持。所以,Perforce 将是我的第一个建议,但它需要花钱:)。

Subversion 1.5 看起来很有希望,因为它的合并跟踪支持,但它被标记为基础,并且看起来它不会有我愿意接受的最小合并支持(即类似 Perforce)。

所以,我倾向于分布式 VCS,特别是 Bazaar:

  1. 分支和合并以我期望的方式工作得很好
  2. 它可以与集中式工作流程一起使用
  3. 支持 Subversion 分支、工作副本和存储库。这意味着我的团队可以在使用 Subversion 的大型组织中使用 Bazaar,并且仍然与他们共享代码。
于 2008-09-29T15:29:37.567 回答
1

塑料 SCM就是关于分支和合并……变得简单。检查其 GUI 并与其他替代品进行比较。

于 2009-06-24T22:55:46.370 回答
1

还没有提到的一件事是,完全有可能以与使用Subversion 相同的集中方式使用 git 。它确实是一款出色的软件。

于 2008-09-16T14:19:31.327 回答
1

混帐

我已经爱上了它。

于 2008-09-16T04:58:27.260 回答
1

只需添加到 DarenW - 对于 windows,就有一个非常好的 Subversion 服务器产品,它是免费的,让生活成为一个梦想 - VisualSVN 服务器。这会将最新的 Subversion 构建打包到单个 MSI 安装程序中,并添加一个非常有用的管理控制台。

于 2008-09-17T01:42:40.670 回答
0

I've used Clearcase a lot. As long as you are doing your merges frequently it can be pretty effortless and it is also possible to have merge jobs running in the background. You are required to intervene if there is a merge conflict.

However, it is expensive and it can be hard to find skilled Clearcase administrators.

于 2008-09-16T05:01:15.383 回答
0

Perforce is free for up to 2 users.

I'm not 100% certain about what you expect can/should be automated, but perforce is very high quality. You can easily create and maintain branches, and you can merge easily. It's quite easy to cherry pick specific changes you made in one branch, and merge them into another branch with a high degree of automation.

于 2008-09-16T05:02:57.767 回答
0

这是根据 CVS 的替代方案而不是 SVN 的替代方案来构建的,但无论如何 - 它列出了几个替代方案,包括其他非分布式的替代方案。 http://better-scm.berlios.de/alternatives/

于 2008-09-16T05:23:31.537 回答
0

分支和合并在 Subversion 中得到了显着改进,您描述的问题在很久以前就已经解决了。例如,Subversion 支持合并跟踪超过 10 年。

我厌倦了手动跟踪我的分支并在我的存储库中合并!太容易出错了。在每个人似乎都想到减少重复和自动化一切的世界里,颠覆分支/合并感觉就像是 80 年代遗留下来的。

这些问题已在 2008 年 6 月 19 日发布的 Subversion 1.5.0 中得到解决。当前版本是 1.13.x。

于 2020-03-21T17:57:15.897 回答
-1

Bazaar,由 Ubuntu 的创建者提供。

http://bazaar-vcs.org/

为什么选择芭莎?

http://bazaar-vcs.org/BzrWhy

于 2008-09-16T07:13:37.297 回答
-1

git - http://git.or.cz/ ( i am quite fond of git, great @ branching and distributed development) - http://github.com/ is a great working example.

于 2008-09-16T05:01:21.700 回答
-1

Git, Mercurial, Bazaar, Darcs

于 2008-09-16T05:01:25.693 回答
-1

I'm probably going to be flamed for this, but if you aren't out for a free product MS Team Foundation Server is worth a look. Unlike other MS products that will remain nameless the source control is solid and fully functional. Combine that with the IDE integration, automated build / test engine and work management functionality and it is pretty awesome. Of course, it is aimed at companies and priced to suit.

Note: I wouldn't bother with this if you don't develop primarily in Visual Studio.

于 2008-09-16T05:06:46.883 回答
-1

虽然颠覆的替代品可能很好,但用口红颠覆可能就可以了。以下是在 Mac 上运行的颠覆前端的回顾:http ://www.geocities.com/~karlvonl/blog/2006/03/daddy-needs-new-subversion-gui.html

于 2008-09-16T05:28:02.120 回答
-2

您认为像 GIT 这样的 DVCS 有什么复杂之处?它在某些方面更简单:没有客户端/服务器,一个地方没有 repo,另一个地方有工作目录,用户管理不是内置的(如果需要,请使用 ssh)。正如 Jim Puls 所说,如果你愿意,你可以像非分布式一样使用 DVCS。我将 GIT 用于单人项目,即使是仅持续几周的项目。没有什么完全像 Tortoise,但 gitk、qgit 和 git-gui 比我在 SVN 中看到的更适合这些功能。我以前更喜欢 guis,但现在我非常喜欢 git 命令行 - 但请查看 easygit 以获得一些改进。

于 2008-09-17T02:02:51.480 回答