git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Daniel Barkalow <barkalow@iabervon.org>
To: Catalin Marinas <catalin.marinas@gmail.com>
Cc: Jan Veldeman <jan.veldeman@gmail.com>, git@vger.kernel.org
Subject: Re: [RFC] Stgit - patch history / add extra parents
Date: Wed, 31 Aug 2005 13:17:26 -0400 (EDT)	[thread overview]
Message-ID: <Pine.LNX.4.63.0508311306540.23242@iabervon.org> (raw)
In-Reply-To: <1125438074.6961.20.camel@localhost.localdomain>

On Tue, 30 Aug 2005, Catalin Marinas wrote:

> Back from holiday. Thanks to all who replied to this thread.
> 
> On Tue, 2005-08-23 at 14:05 -0400, Daniel Barkalow wrote:
> > Having a useful diff isn't really a requirement for a parent; the diff in
> > the case of a merge is going to be the total of everything that happened
> > elsewhere. The point is to be able to reach some commits between which
> > there are interesting diffs.
> > 
> > This also depends on how exactly freeze is used; if you use it before
> > commiting a modification to the patch without rebasing, you get:
> > 
> > old-top -> new-top
> >       ^    ^
> >        \  /
> >       bottom
> > 
> > bottom to old-top is the old patch
> > bottom to new-top is the new patch
> > old-top to new-top is the change to the patch
> > 
> > Then you want to keep new-top as a parent for rebasings until one of these
> > is frozen. These links are not interesting to look at, but preserve the
> > path to the old-top:new-top change, which is interesting.
> 
> This was my initial StGIT implementation (up to version 0.3), only that
> there was no freeze command. Since I want an StGIT tree to be clean to
> the outside world, I wouldn't keep multiple parents for the visible top
> of a patch.
> 
> As I understand from Junio's and Linus' e-mails (on the 23rd of August),
> there might be problems with merging the HEAD of an StGIT-managed tree
> if the above method is accessible via HEAD.

Right, you'd want a separate head which is what you ask people to merge; 
the rest is only visible to people who are working on preparing the patch. 
But you could keep both sets of stuff (sharing tree objects but not 
commits).

> > Ignoring the links to the corresponding bottoms, the development therefore
> > looks like:
> > 
> > local1 -> local2 -> merge -> local3 -> merge
> > ^                   ^                  ^
> > mainline---->-->--------->------>-->----->
> > 
> > And this is how development is normally supposed to look. The trick is to
> > only include a minimal number of merges.
> 
> A merge occurs every time a patch is rebased. Anyway, having the bottoms
> in the graph (which is the main idea of StGIT) together with the old-top
> (or frozen state) parents make the graph pretty complicated.

It should be possible to drop merges such that there's only one between 
any pair of local changes. That is, if you rebase at the end of the line 
above, it would get as parents local3 and the new bottom, not the last 
merge and the new bottom.

The mainline changes only come in through the bottoms, so higher levels 
should look the same, but with the lower levels in the place of mainline.

	-Daniel
*This .sig left intentionally blank*

  parent reply	other threads:[~2005-08-31 17:13 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-18 19:57 [RFC] Stgit - patch history / add extra parents Jan Veldeman
2005-08-19  9:53 ` Catalin Marinas
2005-08-19 18:27   ` Jan Veldeman
2005-08-19 22:15     ` Catalin Marinas
2005-08-19 19:48   ` Jan Veldeman
2005-08-20 21:12     ` Catalin Marinas
2005-08-21  9:40       ` Jan Veldeman
2005-08-22 22:10         ` Daniel Barkalow
2005-08-23 16:55           ` Catalin Marinas
2005-08-23 18:05             ` Daniel Barkalow
2005-08-23 21:23               ` Jan Veldeman
2005-08-23 22:23                 ` Daniel Barkalow
2005-08-25  7:09                   ` Jan Veldeman
2005-08-25 19:41                     ` Daniel Barkalow
2005-08-31  9:27                   ` Catalin Marinas
2005-08-31  9:12                 ` Catalin Marinas
2005-08-30 21:41               ` Catalin Marinas
2005-08-31  8:59                 ` Jan Veldeman
2005-08-31 17:17                 ` Daniel Barkalow [this message]
2005-08-24  0:23             ` Junio C Hamano
2005-08-24  2:26               ` Linus Torvalds
2005-08-23  1:06         ` Junio C Hamano

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.63.0508311306540.23242@iabervon.org \
    --to=barkalow@iabervon.org \
    --cc=catalin.marinas@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=jan.veldeman@gmail.com \
    /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).