你如何找到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以获取移植。