你如何找到hg移植的實際日期?在9月7日,幾個文件被移植用命令:Mercurial日誌問題
hg transplant -b <branch> --log abcdefg
在9月10日,該命令hg log --date "2012-09-07 to 2012-09-10"
正在運行。但是,這不會顯示移植文件的變更集,因爲該日期具有八月份的父承諾日期。
我該如何做一個日誌範圍的分支上的hg日誌(或其他東西),以顯示我的移植?
你如何找到hg移植的實際日期?在9月7日,幾個文件被移植用命令:Mercurial日誌問題
hg transplant -b <branch> --log abcdefg
在9月10日,該命令hg log --date "2012-09-07 to 2012-09-10"
正在運行。但是,這不會顯示移植文件的變更集,因爲該日期具有八月份的父承諾日期。
我該如何做一個日誌範圍的分支上的hg日誌(或其他東西),以顯示我的移植?
在這一點上你運氣不好。這是transplant
不是任何好工作流程的標準部分的原因之一。它(和git cherry-pick
)適用於當有人在錯誤分支中做了一些工作,但它們在正常使用情況下不應該是必需的。 merge
命令是從一個分支到另一個分支進行更改的首選方式 - 如果您始終在修復歷史中的最早時間修復錯誤,那麼hg merge
應該是一種安全的方法,可以將它們帶入任何分支沒有帶來任何其他變化。 2010年Joel的軟件/窯路演視頻包含了一個很好的解釋,爲什麼選擇正確的父母進行修復會使merge
永遠是更好的選擇。
不太好,因爲merge
但仍高於transplant
越好graft
命令,如果你想覆蓋你移動變更之日起,這需要--currentdate
說法。
我不認爲你可以。一旦變更集被提交,你就不能回去改變任何事情。它看起來像transplant
保留/使用原始變更集時間戳。
您可以使用extras
模板字段來顯示/查找存儲庫中的所有移植。我相信對於移植的變更集,extras
中將有source
鍵/值對與原始變更集的變更集ID。
$ hg log --template '{extras}'
然後,您可以將該輸出傳遞給grep以獲取移植。