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
-
hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n"
会显示每个变更集中每个文件的列表,从[start rev]到[end rev ],每个变更集的文件放在一个新行中。 用{files}
交换{file_mods}{file_adds}
以显示修改,添加或删除的所有文件。 -
sed -e 's/ /\n/g'
会将所有的文件分割显示在不同的行上 -
sort
会,呃,sorting清单给你,所以我们可以用uniq过滤列表 -
uniq
将过滤列表以删除在多个版本中更改的重复文件。
如果您像大多数商店一样,则使用票务系统来跟踪更改。 如果您知道故障单号并希望查找与该故障单相关联的所有提交(假设您在提交消息中包含故障单号),则可以使用:
hg log -k TICKET_NUMBER
这会显示与票证关联的所有修订。 但是,它不会列出这些文件。 你可以使用上面的答案之一,然后得到与修订相关的文件列表。
为了简单起见,结合之前答案中的信息,可以执行以下操作来search提交,包括更改的文件:
hg log -vk TICKET_NUMBER
我知道这个问题是一个古老的问题,我很惊讶没有人提供修改后的代码formsOP。 通过运行hg log -v
我得到了修改/添加/删除的文件列表(不标记哪个是哪个)。 或者我真的需要hg log -v -l5
来查看最近5次提交(包括那些我还没有推送到repo的文件)被修改/添加/删除的文件。