這是可行的,但我們必須小心從修訂圖中選擇一個線性件。
考慮有兩個頭的最小存儲庫(同樣的事情是,如果兩個分支或兩個書籤):
$ hg log -G --template "{rev}\n"
o 4
|
| o 3
| |
| o 2
|/
o 1
|
o 0
說我們從1開始。我們要沿任頭4(所以線狀體去將是:1,4)或沿着頭3(所以線性片將是:1,2,3)。
所以我們將使用兩個參數的腳本:線性塊的開始和結束。
這是裸機,但工程:
for rev in `hg log -r "descendants(1) and ancestors(3)" --template "{rev}\n"`
do
echo Updating to $rev:
hg update $rev
echo Executing our script:
hg id --id --num
done
這裏是輸出:
Updating to 1:
0 files updated, 0 files merged, 2 files removed, 0 files unresolved
Executing our script:
4d5aba4313ce 1
Updating to 2:
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Executing our script:
f0de0712ec00 2
Updating to 3:
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
Executing our script:
d052bd7c310b 3
該腳本不管是工作目錄的當前版本。
在開始之前,您必須做hg fetch
以從遠程獲取更改,而不將其應用於工作目錄,並且需要了解拓撲並選擇線性塊的起點和終點。
你也必須更換硬編碼1
和3
與$1
和$2
殼位置參數,並與您的實際腳本替換hg id
線:-)
要了解它是如何工作的,我們使用善變的特點(做hg help revsets
瞭解更多),它允許在歷史圖上執行查詢(有點像SQL :-)
你好,你檢查我的答案嗎? –
是的,我想我是。我能做比我更多的事嗎?如果是這樣,我想這樣做。你的回答真的很有幫助。 –
我不認爲你可以做任何事情比接受答案更多。我很高興這有幫助:-) –