All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Couder <chriscool@tuxfamily.org>
To: David Reitter <david.reitter@gmail.com>
Cc: git@vger.kernel.org, Christian MICHON <christian.michon@gmail.com>
Subject: Re: git-log - hide parent (was: merging two equivalent branches)
Date: Fri, 8 Jan 2010 06:00:25 +0100	[thread overview]
Message-ID: <201001080600.26088.chriscool@tuxfamily.org> (raw)
In-Reply-To: <DF05F91F-CBFD-458A-A99F-79E98ACA5146@gmail.com>

On jeudi 07 janvier 2010, David Reitter wrote:
> On Jan 7, 2010, at 1:22 PM, Christian MICHON wrote:
> > I recall asking a similar question in 2008, and the answer was to look
> > at "git graft" and use "git filter-branch" to recreate history.
>
> Thanks, I've tried that and I recall that filter-branch wasn't willing to
> rewrite just the recent history - at least in started going over all 100k
> revisions at a very slow pace.
>
> I'm still unsure how, after the filter-branch, I would have some ancestor
> from the B series so that future pulls from the remote work, while having
> an ancestor from A, to make sure I can continue merging into C.  If
> history is rewritten, I'll get new revisions and lose ancestors. I'm
> beginning to thing that the cutting and pasting I'd like is conceptually
> impossible.
>
> So what one would need is to specify a "silent parent" for a revision
> that is relevant w.r.t. future three-way merges, but indicates that the
> history behind the silent parent is irrelevant and shouldn't be shown in
> a git-log.  The runaway parent would be guaranteed to _not_ contribute
> any content to the tree of the child revision, as is the case with a
> "merge ours".

What you could perhaps do with "git replace" or a graft is to change the 
merge commit so that it has only one parent instead of 2.

> This could be implemented as a way to mark a parent as silent (checked by
> git-log at least), but one could also allow for an empty commit that,
> while having a normal parent, clears out the tree.
>
> Let me know if this idea is completely crazy. --

This looks like the right thing to do using "git replace" or grafts.

Best regards,
Christian. 

  reply	other threads:[~2010-01-08  4:57 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-07 18:17 merging two equivalent branches David Reitter
2010-01-07 18:22 ` Christian MICHON
2010-01-07 21:16   ` git-log - hide parent (was: merging two equivalent branches) David Reitter
2010-01-08  5:00     ` Christian Couder [this message]
2010-01-12 16:59       ` David Reitter
2010-01-08 19:50     ` Avery Pennarun

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=201001080600.26088.chriscool@tuxfamily.org \
    --to=chriscool@tuxfamily.org \
    --cc=christian.michon@gmail.com \
    --cc=david.reitter@gmail.com \
    --cc=git@vger.kernel.org \
    /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.