我試圖找到從特定變更集中獲取所有文件的最快方法;我不在乎歷史。從特定版本獲取所有文件的最快方法?
到目前爲止,我已經找到了最好的事情是cd
到庫中,然後
hg archive -u <changeset> /path/to/put/files
但我發現即使是在一個大倉庫很慢,即使它不創建.hg
文件夾。
我在想,也許我可以用hg update
來代替,因爲這似乎運行得更快一些,但我不想更新當前目錄,我希望將文件寫入當前回購之外的新目錄。那可能嗎?
或者是有一些其他的快捷方式?
我試圖找到從特定變更集中獲取所有文件的最快方法;我不在乎歷史。從特定版本獲取所有文件的最快方法?
到目前爲止,我已經找到了最好的事情是cd
到庫中,然後
hg archive -u <changeset> /path/to/put/files
但我發現即使是在一個大倉庫很慢,即使它不創建.hg
文件夾。
我在想,也許我可以用hg update
來代替,因爲這似乎運行得更快一些,但我不想更新當前目錄,我希望將文件寫入當前回購之外的新目錄。那可能嗎?
或者是有一些其他的快捷方式?
你可以試試下面的加快了一點東西:
hg archive --config ui.archivemeta=false /path/to/target
此選項禁止的.hg_archival.txt
產生,這有時會產生相對昂貴。
此外,hg update
可以更快在當地,因爲不是所有的文件都被更新(只有那些相對於當前的修訂改變了的)。 hg clone -U
或hg share -U
之後的新更新應該不會更快。
您可以嘗試遞歸硬鏈接(通過cp -al
或類似的工具),然後是hg update
,但是必須格外小心,因爲在一次結帳中修改文件會影響另一個結賬中的文件。如果你想有一個只讀副本或者,如果你知道(如,肯定知道,不只是猜測),你不會做任何文件的任何就地修改這是唯一的選項。
硬鏈接可能工作。我只是用它來做一個構建,然後刪除整個目錄後面的字,以防止意外修改。感謝您的建議! – mpen
有沒有更好或更快的一般方式。 'hg archive'就是爲了達到這個目的,它通常是導出版本庫狀態到某個版本的最佳方式。 – planetmaker
即使更新(與不期望的副作用)後的文件將需要被複制了.. – user2864740
另一種方式是[克隆到一個特定修訂](http://stackoverflow.com/questions/4148234/how-罐你克隆-A-水銀存儲庫-AS-對的一特定變更),並然後向[ 「UNINIT」](https://github.com/wertarbyte/etckeeper/blob/master/uninit。 d/50vcs-UNINIT)。它會以任何方式更快或更好?我對此表示懷疑(因爲它也複製了最初商店的祖先歷史);但它會完成請求的任務而不修改當前的工作副本。因人而異。 – user2864740