2012-02-22 92 views
6

我使用Mercurial來控制我的源代碼版本。但有些人更喜歡其他版本控制系統(如git,Bazaar,SVN,CVS)。多個源代碼存儲庫

我想知道,是否可以一次在多個系統下存儲一個存儲庫,以便人們可以使用他們想要的任何存儲庫?

+2

想要輕鬆地從你的倉庫中取出,然後在他們的本地副本中執行'darcs init'或'git init'或'svn import'的人(如果他們願意的話)。你幾乎不能滿足服務器端的每個人的喜好,並保持你的主回購同步聽起來討厭和資源密集型。 – tripleee 2012-02-22 13:59:29

回答

4

GitHub爲Mercurial開發了hg-git擴展。這個擴展允許你使用Mercurial從git倉庫進行克隆,然後重新插入。所以如果你不介意有一箇中心的git倉庫,那麼它肯定有可能使用git和mercurial來訪問它。

雖然另一個答案指出你提到的大多數VCS工具與使用非常類似,所以值得一提的是,與最小的努力相比,是否值得讓人們使用他們想要的任何東西是值得的參與學習一個新系統。

3

我不知道Mercurial,但使用AccuRev可以在AccuRev和Git中維護您的源代碼。插件Kando負責從AccuRev複製到Git,反之亦然。有關更多詳細信息,請參閱http://www.accurev.com/kando

2

不容易 - 您必須通過大量鉤子和事件腳本來保持每個人與其他人同步。例如,可以從顛覆中結賬,在該文件夾中執行hg init,並臨時使用mercurial進行工作,然後在開心時最終提交給顛覆(確保您不添加和提交文件以及.hg文件) 。同樣取決於開發人員的數量,如果兩個開發人員在不同的版本控制系統下承諾使用相同的文件,您可能會遇到各種與合併衝突有關的問題。由於Subversion(和CVS)是集中版本控制系統,並且git,bazaar和mercurial都是分佈式的,所以它們保持同步將需要爲每一個選擇一個主副本。

你提到的VCS工具在命令行上都很相似(儘管CVS真的不應該再使用),所以其他用戶的學習曲線並不特別陡峭。

4

是可以存儲在多個系統信息庫一次

我覺得答案是否定的,作爲一個檔案庫有鏈接到應用程序特定的格式。

最好的做法是讓授權其他開發者使用符合他們需求的客戶端應用程序,如果它與您的工作過程兼容。

示例:您有一個現有的SVN回購和另一個Git回購。作爲開發人員,我只想使用BZR。我可以使用bzr-svn或bzr-git插件分支SVN或Git,在本地使用BZR提交(並從BZR功能中受益),然後將結果推回到SVN或Git的

1

這取決於轉換工具是否易於選擇並使用混帳: 混帳svn的官方支持,它是建立在Windows中的版本,容易在Debian中安裝/ Ubuntu的使用deb包

韓庚:
https://www.mercurial-scm.org/wiki/WorkingWithSubversion
https://www.mercurial-scm.org/wiki/RepositoryConversion#Subversion 與許多類型的轉換器可供選擇從,其中許多人需要一些設置

BZR:
的bzr - svn的是內置在Windows版本,它正式支持這裏
細節:http://wiki.bazaar.canonical.com/ForeignBranches/Subversion