因爲我相信這是沒有辦法剝離大型文件出庫的,我正在尋找一種方式來之一:有沒有可以在沒有大文件的情況下生成克隆的mercurial命令?
克隆(創建)一個新的回購至少包含所有相同的文件,即使沒有歷史記錄(僅限導出提示修訂版),也可以刪除所有大文件。
實現類似的結果沒有手動導出,然後重新導入文件,一個艱苦的手動過程。
如果沒有這樣的命令,我可能可以編寫我想要的命令(使用Python)。
因爲我相信這是沒有辦法剝離大型文件出庫的,我正在尋找一種方式來之一:有沒有可以在沒有大文件的情況下生成克隆的mercurial命令?
克隆(創建)一個新的回購至少包含所有相同的文件,即使沒有歷史記錄(僅限導出提示修訂版),也可以刪除所有大文件。
實現類似的結果沒有手動導出,然後重新導入文件,一個艱苦的手動過程。
如果沒有這樣的命令,我可能可以編寫我想要的命令(使用Python)。
只需使用
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
來選擇性地刪除一些大文件。
對於任何人想知道爲什麼我想退出大文件;一旦大文件被回購,它就無法通過Bitbucket回購推送/同步! –