Git development
 help / color / mirror / Atom feed
From: Jan Nieuwenhuizen <janneke-list@xs4all.nl>
To: Jonathan Nieder <jrnieder@uchicago.edu>
Cc: git <git@vger.kernel.org>, Jan Holesovsky <kendy@suse.cz>
Subject: Re: [TopGit PATCH] tg-create.sh: Introduce --add option to add a dependency.
Date: Mon, 18 Aug 2008 11:18:23 +0200	[thread overview]
Message-ID: <1219051103.8816.29.camel@heerbeest> (raw)
In-Reply-To: <Pine.GSO.4.62.0808150913180.9955@harper.uchicago.edu>

On vr, 2008-08-15 at 10:25 -0500, Jonathan Nieder wrote:

Hi,

> 1) How should the tree of B' be determined?
> 2) What should the parents of B' be?
> 3) How should the tree of P' be determined from P, B, and B'?
> 4) What should the parents of P' be?

> So all this trouble is there when we try to come up with the topic 
> base
> for a new topic, as long as it is possible /in some way/ to weaken
> dependencies.

Which I have just been avoiding...  Thanks, that clarifies things for
me.

> or, if we make B a parent of B',
> 
> 	$ git checkout P
> 	$ git merge B'
> 
> which might be preferrable.

> I tried this out, and it seems here I was worrying needlessly.

Ok, good to know.

> > Ouch, I'm feeling so git-unitiated here; what is read-tree doing 
> > differently from merge?  Isn't here a -m missing?
> 
> Why?  We want to just blindly take the tree from P' and using it.  The
> point is to make setting the contents of the new branch tip and its
> parentage separate decisions.

Hmm, for one, "git read-tree -u SHA" does not work for me.

> > Removing or [re-]adding one dependency using this rebase-by-merging 
> > approch would take ~7 minutes on my machine.
> 
> Can you be more precise here?  What user action causes topgit to do
> so much work (adding one dependency to what topic)?  What other
> approach avoids all this work?

Good question, I was thinking a bit careless here.  Creating the master
topgit branch, which depends on ~300 single-topic topgit branches, like
so

    tg create t/master $(git branch | grep -vE '/|patched|pristine')

takes ~7 minutes; which does not really surprise me.

I realise now that if we make a strict *adding* of dependencies a
special case, we can just checkout our old B, and add (merge) the
additional dependencies on top of that.

However, when *removing* a dependency, I see no easy way to do that cheaply.

Greetings,
Janneke

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond - The music typesetter
http://www.xs4all.nl/~jantien       | http://www.lilypond.org

      reply	other threads:[~2008-08-18 11:11 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-13 14:25 [TopGit PATCH] tg-create.sh: Introduce --add option to add a dependency Jan Nieuwenhuizen
2008-08-13 16:20 ` Jonathan Nieder
2008-08-15  8:10   ` Jan Nieuwenhuizen
2008-08-15 15:25     ` Jonathan Nieder
2008-08-18  9:18       ` Jan Nieuwenhuizen [this message]

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=1219051103.8816.29.camel@heerbeest \
    --to=janneke-list@xs4all.nl \
    --cc=git@vger.kernel.org \
    --cc=jrnieder@uchicago.edu \
    --cc=kendy@suse.cz \
    /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