2012-09-10 88 views
2

你如何找到hg移植的实际日期?在9月7日,几个文件被移植用命令:Mercurial日志问题

hg transplant -b <branch> --log abcdefg 

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

我该如何做一个日志范围的分支上的hg日志(或其他东西),以显示我的移植?

回答

2

在这一点上你运气不好。这是transplant不是任何工作流程的标准部分的原因之一。它(和git cherry-pick)适用于当有人在错误分支中做了一些工作,但它们在正常使用情况下不应该是必需的。 merge命令是从一个分支到另一个分支进行更改的首选方式 - 如果您始终在修复历史中的最早时间修复错误,那么hg merge应该是一种安全的方法,可以将它们带入任何分支没有带来任何其他变化。 2010年Joel的软件/窑路演视频包含了一个很好的解释,为什么选择正确的父母进行修复会使merge永远是更好的选择。

不太好,因为merge但仍高于transplant越好graft命令,如果你想覆盖你移动变更之日起,这需要--currentdate说法。

0

我不认为你可以。一旦变更集被提交,你就不能回去改变任何事情。它看起来像transplant保留/使用原始变更集时间戳。

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

$ hg log --template '{extras}' 

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