[英]hg convert abort: '\n' and '\r' disallowed in filenames:
我即將將git repo轉換為hg repo。
問題是幾個月前,有一個名為'favicons/Icon\\r'
的文件添加到git倉庫中,這對於git來說很好。 該文件已被刪除,但是由於它在歷史記錄中,因此在運行hg convert
擴展名時會得到以下輸出:
converting...
816 Favicons
transaction abort!
rollback completed
abort: '\n' and '\r' disallowed in filenames: 'favicons/Icon\r'!
有沒有辦法解決這個問題,還是我必須呆在git repo上? 非常感謝!
由於該路徑名在Mercurial中無效,因此您必須執行以下一項或多項操作:
前兩個可能很容易直接使用hg convert
實現。 例如, 文檔提到了通過文件名排除或重命名文件的功能。 不過,我自己實際上還沒有嘗試過。
最后一個相對容易,因為您可以使用git filter-branch
來實現。 “相對”,在“相對容易”是非常相對的: filter-branch
是特別不容易正確使用(它只是比寫一個新的Git到Mercurial的轉換更容易)。
請參閱如何從Git存儲庫中的提交歷史記錄中刪除/刪除大文件? 並從示例的所有Git存儲庫提交歷史記錄中完全刪除文件 。 請注意, 格雷格·培根(Greg Bacon)的答案正確使用了--tag-name-filter
來調整標簽(如果您的標簽在復制過程中更改或更改了提交時指向歷史記錄,則這是必需的)。
我是這樣解決的:
echo "exclude \"favicons/Icon"$'\r'$"\"" >> omit
hg convert --filemap omit mygitrepo myhgrepo
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.