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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.