Search code examples
mercurial

Exclude files added/changed by a merge from hg status


I have a repository default and a branch mybranch. Now I want to use hg status to show files which were added/changed in my branch but exclude files which were added/changed by a merge from default.

I tried

hg status --rev "branch('mybranch') and not merge()"

but this still contains files added by a merge. For testing I also tried

hg log --rev "branch('mybranch') and not merge()"

which works as expected. What am I doing wrong?


Solution

  • This may only be a partial answer, but it might help.

    Option --rev does different things for status and log commands.

    For status:

    • --rev REV [+] show difference from revision

    For log:

    • -r --rev REV [+] show the specified revision or revset

    Note also that status does have an -r option but it is not a synonym for --rev.

    So this at least explains why the two commands don't give you the results you expected.

    Oddly, though the help page for status does not mention revsets, they do seem to be supported.