2012-05-26 50 views
2

my previous question我知道必须将我的SVN存储库更改为分布式VCS。将SVN存储库迁移到某些分布式VCS(Git或Mercurial)

所以,目前我:

  • 有一个现有的SVN仓库,
  • 使用Visual Studio 2010,
  • 使用的VisualSVN为客户端和服务器。

我想:

  • 转换客户端和服务器端的分布式VCS,
  • 保持历史,
  • 仍然有新的VCS一个方便的Visual Studio插件。

我的问题:

  • 什么VCS是更好地使用?
  • 如何将存储库从SVN转换为另一个VCS?
  • 在客户端,我应该只是使用新的VCS插件“重新检查”?

回答

4

我对通过SVN从集中式VCS(Team Foundation Server)过渡到Mercurial有着积极的经验。所以我想这适用于你的情况。

hg convert可以将您的SVN资源库转换为Mercurial,保留历史记录和分支(假设您坚持使用SVN中常见的分支/标签布局)。

TortoiseHg提供了Mercurial功能与Windows资源管理器的良好集成,以及DAG渲染器,源树浏览和注释/责备工具等可视化工具。同时,TortoiseHg保留命令行hg程序,因此您可以自由地混合GUI和CLI。

VisualHG基于TortoiseHg,将Mercurial存储库支持集成到Visual Studio 2008/2010中,在您在解决方案资源管理器中进行更改时添加,删除和重命名解决方案文件。

这套工具为大多数大中型项目提供了很好的支持。但是,如果您的项目非常庞大,或者包含大量(几十兆字节)的二进制文件(比如媒体),或者您计划定期将源代码构建的二进制文件放在源代码控制之下,这可能会使Mercurial很难使用。

在这种情况下,您可能想要使用其他工具,如Mercurial子库和大型文件扩展名,或考虑其他VCS(Git)。

+0

我在库中有几个二进制文件。最大的是13 MB。为什么这是Mercurial的问题? – javapowered

+1

@javapowered:Mercurial处理内存中的所有文件,并且处理有一定的开销。它可能只是扼杀一个100 MB的文件,另请参阅http://mercurial.selenic.com/wiki/HandlingLargeFiles。与此同时,拥有大量〜10 MB的文件并不是问题。但是,如果您计划定期将大文件放入您的回购库,这意味着回购期将随着时间的推移而变得越来越大,并且每个回购都存储在本地。截至目前,Mercurial不支持修剪历史记录。 – Helgi

+0

可能我应该只使用git呢? – javapowered