From: Daniel Barkalow <barkalow@iabervon.org>
To: Theodore Tso <tytso@mit.edu>
Cc: "Shawn O. Pearce" <spearce@spearce.org>,
Junio C Hamano <gitster@pobox.com>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
git@vger.kernel.org
Subject: Re: What's cooking in git/spearce.git (topics)
Date: Tue, 23 Oct 2007 13:44:36 -0400 (EDT) [thread overview]
Message-ID: <Pine.LNX.4.64.0710231131320.32497@iabervon.org> (raw)
In-Reply-To: <20071023120338.GG27132@thunk.org>
I keep thinking that there should be a better mechanism to use for "pu"
than a branch. Normally what you see in "pu" is a sequential merge of
"next" and a number of topic branches, where the series of merges is
either entirely uninteresting or only interesting in a schematic sense
(that is, it is interesting what topics appear, and in what order, but the
snapshot of each topic's head when it got merged isn't interesting).
That is, the work which "pu" consists of, and therefore the history is a
sequence of steps, each of which is one or more of: "add this topic",
"update this topic", "remove this topic", "update to a new next". And we
don't keep a record of this history, but it's not what's discarded by
rewinding anyway.
I think that, if we actually care about this sort of thing, we'd want to
make "pu" a series of commits, each with the previous "pu" as the sole
parent, with a series object given in a new header. The series object
would start with a "next" commit, and then list the topics merged by name
and head-as-merged. Of course, the "pu" commits would contain the
resulting tree as normal, so that people without a git that understands
this would see "pu" as consisting of a straight line of commits, each of
which simply shows the net effect of the changes. Or something like that.
I suppose "pu" could also be represented as a superproject where each
subproject is "next" or a topic branch, if we really want to avoid
introducing new objects, but that seems unweildy somehow.
Is this worth doing? It might be; I bet it would make debugging -mm a
whole lot nicer. (First bisect through -mm to find the action Andrew took
that accepted the breakage, then bisect the history within that action.) I
bet the status quo is a real pain when the feature that broke is only in
-mm and later in Andrew's list than the tree whose change triggered the
failure (i.e., -mm4 works; -mm5 doesn't work, and everything in -mm5 is
either broken or untestable).
And, of course, "origin/pu[db/builtin-fetch]" would be an easy thing to
build into git, and it could even generate extra magic, where it knows
what the topic was last rebased on, so git could lead people through
"rebase everything in a pu collection on the new base for the collection"
and "make my local topic branch agree with my topic branch as present in
origin/pu".
-Daniel
*This .sig left intentionally blank*
next prev parent reply other threads:[~2007-10-23 17:44 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-16 6:04 What's cooking in git/spearce.git (topics) Shawn O. Pearce
2007-10-16 11:16 ` Johannes Schindelin
2007-10-16 19:57 ` Theodore Tso
2007-10-17 3:20 ` Shawn O. Pearce
2007-10-23 1:15 ` Junio C Hamano
2007-10-23 1:21 ` Theodore Tso
2007-10-23 1:29 ` Junio C Hamano
2007-10-23 2:00 ` Theodore Tso
2007-10-23 4:05 ` Shawn O. Pearce
2007-10-23 4:33 ` Theodore Tso
2007-10-23 4:46 ` Shawn O. Pearce
2007-10-23 4:56 ` Theodore Tso
2007-10-23 5:07 ` Shawn O. Pearce
2007-10-23 5:30 ` Theodore Tso
2007-10-23 5:42 ` Shawn O. Pearce
2007-10-23 12:03 ` Theodore Tso
2007-10-23 17:44 ` Daniel Barkalow [this message]
2007-10-23 19:00 ` Junio C Hamano
2007-10-24 0:12 ` Theodore Tso
2007-10-23 4:27 ` Shawn O. Pearce
2007-10-16 23:40 ` Shawn O. Pearce
-- strict thread matches above, loose matches on Subject: below --
2007-10-22 6:32 Shawn O. Pearce
2007-10-22 6:59 ` Jeff King
2007-10-22 7:16 ` Jeff King
2007-10-23 2:32 ` Linus Torvalds
2007-10-23 3:48 ` Jeff King
2007-10-22 7:24 ` Pierre Habouzit
2007-10-22 15:27 ` Steffen Prohaska
2007-10-23 1:26 ` Junio C Hamano
2007-10-23 3:34 ` Shawn O. Pearce
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.LNX.4.64.0710231131320.32497@iabervon.org \
--to=barkalow@iabervon.org \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=spearce@spearce.org \
--cc=tytso@mit.edu \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).