如何确定给定变更集中更改的所有文件?
在这种情况下,我不是在寻找差异,只是添加/删除/修改列表。
hg log -vprX
执行差异列表,但我只想要文件。
答案 0 :(得分:136)
如果您只想列出已更改的文件,那么您应该使用“status command” 以下将列出修订版REV
中文件的更改hg status --change REV
答案 1 :(得分:15)
从p
中删除hg log -vpr
即可显示文件列表。 -p
表示显示补丁。您还可以使用template根据自己的喜好对输出进行格式化。
答案 2 :(得分:10)
我知道问题是针对单个变更集,但如果您想要针对一系列变更集修改所有文件,则可以执行
hg status --rev 1 --rev 10 -m
答案 3 :(得分:5)
hg status --change .
.
是当前版本的缩写,就像Git中的@HEAD
一样
hg status
hg status --change REV_ID
答案 4 :(得分:2)
通过谷歌搜索找到一个类似概念的问题。要显示通过变更集的范围更改的所有文件,它就像以下一样简单:
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],每个变更集的文件都在新行上。与{file_mods}{file_adds}
交换{files}
以显示修改,添加或删除的所有文件。sed -e 's/ /\n/g'
会拆分所有文件,以便在单独的行中显示sort
将为您排序列表,以便我们可以使用uniq过滤列表uniq
将过滤列表以删除在多个修订版中更改的重复文件。答案 5 :(得分:0)
我知道这个问题是一个老问题,我很惊讶没有人提供修改后的代码形式OP。我通过运行hg log -v
得到了一个修改/添加/删除文件的列表(没有标记哪个是哪个)。或者我实际需要hg log -v -l5
来查看在最近5次提交中修改/添加/删除的文件(包括那些我还没有推送到repo的文件)。
答案 6 :(得分:-2)
如果您喜欢大多数商店,您可以使用票务系统跟踪更改。如果您知道故障单号并想要查找与该故障单关联的所有提交(假设您在提交消息中包含故障单号),则可以使用:
hg log -k TICKET_NUMBER
这会显示与故障单关联的所有修订。但是,它不会列出文件。您可以使用上面的答案之一,然后获取与修订版本相关联的文件列表。
为了简化这一点,结合以前答案中的信息,您可以执行以下操作来搜索提交,包括更改的文件:
hg log -vk TICKET_NUMBER