{"thread":{"id":"12792","subject":"Path filtered history not maximally simplified","startedAt":"2008-03-21T12:46:48Z","lastAt":"2008-03-22T19:52:25Z","messageCount":3,"participants":["Johannes Sixt","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"72589","messageId":"47E3AE38.5060405@viscovery.net","threadId":"12792","inReplyTo":null,"subject":"Path filtered history not maximally simplified","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2008-03-21T12:46:48Z","receivedAt":"2008-03-21T12:46:48Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"While investigating a path-filtered history in gitk, I noticed a layout\nlike this:\n\n     --A---------M--4--N\n        \\       /     /\n         1--2--3-----5\n\nThere are no commits displayed on the upper line between A and M.\nShouldn't this have been simplified to:\n\n                  4--N\n                 /  /\n     --A--1--2--3--5\n\nThe gitk command used is simply:\n\n     $ gitk some/file\n\nand if I run\n\n     $ git log some/file\n\nthen M is reported with two parents (so it's not gitk's fault). The above\nis just the most recent part of the history; there's a lot more older\nhistory, and it is non-trivial with numerous merges (in the complete\nhistory). In particular, there _are_ commits on the upper branch between A\nand M, but none of them touches some/file.\n\nDo I need to adjust my expectations or does this look like a bug?\n\n-- Hannes\n\nPS: This is with 1.5.5.rc0.21.g740fd.\n"},{"id":"72592","messageId":"47E3BCD5.2070405@viscovery.net","threadId":"12792","inReplyTo":"47E3AE38.5060405@viscovery.net","subject":"Re: Path filtered history not maximally simplified","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2008-03-21T13:49:09Z","receivedAt":"2008-03-21T13:49:09Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Johannes Sixt schrieb:\n> While investigating a path-filtered history in gitk, I noticed a layout\n> like this:\n> \n>      --A---------M--4--N\n>         \\       /     /\n>          1--2--3-----5\n> \n> There are no commits displayed on the upper line between A and M.\n> Shouldn't this have been simplified to:\n> \n>                   4--N\n>                  /  /\n>      --A--1--2--3--5\n\nOk, it turns out that M is an evil merge, i.e. the file in M is different\nfrom both A and 3, but in such a way that it does not show up in a diff\n--cc that has only 3 lines of context. In particular, one of the commits\n1, 2, 3 added a single line at an isolated spot in the file, and I undid\nthat addition in the merge commit M.\n\nSorry for the noise.\n\n-- Hannes\n\n(So, *that's* why they are called \"evil\"!)\n"},{"id":"72699","messageId":"7vve3eh6yu.fsf@gitster.siamese.dyndns.org","threadId":"12792","inReplyTo":"47E3BCD5.2070405@viscovery.net","subject":"Re: Path filtered history not maximally simplified","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-03-22T19:52:25Z","receivedAt":"2008-03-22T19:52:25Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Sixt <j.sixt@viscovery.net> writes:\n\n> Ok, it turns out that M is an evil merge, i.e. the file in M is different\n> from both A and 3, but in such a way that it does not show up in a diff\n> --cc that has only 3 lines of context. In particular, one of the commits\n> 1, 2, 3 added a single line at an isolated spot in the file, and I undid\n> that addition in the merge commit M.\n>\n> Sorry for the noise.\n>\n> -- Hannes\n>\n> (So, *that's* why they are called \"evil\"!)\n\nJust a nomenclature, but independent changes merged trivially cleanly are\n\"normal\" merges, not evil.\n\nEvil merges are the ones that actually change the result in such a way\nthat new lines in --cc output do not have _any_ counterpart in any of the\nparents.\n"}]}