我試圖找出如果下面的Mercurial命令是等價的(附加+
旁id -i
輸出,如果目錄已經修改過的文件):hg id -i
和hg log -l1 --template "{node|short}"
。他們還是不是?水銀命令等同
其目的是爲了加速某些自動化,而不需要執行id -i
並在log
模板中使用{node|short}
。他們似乎相當,但我寧願如果別人看看,以及我繼續前。
我試圖找出如果下面的Mercurial命令是等價的(附加+
旁id -i
輸出,如果目錄已經修改過的文件):hg id -i
和hg log -l1 --template "{node|short}"
。他們還是不是?水銀命令等同
其目的是爲了加速某些自動化,而不需要執行id -i
並在log
模板中使用{node|short}
。他們似乎相當,但我寧願如果別人看看,以及我繼續前。
它們在某些條件下是等效的。 log -l 1
爲您提供第一次修訂,當所有修訂從tip
(「最新」)到0
。 hg id
告訴你你目前已經簽出了什麼。所以,如果你還沒有簽出尖端(說你已經簽出一個分支組織的特定版本),你會得到完全不同的輸出:
[email protected]:~/projects/mercurial-crew$ hg log -l1 --template "{node|short}\n"
7eda5bb9ec8f
[email protected]:~/projects/mercurial-crew$ hg id -i
824f7b3545c1
但是,如果你已經簽出tip
(和你有沒有修改的文件),那麼他們是相同的(除了日誌不提供沒有\n
換行符):
[email protected]:~/projects/mercurial-crew$ hg checkout tip
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
[email protected]:~/projects/mercurial-crew$ hg id -i
7eda5bb9ec8f
[email protected]:~/projects/mercurial-crew$ hg log -l1 --template "{node|short}\n"
7eda5bb9ec8f
他們是不一樣的,因爲hg id
默認檢查工作樹和:
$ hg merge side
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg id -i
eb51a3480d0c+62e318575165+
如果您處於合併過程中,工作樹有兩個父母,並且hg id
會同時打印這兩個父母。
同時,hg log
默認爲注視當前(糟糕,由於Ry4an Brase)尖端提交(而不是工作樹); {node | short}
打印其ID:
$ hg log -l1 --template '{node|short}'
eb51a3480d0c
在另一方面,如果在合併的中間是不,工作樹只有一個父。您也可以指定修訂.
,它是當前提交的...所以在那種情況下是,它們實際上是相同的。