From: Thomas Rast <trast@student.ethz.ch>
To: Junio C Hamano <gitster@pobox.com>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>,
git@vger.kernel.org, Jan Wielemaker <J.Wielemaker@uva.nl>
Subject: Re: [RFH] filter-branch: ancestor detection weirdness
Date: Sat, 9 Aug 2008 11:25:42 +0200 [thread overview]
Message-ID: <200808091125.48897.trast@student.ethz.ch> (raw)
In-Reply-To: <7viqub9dzi.fsf@gitster.siamese.dyndns.org>
[-- Attachment #1: Type: text/plain, Size: 2394 bytes --]
Junio C Hamano wrote:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> >> (a) Both A and D bring the same subdirectory contents. 'rev-list
> >> --parents -- $subdir' drops one side of the merge during pruning. It
> >> does not look past the merge to see whether the contents were
> >> arrived at via different changesets. Thus the history becomes
> >>
> >> A' -- C'
> >>
> >> D'
> >>
> >> and even that only if D was reachable by a different ref,
> >> otherwise D' is simply dropped.
> >
> > And this is what I call wrong. Simply dropping one side of the equation
> > is not what I call "sane".
> >
> > If you drop information, you are disagreeing with "content is king".
I wonder why I have to be the devil's advocate here.
Let me emphasise: _This is how filter-branch currently works._ It is
not some obscure feature coming with my patch. The user _asks_ for
this simplification by using --subdirectory-filter. It is also
_happening long before branch rewriting_, and we are discussing a
patch to said branch rewriting.
Junio has a point:
> I think the aggressive merge simplification that gives "one simplest
> explanation for the contents of the paths specified" is a wrong mode of
> operation to use when you are filtering branches. It might be a good
> thing to support as an option, but I agree with you that it should not be
> the default.
>
> Perhaps --full-history is needed to the rev-list call (and the recent
But --full-history cannot solve this problem; it would entirely defeat
the point of --subdirectory-filter. (I haven't looked into what
--simplify-merges does yet.)
The only thing my patch changes is the behaviour with branches _that
the user asked us to rewrite to the subdirectory history_ but that
don't point to a precise commit that survived the simplification. Why
would rewriting the branch pointer approriately be bad when the user
specifically asked for it?
And your _existing_ branch rewriting code had the same thing in mind:
move back to an ancestor that roughly fits the ticket. You just
missed the problem with 'rev-list ^master ancestor' that has a high
chance to break the mechanism with --all.
And broke in Jan's case, which is why we're having this discussion,
remember?
- Thomas
--
Thomas Rast
trast@student.ethz.ch
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 197 bytes --]
next prev parent reply other threads:[~2008-08-09 9:26 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-06 13:39 git filter-branch --subdirectory-filter, still a mistery Jan Wielemaker
2008-08-07 7:13 ` Jan Wielemaker
2008-08-07 7:50 ` Thomas Rast
2008-08-07 10:14 ` Jan Wielemaker
2008-08-07 23:48 ` Thomas Rast
2008-08-07 23:50 ` [PATCH] filter-branch: be more helpful when an annotated tag changes Thomas Rast
2008-08-08 20:10 ` [TOY PATCH] filter-branch: add option --delete-unchanged Thomas Rast
2008-08-09 0:35 ` Johannes Schindelin
2008-08-11 10:43 ` Jan Wielemaker
2008-09-14 16:29 ` Felipe Contreras
2008-08-07 23:54 ` [RFH] filter-branch: ancestor detection weirdness Thomas Rast
2008-08-08 11:42 ` Johannes Schindelin
2008-08-08 14:14 ` Thomas Rast
2008-08-08 14:16 ` [PATCH] filter-branch: fix ancestor discovery for --subdirectory-filter Thomas Rast
2008-08-08 14:39 ` [RFH] filter-branch: ancestor detection weirdness Johannes Schindelin
2008-08-08 18:37 ` Thomas Rast
2008-08-08 18:39 ` [PATCH v2] filter-branch: fix ref rewriting with --subdirectory-filter Thomas Rast
2008-08-09 0:16 ` [RFH] filter-branch: ancestor detection weirdness Johannes Schindelin
2008-08-09 1:25 ` Junio C Hamano
2008-08-09 9:25 ` Thomas Rast [this message]
2008-08-09 9:35 ` Thomas Rast
2008-08-10 14:02 ` [PATCH] filter-branch: use --simplify-merges Thomas Rast
2008-08-12 1:54 ` Junio C Hamano
2008-08-12 2:13 ` Junio C Hamano
2008-08-12 5:47 ` Thomas Rast
2008-08-12 6:59 ` Junio C Hamano
2008-08-12 8:45 ` [PATCH 0/3] filter-branch --subdirectory-filter improvements Thomas Rast
2008-08-12 12:11 ` Jan Wielemaker
2008-08-12 8:45 ` [PATCH 1/3] filter-branch: Extend test to show rewriting bug Thomas Rast
2008-08-12 8:45 ` [PATCH 2/3] filter-branch: fix ref rewriting with --subdirectory-filter Thomas Rast
2008-08-12 8:45 ` [PATCH 3/3] filter-branch: use --simplify-merges Thomas Rast
2008-08-12 8:18 ` [RFH] filter-branch: ancestor detection weirdness Petr Baudis
2008-08-12 18:33 ` Junio C Hamano
2008-08-09 10:00 ` Thomas Rast
2008-08-12 21:33 ` Junio C Hamano
2008-08-12 22:15 ` Thomas Rast
2008-08-08 7:44 ` git filter-branch --subdirectory-filter, still a mistery Jan Wielemaker
2008-08-08 11:25 ` Jan Wielemaker
2008-08-07 14:04 ` [PATCH] Documentation: filter-branch: document how to filter all refs Thomas Rast
2008-08-07 14:16 ` [PATCH v2] " Thomas Rast
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=200808091125.48897.trast@student.ethz.ch \
--to=trast@student.ethz.ch \
--cc=J.Wielemaker@uva.nl \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/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.