Re: [RFC] Stgit - patch history / add extra parents
- From
- Catalin Marinas <catalin.marinas@gmail.com>
- Date
- Aug 30, 2005, 21:41 UTC
- Message-ID
- <1125438074.6961.20.camel@localhost.localdomain>
- In-Reply-To
- <Pine.LNX.4.63.0508231304130.23242@iabervon.org>
Back from holiday. Thanks to all who replied to this thread.
On Tue, 2005-08-23 at 14:05 -0400, Daniel Barkalow wrote:
Show 20 quoted lines
> 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.
Show 9 quoted lines
> 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.
-- Catalin