Search code examples
mercurial

How to list only my outgoing changes in Mercurial?


I'd like to get a list of the files I've modified and committed before I push.

I can generally do this OK with hg outgoing.

But if I pull in some additional changes, after I've committed mine, then those new changes are also listed, and they are even listed under my name. I did do a commit of the merge, but nothing really merged, I just pulled in an unrelated changeset. If I'm pulling in a lot of changes from other users, my changes get lost in all of these changes.

Is there a way to list just my changes ?


Solution

  • You can always use log with revset's function and some template keywords in order to get such filelist

    hg help revsets suggests usage of outgoing():

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

    --template "{files}\n" give you space-separated list of files in each changeset in range and newline-separation of sets from different changesets. --template "{files % '{file}\n'}" do the trivk "file per line"

    You can pipe output of log to sort in order to get sorted, without duplicates, list of files

    Final draft hg log -r 'outgoing()' --template "{files % '{file}\n'}" | sort -u