2015-05-23 30 views
0

因爲我相信這是沒有辦法剝離大型文件出庫的,我正在尋找一種方式來之一:有沒有可以在沒有大文件的情況下生成克隆的mercurial命令?

  • 克隆(創建)一個新的回購至少包含所有相同的文件,即使沒有歷史記錄(僅限導出提示修訂版),也可以刪除所有大文件。

  • 實現類似的結果沒有手動導出,然後重新導入文件,一個艱苦的手動過程。

如果沒有這樣的命令,我可能可以編寫我想要的命令(使用Python)。

+0

對於任何人想知道爲什麼我想退出大文件;一旦大文件被回購,它就無法通過Bitbucket回購推送/同步! –

回答

4

只需使用

hg lfconvert --to-normal <old> <new> 

這將倉庫轉換目錄<old>到存儲庫目錄<new>與所有大文件變回正常的文件。修訂哈希值將會改變,否則修訂歷史應該保持不變。

如果你真的想先剝離從庫中的所有大型文件,並失去了與他們相關聯的所有資料協會(也就是說,如果你的目的是摧毀大型文件,而不是讓他們),第一次運行:

hg convert --filemap <nolf> <old> <new> 

其中<nolf>是路徑到含有單線上的文件:

exclude .hglf 

<old>是原始存儲庫和<new>用於轉換的目標目錄。

此轉換將排除.hglf目錄,其中包含大型文件的所有「替身」文件。請注意,這樣的轉換也將銷燬所有僅改變大文件及其提交消息的提交(因爲它們變成空提交)。

您還可以在hg lfconvert --to-normal之後使用hg convert和適當的--filemap來選擇性地刪除一些大文件。

相關問題