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