2010-09-14 42 views
1

我試圖從一個較大的修建Mercurial存儲庫,並需要從幾個分支拉動變化。我想用hg convert,但我得到這樣的錯誤轉換mercurial存儲庫時避免shamap腐敗的正確方法是什麼?

中止:未知版本「81b79760e1350d185dbf645ab67633eda9d52ada」!

當試圖使用convert從相關分支獲取更改。這就是我所做的。我開始與mybranch和使用

汞轉化--filemap filemap mybranch mybranch_converted

然後,從anotherbranch(共享捕捉到配對的下變換庫的任何變化共同祖先mybranch),我援引

汞轉化--filemap filemap anotherbranch mybranch_converted

但失敗像我上面顯示中止錯誤。

我引明白,這表明由第一次轉換產生的shamap文件被莫名其妙borked,所以我應該怎麼做才能產生良好的shamap文件?我也很想知道在什麼可能導致此過程失敗,考慮到它是如此簡單。此外,因爲這可能是相關的,我要指出的是自己通過轉換另一個Mercurial庫產生的mybranchanotherbranch始祖。

回答

2

我認爲這消息告訴你,你在拉變更集的一個具有父,其節點ID在目標回購不顯示 - 因爲您最初的轉換改變了它不顯示nodeids。

而不是做兩次轉換,你應該做兩張拉和一個轉換是這樣的:

hg init both_unconverted 
hg -R both_unconverted pull ../mybranch 
hg -R both_unconverted pull ../anotherbranch 
hg convert --filemap myfilemap both_unconverted both_converted 

你不是要嫁接新枝到已經修改變更的方式。

這是可能的,你可以得到你的路線,用--splicemap工作,但我不能確定以上建議簡單地做同樣的事情更多。

相關問題