Code

rev-list: omit duplicated parents.
authorJunio C Hamano <junkio@cox.net>
Sun, 29 Jan 2006 23:24:42 +0000 (15:24 -0800)
committerJunio C Hamano <junkio@cox.net>
Thu, 2 Feb 2006 03:47:26 +0000 (19:47 -0800)
commit884944239f2ab673cedfaa5e7999d31fd6a46331
treecf455590eb913746c71465066c8c08f82bc04f36
parent2d497115129bd84790f2c1cc8cf91f1598c9094a
rev-list: omit duplicated parents.

Showing the same parent more than once for a commit does not
make much sense downstream, so stop it.

This can happen with an incorrectly made merge commit that
merges the same parent twice, but can happen in an otherwise
sane development history while squishing the history by taking
into account only commits that touch specified paths.

For example,

$ git rev-list --max-count=1 --parents addafaf -- rev-list.c

would have to show this commit ancestry graph:

                  .---o---.
                 /         \
                .---*---o---.
               /    93b74bc  \
   ---*---o---o-----o---o-----o addafaf
      d8f6b34  \             /
                .---o---o---.
                 \         /
                  .---*---.
                      3815f42

where 5 independent development tracks, only two of which have
changes in the specified paths since they forked.  The last
change for the other three development tracks was done by the
same commit before they forked, and we were showing that three
times.

Signed-off-by: Junio C Hamano <junkio@cox.net>
rev-list.c