diff options
author | Linus Torvalds <torvalds@osdl.org> | 2006-06-30 20:21:59 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-07-01 18:21:03 -0700 |
commit | 6631c73685bea3c6300938f4900db0d0c6bee457 (patch) | |
tree | b74be713788694ce8e7b62f6fac28314c64f3d49 /git-rebase.sh | |
parent | ac3bc6c1d1f549f6809d8a7d29bcaed302f3c193 (diff) | |
download | git-6631c73685bea3c6300938f4900db0d0c6bee457.tar.gz git-6631c73685bea3c6300938f4900db0d0c6bee457.tar.xz |
revision.c: --full-history fix.
With history simplification, we still show merges that are required
to make the history _complete_, i.e. say that you had:
a
|
b
/ \
c d
| |
and neither "a" nor "b" actually changed the file, but both "c" and "d"
did: in this case we have to leave "b" around just because otherwise there
would be no way to show the _relationship_, even if "b" itself doesn't
actually change the tree in any way what-so-ever.
It would make sense to make that further simplification if the
"--parents" flag wasn't present. In that case the user is
literally asking for a list of commits and is not interested in
the relationship between them.
This patch also fixes a real bug. Without this patch, the
"--parents --full-history" combination (which you'd get if you
do something like
gitk --full-history Makefile
or similar) will actually _drop_ merges where all children are identical.
That's wrong in the --full-history case, because it means that the graph
ends up missing lots of entries.
In the process, this also should make
git-rev-list --full-history Makefile
give just the _true_ list of all commits that changed Makefile (and
properly ignore merges that were identical in one parent), because now
we're not asking for "--parent", so we don't need the unnecessary merge
commits to keep the history together.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-rebase.sh')
0 files changed, 0 insertions, 0 deletions