From: Petr Baudis <pasky@suse.cz>
To: Jan Nieuwenhuizen <janneke-list@xs4all.nl>
Cc: git@vger.kernel.org
Subject: Re: [ANNOUNCE] TopGit v0.3
Date: Fri, 12 Sep 2008 15:15:30 +0200 [thread overview]
Message-ID: <20080912131530.GZ10360@machine.or.cz> (raw)
In-Reply-To: <1221222433.29747.8.camel@heerbeest>
On Fri, Sep 12, 2008 at 02:27:13PM +0200, Jan Nieuwenhuizen wrote:
> On vr, 2008-09-12 at 13:00 +0200, Petr Baudis wrote:
>
> > But this is rewriting history, isn't it?
>
> No (that would be useless), see
>
> http://kerneltrap.org/mailarchive/git/2008/8/13/2925144 #first tg redepend idea
Huh. I can't see how that could ever work.
> $ git checkout -b P' P
> $ git rebase --onto B' B
> $ git checkout P
> $ git merge --no-ff --no-commit B' (*)
> $ git read-tree -u P'
> $ git commit
> $ git branch -D P'
The read-tree step is broken, you can't do that. The dependencies
content will be gone from your base, but not from the actual head -
what's the point of removing them at all?
Actually, tg patch will then show diff not only of your patch, but the
removed dependencies as well!
There's plenty of other problems with this approach as well. And I can't
see how readding a removed dependency would work at all either.
> I've just implemented the second idea
>
> http://kerneltrap.org/mailarchive/git/2008/8/15/2954214
>
> but haven't got any time to test it yet. Then there's also
>
> http://kerneltrap.org/mailarchive/git/2008/8/15/2952004
>
> to consider.
That's good point, indirect dependencies problem did not occur to me
before. That's troublesome...
I'm beginning to wonder if it is worth the trouble to support changing
dependencies in existing branches at all, except in the case the
dependency got merged to upstream (then we don't hit any of these
troubles). I'm stopping to see any way how to sanely support dependency
removal without history rewriting, since we rely on Git for our all
changes propagation.
> > Currently, I'm thinking that something like .topundeps (or !-prefixing
> > dependencies in .topdeps) is the only way to implement this...
>
> Yeah, i've been thinking that too. It would be nice if we could
> hack around that. It seems that the two redepend ideas get around
> it at the expense of creating the whole list of dependencies,
> which is much too expensive for my taste.
Actually, you would have to do this here as well for what we could call
"the evil Jonathan scenario":
> Make a topic branch t/foo depending on master.
> Change the dependency of t/foo to the older version maint.
> Make a new topic branch t/bar depending on t/foo and master.
When creating t/bar, you _need_ to look in t/foo dependencies to figure
out that you really do need the master stuff merged.
Even worse, these dependency removals act dominantly through merges.
Consider t/xyzzy and t/qux both depending on master. If you remove
master dependency from t/xyzzy and then merge them together, you'll lose
master from the result, even though t/qux needs it, because of the
dependency removal commit!
More and more worms turn up in the can.
--
Petr "Pasky" Baudis
The next generation of interesting software will be done
on the Macintosh, not the IBM PC. -- Bill Gates
next prev parent reply other threads:[~2008-09-12 13:16 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-09 23:10 [ANNOUNCE] TopGit v0.3 Petr Baudis
2008-09-10 8:18 ` Bert Wesarg
2008-09-12 11:01 ` Petr Baudis
2008-09-11 8:03 ` Jan Nieuwenhuizen
2008-09-12 11:00 ` Petr Baudis
2008-09-12 12:27 ` Jan Nieuwenhuizen
2008-09-12 13:15 ` Petr Baudis [this message]
2008-09-12 18:14 ` martin f krafft
2008-09-17 10:48 ` Jan Nieuwenhuizen
2008-09-21 14:24 ` Petr Baudis
2008-09-22 9:13 ` Jan Nieuwenhuizen
2008-09-22 15:27 ` Petr Baudis
2008-09-23 13:13 ` Jan Nieuwenhuizen
2008-09-23 13:27 ` Petr Baudis
2008-09-29 10:53 ` Jan Nieuwenhuizen
2008-10-03 10:00 ` Jan Holesovsky
[not found] ` <20080911054030.GA6602@glandium.org>
2008-09-12 10:58 ` Petr Baudis
2008-09-15 8:01 ` Michael Radziej
2008-09-17 10:11 ` Petr Baudis
2008-09-17 11:17 ` Michael Radziej
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=20080912131530.GZ10360@machine.or.cz \
--to=pasky@suse.cz \
--cc=git@vger.kernel.org \
--cc=janneke-list@xs4all.nl \
/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).