在Mercurial中克隆存儲庫時,有沒有辦法根據最新的變更集創建目標文件夾?例如:我想創建一個版本化的文件夾作爲mercurial的結果「hg clone <repo url>」
$ hg clone http://hg.repo.com:8000/myrepo 'myrepo-$VERSION'
該文件夾應該以該項目的版本命名,例如myrepo-1.3
。
在Mercurial中克隆存儲庫時,有沒有辦法根據最新的變更集創建目標文件夾?例如:我想創建一個版本化的文件夾作爲mercurial的結果「hg clone <repo url>」
$ hg clone http://hg.repo.com:8000/myrepo 'myrepo-$VERSION'
該文件夾應該以該項目的版本命名,例如myrepo-1.3
。
如果你都還好用的變更散列值,那麼你就可以
$ hg identify -i http://hg.repo.com:8000/myrepo
開始變得尖端變更的ID。你可以用克隆像這樣在Unix shell結合本:
$ hg clone http://hg.repo.com:8000/myrepo \
"myrepo-$(hg -i identify http://hg.repo.com:8000/myrepo)"
爲了更方便使用,我會爲此創建一個別名:
[alias]
vclone = !DEST=$(basename "$1")-$($HG identify -i "$1");
echo "destination directory: $DEST";
$HG clone "$1" "$DEST"
這使你可以做hg vclone foo
得到一個foo-<ID>
克隆。
在別名中,我負責從克隆URL中計算出合適的基本名稱,並以與hg clone
通常在不給出明確目的地時相同的方式打印目的地。最後,我小心地引用參數,以便可以用名稱中的空格克隆目錄。 (如果你的名字中還有"
這樣的字符,那麼在沒有對Mercurial shell別名進行引用的更好支持的情況下運氣不佳)。
您必須首先將其克隆到某個臨時文件夾中,然後檢查回購的提示以查看其修訂或您要在命名方案中使用的任何特徵,然後將之前(臨時)位置重命名爲任何它應該現在......在我所知的情況下,它不適用於香草汞。
你能澄清一下你的意思嗎? – 2012-04-04 21:45:33