繁体   English   中英

生成仅包含修订/修订集修改的文件内容的Hg差异(或补丁)

[英]Generate Hg diff (or patch) that Only includes content for files modified by a revision/revset

给定一个较大的代码库和两个修订或修订版(例如,本地“源”和目标),它们可能共享也可能不共享最近的父目录,并且通常包含大量不相关的文件增量;

如何生成差异输出以比较在源revset本身中修改的文件的更改?

(这应该是祖先之间的差异;但适用于修订集中包含的文件。)

使用hg diff -r target -r source显示祖先中的所有更改,即使对于未由source sevision修改的文件也是如此。

此外,这应该在不了解目录结构的情况下进行。

如果我理解正确,那么您希望在revs sourcetarget之间有所区别,但您希望将其限制为在changesset source中修改的文件。 您可以分两步来完成此操作(使用别名或shell脚本轻松地将其组装成一个步骤):

  1. 列出在source修改的文件:

     hg log -r source --template '{files}' 

    这只是输出文件名列表。

  2. 请求这些文件的差异:

     hg diff -r target -r source $(hg log -r source --template '{files}') 

步骤2是带有“命令替换” $(...)的bash命令,它将插入步骤1的输出。 其他方法也是可能的。

hg help diff

如果仅指定一个修订,则将该修订与工作目录进行比较

即您可以尝试hg up $SOURCE; hg diff -r $TARGET hg up $SOURCE; hg diff -r $TARGET

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM