2011-03-09 75 views

回答

7

我能想到的一個區別是副本不是原子操作:
您無法確定您正在複製的回購沒有被修改。


編輯:hg clone man page居然提到:

在某些情況下,你可以克隆庫和使用工作目錄全硬鏈接與

$ cp -al REPO REPOCLONE 

這是最快的克隆方式,但並不總是安全的。

  • 的操作不是原子操作(確保REPO操作期間不會修改是由你)
  • ,你必須確保你的編輯符硬連接(Emacs和大多數Linux內核的工具這樣做)。
  • 另外,這與將其元數據置於.hg目錄下的某些擴展名不兼容,例如mq
2

是的,有一個區別。如果兩個存儲庫位於同一文件系統上,克隆將嘗試創建硬鏈接。 (不幸的是,這在Windows上不起作用)

+1

實際上,它確實適用於最近足夠的NTFS文件系統 - 我認爲NTFS 5是我頭頂的要求。肯定與Win7一起工作,很確定它也適用於Vista,但沒有它來測試。 – 2011-03-09 08:24:00

3

另一個小的區別 - 如果您執行副本,則原始存儲庫和新存儲庫都將具有相同的父存儲庫。通過克隆,新存儲庫的父項將成爲原始項目。

即位於.hg/hgrc文件的[paths]部分。

原始庫(/回購/ HG /原始)

[paths] 
default = /repo/hg/parent 

複製庫

[paths] 
default = /repo/hg/parent 

克隆庫

[paths] 
default = /repo/hg/original 
相關問題