Windows最佳版本控制系统解决方案是什么?

10

我的代码库越来越庞大,仅使用目录来组织所有不同的分支变得困难,我想知道适用于我个人使用且在Windows上(很容易)工作的版本控制系统是什么?

PS:我不需要像GitHub、SourceForge或Google Code这样的托管式版本控制系统。

9个回答

10

如果你只是为自己建立一些东西,那么一个分布式版本控制系统 (DVCS,d代表分布式)会比Subversion更容易设置。 (编辑:我纠正了一下,TortoiseSVN使得创建仓库更容易。即便如此,除非您已经知道SVN并想坚持使用它,否则我会选择DVCS。我发现对于较小的项目,它们要少费事很多,而且如果您在多台机器上使用它,则整个内容在两台机器上都备份以防硬盘出现问题。)

总的来说,Git、Mercurial和Bazaar都是不错的选择。在Windows上,Git仍然没有本地客户端,尽管有些工具通过模拟器可以工作得相当不错,但我不会选择它。Mercurial在Windows上安装起来相当简单(如果需要,可以通过TortoiseHg进行shell集成),我相信Bazaar也是如此。如果我不知道Mercurial和Bazaar中的任何一个,并且打算选择其中一个,那么我会选择Mercurial,因为它被广泛使用。

这个SO问题是关于在Windows上使用Git/Mercurial/Bazaar的。


3
在Windows系统中,右键单击文件夹后选择“在此处创建仓库”是一种非常简便的方法。 - Thomas Owens
10
在我看来,Git 不是在 Windows 平台上最好的解决方案。 - Joshua Partogi
1
眼下,使用Mercurial所需的只有Python和TortoiseHg,因此这也相当容易。而Git则需要cygwin(或类似的工具)。起初学习SVN可能会更容易些,但总体趋势是向分布式版本控制系统发展,这就是为什么我认为Mercurial是更好的选择。 - Sam DeFabbia-Kane
4
给自己一个好处,选择Mercurial而不是SVN。你只需要安装一个东西——TortoiseHg。使用SVN,你需要TortoiseSVN,然后像Visual SVN这样的SVN服务器。Mercurial(和其他分布式版本控制系统)非常适合你的情况(以及许多其他情况),而SVN仅设计用于客户端/服务器环境。在你的设置中,使用Mercurial将更加容易。TortoiseHg下载链接:http://tortoisesvn.tigris.org/ - Michael La Voie
2
@eyze 和 @Sam:Mercurial 所需的一切都在 TortoiseHG 中。它已经内置了 Python,因此您不需要额外的 Python 环境。另外,我最近从 SVN 切换到 Mercurial,目前来看是一个明显的胜利 - 我感到更加快乐。 - utku_karatas
显示剩余3条评论

4

Subversion

  • 它非常受欢迎并拥有庞大的社区。
  • 分支和标记很容易。
  • 它是免费且开源的。

此外,下载TortoiseSVN,它提供了一个漂亮的图形界面,并具有Windows Shell集成功能,因此您可以在资源管理器中右键单击文件和文件夹并执行VCS操作。


1
+1 版本控制工具中,特别是 TortoiseSVN,对于 Windows 系统来说是一个真正的胜利。 -1 使用 Git、Mercurial、Bzr 或类似工具几周后,我再也不会认为 Subversion 的分支支持“易用”或“高效”了。 - bendin
如果您想要一个基于Apache的“真正”的SVN服务器,并具有Tortoise的所有易用性,请添加VisualSVN Server。 - Deltics

3

试一试Plastic SCM

  • 超级分支和合并(包括全面重命名和每个项目的可追溯性)
  • 非常强大的可视化选项:分支浏览器,3D版本树,统计信息
  • 分布式(可能是唯一一个完全图形化且设计用于Windows的DVCS)
  • 支持多个数据库后端:MySQL,SQL Server,Oracle,Firebird...
  • Visual Studio内完全集成
  • 服务器可以在任何地方运行(Linux,Mac,Windows)
  • 大文件支持

3
从您的选择来看,除了Git以外的任何东西都适用于Windows。但是因为您只是自己使用,像VSS和SVN这样的集中式东西可能过于繁琐,需要设置单独的存储库。所以现在只剩下Bazaar和Mercurial了。
在我看来,如果您是独立工作,这两个都非常好。它们之间的区别在于性能和支持的工作流程:
Bazaar 您可以配置Bazaar以支持您想要的任何工作流程。您可以将其与类似SVN的集中式工作流程配合使用,并在一个存储库下拥有多个分支,或者您可以像任何其他DVCS一样进行分布式。
Mercurial
您不能像SVN或Bazaar那样在一个存储库下拥有多个物理分支,但我认为Mercurial的好处在于易于使用的用户界面非常直观,而且性能比Bazaar快(尽管Bazaar在最近的发布中变得越来越快)。
在选择这两者之间时,您应该缩小到什么是您的首要任务?性能还是工作流程?

