git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
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*

  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).