簡體   English   中英

使用svnsync和hg轉換將SVN同步到Mercurial - 錯過了svn:externals?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM