git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Path filtered history not maximally simplified
@ 2008-03-21 12:46 Johannes Sixt
  2008-03-21 13:49 ` Johannes Sixt
  0 siblings, 1 reply; 3+ messages in thread
From: Johannes Sixt @ 2008-03-21 12:46 UTC (permalink / raw)
  To: Git Mailing List

While investigating a path-filtered history in gitk, I noticed a layout
like this:

     --A---------M--4--N
        \       /     /
         1--2--3-----5

There are no commits displayed on the upper line between A and M.
Shouldn't this have been simplified to:

                  4--N
                 /  /
     --A--1--2--3--5

The gitk command used is simply:

     $ gitk some/file

and if I run

     $ git log some/file

then M is reported with two parents (so it's not gitk's fault). The above
is just the most recent part of the history; there's a lot more older
history, and it is non-trivial with numerous merges (in the complete
history). In particular, there _are_ commits on the upper branch between A
and M, but none of them touches some/file.

Do I need to adjust my expectations or does this look like a bug?

-- Hannes

PS: This is with 1.5.5.rc0.21.g740fd.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Path filtered history not maximally simplified
  2008-03-21 12:46 Path filtered history not maximally simplified Johannes Sixt
@ 2008-03-21 13:49 ` Johannes Sixt
  2008-03-22 19:52   ` Junio C Hamano
  0 siblings, 1 reply; 3+ messages in thread
From: Johannes Sixt @ 2008-03-21 13:49 UTC (permalink / raw)
  To: Git Mailing List

Johannes Sixt schrieb:
> While investigating a path-filtered history in gitk, I noticed a layout
> like this:
> 
>      --A---------M--4--N
>         \       /     /
>          1--2--3-----5
> 
> There are no commits displayed on the upper line between A and M.
> Shouldn't this have been simplified to:
> 
>                   4--N
>                  /  /
>      --A--1--2--3--5

Ok, it turns out that M is an evil merge, i.e. the file in M is different
from both A and 3, but in such a way that it does not show up in a diff
--cc that has only 3 lines of context. In particular, one of the commits
1, 2, 3 added a single line at an isolated spot in the file, and I undid
that addition in the merge commit M.

Sorry for the noise.

-- Hannes

(So, *that's* why they are called "evil"!)

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Path filtered history not maximally simplified
  2008-03-21 13:49 ` Johannes Sixt
@ 2008-03-22 19:52   ` Junio C Hamano
  0 siblings, 0 replies; 3+ messages in thread
From: Junio C Hamano @ 2008-03-22 19:52 UTC (permalink / raw)
  To: Johannes Sixt; +Cc: Git Mailing List

Johannes Sixt <j.sixt@viscovery.net> writes:

> Ok, it turns out that M is an evil merge, i.e. the file in M is different
> from both A and 3, but in such a way that it does not show up in a diff
> --cc that has only 3 lines of context. In particular, one of the commits
> 1, 2, 3 added a single line at an isolated spot in the file, and I undid
> that addition in the merge commit M.
>
> Sorry for the noise.
>
> -- Hannes
>
> (So, *that's* why they are called "evil"!)

Just a nomenclature, but independent changes merged trivially cleanly are
"normal" merges, not evil.

Evil merges are the ones that actually change the result in such a way
that new lines in --cc output do not have _any_ counterpart in any of the
parents.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-03-22 19:53 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-21 12:46 Path filtered history not maximally simplified Johannes Sixt
2008-03-21 13:49 ` Johannes Sixt
2008-03-22 19:52   ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).