Mercurial – 在变更集中更改的所有文件?

如何确定在给定变更集中更改的所有文件?

在这种情况下,我没有寻找差异,只是添加/删除/修改列表。

hg log -vprX做了一个差异列表,但我只是想要这些文件。

如果只想列出已更改的文件,那么应该使用“status command”。下面将列出修订版本REV中文件的更改

 hg status --change REV 

只需从您的hg log -vpr删除p hg log -vpr就会显示文件列表。 -p表示显示补丁。 您也可以使用模板来根据自己的喜好来设置输出的格式。

我知道这个问题是针对一个变更集的,但是如果您希望获得针对一系列变更集修改的所有文件,则可以执行

 hg status --rev 1 --rev 10 -m 

通过谷歌searchfind类似的概念这个问题。 要显示通过一系列变更集更改的所有文件,就像下面这样简单:

 hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n" | sed -e 's/ /\n/g' | sort -d | uniq 
  1. hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n"会显示每个变更集中每个文件的列表,从[start rev]到[end rev ],每个变更集的文件放在一个新行中。 用{files}交换{file_mods}{file_adds}以显示修改,添加或删除的所有文件。
  2. sed -e 's/ /\n/g'会将所有的文件分割显示在不同的行上
  3. sort会,呃,sorting清单给你,所以我们可以用uniq过滤列表
  4. uniq将过滤列表以删除在多个版本中更改的重复文件。

如果您像大多数商店一样,则使用票务系统来跟踪更改。 如果您知道故障单号并希望查找与该故障单相关联的所有提交(假设您在提交消息中包含故障单号),则可以使用:

 hg log -k TICKET_NUMBER 

这会显示与票证关联的所有修订。 但是,它不会列出这些文件。 你可以使用上面的答案之一,然后得到与修订相关的文件列表。

为了简单起见,结合之前答案中的信息,可以执行以下操作来search提交,包括更改的文件:

 hg log -vk TICKET_NUMBER 

我知道这个问题是一个古老的问题,我很惊讶没有人提供修改后的代码formsOP。 通过运行hg log -v我得到了修改/添加/删除的文件列表(不标记哪个是哪个)。 或者我真的需要hg log -v -l5来查看最近5次提交(包括那些我还没有推送到repo的文件)被修改/添加/删除的文件。

Interesting Posts