如何在Mercurial中仅列出我的传出更改?

时间:2013-03-09 22:09:53

标签: mercurial

我想在推送之前获取我已修改并提交的文件列表。

我通常可以通过hg传出来做好。

但是,如果我提交了一些额外的更改,在我提交后,那些新的更改也会列出,甚至列在我的名下。我确实做了合并的提交,但没有真正合并,我只是引入了一个无关的变更集。如果我从其他用户那里获得了很多变化,那么我的更改就会在所有这些变化中丢失。

有没有办法只列出我的更改?

2 个答案:

答案 0 :(得分:3)

您可以随时使用带有revset功能的日志和一些模板关键字来获取此类文件列表

hg help revsets建议使用outgoing():

"outgoing([path])"
  Changesets not found in the specified destination repository, or the
  default push location.

--template "{files}\n"为您提供范围内的每个变更集中的空格分隔文件列表,以及来自不同变更集的新行分隔集。 --template "{files % '{file}\n'}"执行trivk“每行文件”

您可以管道输出日志进行排序,以便排序,无需重复,文件列表

最终草案hg log -r outgoing() --template "{files % '{file}\n'}" | sort -u

答案 1 :(得分:1)

您可以使用

hg outgoing --no-merge 

过滤掉合并变更集(-M是简短版本,请参阅hg help outgoing)。

如果您正在推送您从中提取其他人创作的更改集的同一个仓库,您应该只能看到您创建的更改集。