2012-05-26 47 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