2

您如何找到 hg 移植的实际日期?9月7日,用命令移植了几个文件:

hg transplant -b <branch> --log abcdefg

9 月 10 日,该命令hg log --date "2012-09-07 to 2012-09-10"正在运行。但是,这不会显示移植文件的变更集,因为日期的父提交日期是 8 月。

如何在日期范围显示移植的分支上进行 hg 日志(或其他内容)?

4

2 回答 2

2

在这一点上,你不走运。这是transplant不是任何良好工作流程的标准部分的原因之一。当有人在错误git cherry-pick的分支中做一些工作时,它(和)很好,但在正常使用中它们不应该是必需的。该命令是从一个分支更改到另一个分支的首选方式——如果你总是在历史上最早的时间点修复错误,可以修复它们应该是一种安全的方法,可以将它们带入它们存在的任何分支,而无需带来任何其他变化。2010 年 Joel of Software/Kiln 路演视频很好地解释了为什么选择合适的父母进​​行修复总是更好的选择。mergehg mergemerge

如果您想覆盖您正在移动的变更集的日期,则不如带参数的命令好,merge但仍然好。transplantgraft--currentdate

于 2012-09-11T01:11:03.760 回答
0

我不认为你可以。 提交变更集后,您将无法返回并对其进行任何更改。看起来transplant保留/使用原始变更集时间戳。

您可以使用extras模板字段来显示/查找存储库中的所有移植。我相信对于移植的变更集,将有一个source键/值对extras与原始变更集的变更集 ID。

$ hg log --template '{extras}'

然后,您可以将该输出传递给 grep 以获取移植。

于 2012-09-11T02:53:19.477 回答