2011-08-31 26 views
2

我有權訪問SVN存儲庫,我可以抓取修訂版的偶爾快照(如.gz,而不是通過svn update),並且正在黑客添加代碼一些自定義,我沒有任何意圖推回到SVN回購。我正在使用mercurial來管理我的本地副本,並且看到了處理這種情況的兩種方法。使用Mercurial處理只讀SVN回購:從中繼合併更新

  1. 基於在https://www.mercurial-scm.org/wiki/SubversionToMercurialHowto中規定的方法,你存儲未修改的svn回購於一體的分公司,工作中的其他,然後在更新SVN和拉變化和合並衝突。

  2. 只要保留兩個獨立回購,並從基於SVN的克隆中做hg pull -f到工作的一個,然後合併衝突。

我在想,如果有一個優勢,在另外一個方法,以及如何處理的事實,我不能輕易更新SVN拷貝,而是可能要重新寫全回購(除非有另一種方法來有選擇地替換已更改的文件)。

回答

1

基於對這個other SO question的回答,我會說因爲跟蹤變化來自哪裏(如果這在你的情況中很重要)的差異,使用命名分支將比使用克隆更好。將來自Subversion存儲庫的更改與克隆或命名分支合併是基本相同的,並且更改來自(SVN,您的提交等)也是無關緊要的。 Mercurial將能夠處理合並。

此外,Svn2Hg如何解釋能夠將unified diff退還給SVN存儲庫的方法。所以,如果你無法承諾,你應該能夠給予某人統一的差異來應用你想要回饋的改變。

最後,如果您確實最終能夠訪問SVN回購,您將需要使用hgsubversion extension,這將使Hg變成SVN客戶端,並允許您將更改直接推回到SVN回購。