【问题标题】:Find likely base revision in a mercurial repository在 mercurial 存储库中查找可能的基本修订
【发布时间】:2013-08-16 08:35:31
【问题描述】:

我收到了一些代码作为 tar 存档(没有 .hg 目录)。我知道此代码基于哪个存储库,但不知道哪个修订版用作这些修改的基础。有什么方法可以通过查看文件来找到它吗?这类似于Given a file, how to find out which revision in a mercurial repository this is?,但我无法联系到代码的作者,因此我无法控制如何从存储库中提取文件。我也在处理修改过的文件,所以基本版本的差异不会是空的。

我的后备计划是遍历所有修订版并使用差异最小的版本,但我仍然希望有更好的解决方案。

【问题讨论】:

  • 没有更好的解决方案。您只能尝试一次比较单个文件并使用 diff | wc -l 用于对每个文件进行二等分

标签: mercurial diff


【解决方案1】:

没有自动化的方法可以做到这一点,但您可以通过使用hg bisect --command diff ... 命令将时间归零来减少时间。

作为提示,如果您(我知道可能不是)必须再次给某人快照,请使用hg archive 来制作它。它包含一个带有版本信息的 .hg_archive.txt 文件,如果您必须再次执行此操作,它将有所帮助。

【讨论】:

  • 二等分不会帮助(mea culpa),因为使用 diff 你不会得到单一的“坏-好”变化,而只有“坏-好-坏”
  • 是的,你是对的,你不会变好/变坏,但是如果你输出修订版和每个差异的行数然后返回“坏”,它会工作为您提供所有修订,然后您只需寻找最低的。
猜你喜欢
  • 2011-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 2013-01-03
相关资源
最近更新 更多