From: Jonathan Nieder <jrnieder@gmail.com>
To: Kevin Bracey <kevin@bracey.fi>
Cc: Junio C Hamano <gitster@pobox.com>, git@vger.kernel.org
Subject: Re: breakage in revision traversal with pathspec
Date: Wed, 11 Sep 2013 11:24:44 -0700 [thread overview]
Message-ID: <20130911182444.GD4326@google.com> (raw)
In-Reply-To: <5230AD23.2050009@bracey.fi>
Kevin Bracey wrote:
> On reflection I'm not sure what we should for the "simple history"
> view of v1.8.3.1..v1.8.4. We're not rewriting parents, so we don't
> get a chance to reconsider the merge as being zero-parent, and we do
> have this little section of graph to traverse at the bottom:
>
> 1.8.3
> o----x----x----x----x---x--- (x = included, o = excluded, *=!treesame)
> /
> /*
> o--x--x--x--x
[...]
> 1) if identical to any on-graph parent, follow that one, and rewrite
> the merge as a non-merge. We currently do not follow to an identical
> off-graph parent. This long-standing comment in try_to_simplify_commit
> applies: "Even if a merge with an uninteresting side branch brought
> the entire change we are interested in, we do not want to lose the
> other branches of this merge, so we just keep going."
[...]
> 2) If rule 1 doesn't activate, and it remains as a merge, hide it if
> treesame to all on-graph parents. Previously this rule was "hide if
> treesame to any parent", and so that would have hidden the merge.
>
> Now, when I changed rule 2, I did not think this would affect the
> default log. See my commit message:
[...]
> I currently feel instinctively more disposed to dropping the older
> "don't follow off-graph identical parents" rule. Let the default
> history go straight to v1.8.3 even though it goes off the graph,
> stopping us traversing the topic branch.
Thanks for this analysis. Interesting.
The rule (1) comes from v1.3.0-rc1~13^2~6:
commit f3219fbbba32b5100430c17468524b776eb869d6
Author: Junio C Hamano <junkio@cox.net>
Date: Fri Mar 10 21:59:37 2006 -0800
try_to_simplify_commit(): do not skip inspecting tree change at boundary.
When git-rev-list (and git-log) collapsed ancestry chain to
commits that touch specified paths, we failed to inspect and
notice tree changes when we are about to hit uninteresting
parent. This resulted in "git rev-list since.. -- file" to
always show the child commit after the lower bound, even if it
does not touch the file. This commit fixes it.
Thanks for Catalin for reporting this.
See also:
461cf59f8924f174d7a0dcc3d77f576d93ed29a4
Signed-off-by: Junio C Hamano <junkio@cox.net>
I think you're right that dropping the "don't follow off-graph
treesame parents" rule would be a sensible change. The usual point of
the "follow the treesame parent" rule is to avoid drawing undue
attention to merges of ancient history where some of the parents are
side-branches with an old version of the files being tracked and did
not actually change those files. That rationale applies just as much
for a merge on top of an UNINTERESTING rev as any other merge.
Thanks,
Jonathan
next prev parent reply other threads:[~2013-09-11 18:24 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-10 17:19 breakage in revision traversal with pathspec Junio C Hamano
2013-09-10 21:27 ` Kevin Bracey
2013-09-10 22:23 ` Junio C Hamano
2013-09-11 17:49 ` Kevin Bracey
2013-09-11 18:24 ` Jonathan Nieder [this message]
2013-09-11 19:21 ` Junio C Hamano
2013-09-11 19:39 ` Kevin Bracey
2013-09-11 21:15 ` Junio C Hamano
2013-09-19 21:35 ` Junio C Hamano
2013-09-20 3:35 ` Jeff King
2013-09-20 4:58 ` Junio C Hamano
2013-09-20 5:11 ` Jeff King
2013-09-20 17:51 ` Junio C Hamano
2013-09-25 9:12 ` Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130911182444.GD4326@google.com \
--to=jrnieder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=kevin@bracey.fi \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).