3
Mercurial不像SVN或Bazaar那样可以在一个仓库下拥有多个物理分支。你可以使用 hg branch newbranch 命令来创建新的分支。 - Steve Losh
我认为对于个人的小型和中型项目,Mercurial 的速度与 bzr 相比不会有太大差别。bzr 2.0 将于2009年9月发布,而bzr的开发人员声称它的速度与hg一样快。 - bialix
在Mercurial中不存在“hg init-repository”这样的东西。因此,在Mercurial中,您不能在一个存储库下拥有多个物理分支。 - Joshua Partogi
1
jpartogi:我刚刚了解了“bzr init-repository”的作用。据我所知,它无非是支持Mercurial一直支持的多行(分支)开发在同一个仓库中的一种迂回方式。Mercurial使用未命名/匿名分支(多个头部,可能带有书签)和命名分支(Steve Losh提到的“hg branch”命令)来支持此功能。您可以将这样的多分支存储库拆分为几个存储库,并且可以组合几个这样的存储库--一切皆有可能。 - Martin Geisler
我支持马丁的观点。 - quark

2
如果你计划使用分支,我强烈建议远离SourceSafe。事实上,完全远离SourceSafe。
我在生产环境中使用过SVN、git和Sourcesafe,而前两者比Sourcesafe更受欢迎。Sourcesafe太笨重了,容易自己跑偏并做出随意的事情。然后你需要Visual Studio集成,这只会带来麻烦。
SVN很不错,大多数时间都能正常工作。后续版本支持一键合并从一个分支到另一个分支的注释,这是以前缺少的功能。
git速度非常快,简直是惊人的快。学习曲线相当陡峭,你可能会盯着git文档看,想知道它到底在说什么。

1
+10分,远离SourceSafe。没商量。 - sbi

1

Perforce 是一款出色的商业版本控制系统,我已经使用了十多年。它具有特别出色的分支和合并功能。我通常在 VPN 上国际使用它而没有问题。

如果没有许可证,您只能使用 2 个用户(非常适合个人使用/小型项目),否则需要支付$$$。


为什么没有评论就被踩了呢?我在工作中使用Perforce,虽然我不会在个人使用中使用它(我更喜欢DVCS),但我认为它是一个很好的版本控制系统,具有出色的GUI和良好的Windows集成。所以我平衡了这个踩... :-) - PhiLho
是的,虽然我自己不会使用它,但如果你可以免费使用这样昂贵的软件,肯定有一些价值。毕竟,Perforce是微软自己使用的(或者在狗粮警察据称开始坚持使用TeamFrustration...我是说,“Foundation”产品线之前)。 - Deltics

0
你是否计划使用外部服务器或在同一台机器上运行服务器?
如果您计划使用自己的外部服务器,我建议使用Mercurial。分布式系统将使您能够分支和继续提交,即使您没有访问服务器的权限(例如,您正在笔记本电脑上编写代码并且不在具有版本控制系统服务器的网络上)。
如果您计划使用相同的计算机,我建议使用Subversion。它具有可靠的Windows支持,并且从未让我失望过。

不,这都只是本地的。 - Alix Axel
非常抱歉可能会问一个基本的问题(我对CVS相对较新),但是TortoiseSVN是否可以完成所有必要的工作(充当“客户端”和“服务器”)? - Alix Axel
我配置的方式是使用Tortoise创建和维护版本库的“服务器端”工作(我不确定安装时是否有此选项)。 - Thomas Owens

0

我是Sourcegear Vault的忠实粉丝。虽然基础设施开销稍高(需要SQL Server Express或更高版本),但他们提供免费的单用户许可证,并且如果需要支持,您可以得到良好的支持。


-7

SourceSafe 对于个人项目来说运作得相当不错。Subversion 也是一个可靠的免费产品,但比 VSS 设置要困难一些。如果你想花钱并且希望在 Visual Studio 中获得最佳体验,那么 Team System 也是一个选择。


1
不适用于Windows系统。如果您下载TortoiseSVN,它包含了您在Windows上设置和运行服务器所需的一切。 - Thomas Owens
是的,这真的很容易。事实上,我对它的简单程度感到惊讶。 - Thomas Owens
4
SourceSafe是一个糟糕的想法,应该尽可能避免使用。如果你需要便宜而好用的工具,可以考虑使用git或svn。 - Colen
1
-1 不,SourceSafe绝对不是一个好主意。一点也不。永远不要使用它。 - sbi
1
考虑到你的名字是“TheHurt”,我并不惊讶你推荐VSS :-) - Michael Stum
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接