![](/img/trans.png)
[英]How to convert SVN (Subversion) to Hg (Mercurial) on Windows?
[英]Syncing SVN to Mercurial using svnsync & hg convert — misses svn:externals?
我已經創建了一個SVN存儲庫的Mercurial鏡像(使用本教程: http : //oreilly.com/opensource/excerpts/opensource-mercurial/migrating-to-mercurial.html )。 同步工作很好,除了我注意到它沒有拿起主SVN repo中引用的外部存儲庫...
理想情況下,我希望能夠將所有內容作為單個回購郵件提取到Mercurial中(如果可能的話還可以使用更改集)。
我不確定的是:缺少外部限制svnsync,還是限制hg轉換?
有沒有什么方法可以強迫外部同步,進入相同的Mercurial回購?
我認為一個好的解決方案是再次為外部設置同步過程。 創建當前hg鏡像的分支,並將外部同步到hg鏡像分叉。
問題就在於,外部的主干應該進入第一個鏡像的子文件夾,那么如何使用轉換復制呢? 我懷疑我可以告訴轉換為導入到子文件夾...
缺少外部限制svnsync或限制hg轉換?
svnsync
用於創建SVN存儲庫的鏡像。 這包括任何svn:externals
屬性。 因此它必須是hg convert
的限制。
請注意,您實際上不需要使用svnsync
創建鏡像。 本文建議這只是因為擁有本地副本可能會加快轉換過程。
有沒有什么方法可以強迫外部同步,進入相同的Mercurial回購?
SVN存儲庫通常包含多個松散相關的項目,每個項目都有自己的分支和標記。 但Mercurial並不是那樣工作的:當你進行分支時,你會分支存儲庫中的所有東西。 您應該為SVN中具有自己的主干/分支/標記的每個項目創建一個單獨的mercurial存儲庫。 這種不同的方法很可能是為什么hg convert
忽略外部,即使它們在同一個SVN存儲庫中。
在mercurial中有相當於svn:externals
; 它被稱為“子存儲庫”。 您沒有一個或多個svn:externals
屬性,而是在項目的根目錄中有一個包含類似內容的.hgsub
文件。 您應該首先將每個SVN項目轉換為單獨的mercurial存儲庫,然后將它們與子存儲庫連接。 有關更多詳細信息,請參閱mercurial wiki頁面了解子存儲庫 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.