嗯,是的,沒有。
我知道你的問題表明你正在使用遠程存儲庫作爲源,但問題的標題有點寬泛,所以我正在回答更廣泛的問題。
看似明顯的最終結果是一樣的。儘管這兩個倉庫中的文件不是二進制相同的(請注意,我不是在談論跟蹤的文件,我在談論Mercurial用來跟蹤這些文件的「數據庫」),歷史記錄,變更集等都是一樣的。
所以在這方面,是的,這兩個似乎做同樣的事情。
但是,他們以不同的方式做到這一點。
如果你這樣做:
hg clone REMOTE_URL
hg init && hg pull REMOTE_URL
再有就是沒有真正的區別。
但是,如果你這樣做:
hg clone LOCAL_PATH
hg init && hg pull LOCAL_PATH
(注意,這個克隆/拉從另一個存儲庫已經在你的硬盤上)
再就是可能的差異。如果可能,本地克隆將使用存儲庫的硬鏈接。換句話說,你並沒有爲存儲庫中的所有文件創建一個新的獨立副本,而是爲它們創建了磁盤上的新鏈接,這些鏈接運行得非常快,並且幾乎不需要空間。
然後,當你開始修改歷史,即。提交新的變更集,這些文件將被取消鏈接,並按照需求進行完整複製。
請注意,確切的啓發式文件,它不會做這樣的硬鏈接是我不知道的。您可以在Mercurial wiki,Hardlinked Clones中閱讀有關此功能的更多信息。
拉不會做到這一點。它將從其他存儲庫中讀取並在目標存儲庫中創建/更新新文件。這需要更多時間和更多的磁盤空間。
所以總結:
hg clone LOCAL_PATH
可以佔用更少的磁盤空間,並運行一大堆比hg init && hg pull LOCAL_PATH
- 更快如果你克隆/從遠程倉庫拉,沒有真正的差異
+1擊敗我。 **:)** - Vaibhav可能需要執行'hg update --clean'。 –
謝謝!!!!我一直在尋找如何禁用hg克隆的默認路徑。 –