您如何找到 hg 移植的实际日期?9月7日,用命令移植了几个文件:
hg transplant -b <branch> --log abcdefg
9 月 10 日,该命令hg log --date "2012-09-07 to 2012-09-10"
正在运行。但是,这不会显示移植文件的变更集,因为日期的父提交日期是 8 月。
如何在日期范围显示移植的分支上进行 hg 日志(或其他内容)?
在这一点上,你不走运。这是transplant
不是任何良好工作流程的标准部分的原因之一。当有人在错误git cherry-pick
的分支中做一些工作时,它(和)很好,但在正常使用中它们不应该是必需的。该命令是从一个分支更改到另一个分支的首选方式——如果你总是在历史上最早的时间点修复错误,可以修复它们应该是一种安全的方法,可以将它们带入它们存在的任何分支,而无需带来任何其他变化。2010 年 Joel of Software/Kiln 路演视频很好地解释了为什么选择合适的父母进行修复总是更好的选择。merge
hg merge
merge
如果您想覆盖您正在移动的变更集的日期,则不如带参数的命令好,merge
但仍然好。transplant
graft
--currentdate
我不认为你可以。 提交变更集后,您将无法返回并对其进行任何更改。看起来transplant
保留/使用原始变更集时间戳。
您可以使用extras
模板字段来显示/查找存储库中的所有移植。我相信对于移植的变更集,将有一个source
键/值对extras
与原始变更集的变更集 ID。
$ hg log --template '{extras}'
然后,您可以将该输出传递给 grep 以获取移植。