Re: [ANNOUNCE] pg - A patch porcelain for GIT

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Catalin Marinas
Date: Monday, February 13, 2006 - 7:40 am

Shawn Pearce <spearce@spearce.org> wrote:

Couldn't help replying to such a topic :-) (only that the ":" ending
of the above phrase might make people think that some features you
listed are not available in StGIT).

Without much testing, I think pg is a good tool but it is different
from StGIT in many ways. It mainly resembles the topic branches way of
working with the advantage of having them stacked on each-other. Each
patch seems to be equivalent to a topic branch where you can commit
changes. Rebasing a patch is equivalent to a merge in a branch with
the merge commit having a general description like "Refreshed patch
..." and two parents - the new base and the old top.

While I don't say the above is a bad thing, it is pretty different
from StGIT. With StGIT, the history of the tree only shows one commit
per patch with the patch description chosen by the user. If you edit
the description or modify the patch, the old patch or description is
dropped from the main branch (visible via HEAD) and you only get the
latest one. This clean history has many advantages when sending
patches upstream either via e-mail or by asking for a pull.


This is the case with StGIT as well. It doesn't usually require the
use of GIT commands directly.


There have been discussions to adding this to StGIT as well (and there
is a patch already from Chuck). It is a good thing to have but I'm
opposed to the idea of having the history accessible from the top of
the patch. Since the patch can be refreshed indefinitely, it would
make the main history (visible from HEAD) really ugly and also cause
problems with people pulling from a tree. I prefer to have a separate
command (like 'stg id patch/log') that gives access to the history.


That's missing indeed in StGIT but it will be available in the next
release. I didn't push this yet because I wasn't sure what to do with
the refresh history of a patch.


StGIT has been doing this from the beginning. You would need to run a
'stg clean' after a rebase (or push). I prefer to run this command
manually so that 'stg series -e' would show the empty patches and let
me decided what to do with them.


Might be possible but I haven't done any tests. There are some
optimisations in StGIT that make it pretty fast: (1) if the base of
the patch has not changed, it can fast-forward the pushed patches
which is O(1) and (2) StGIT first tries to use git-apply when pushing
a patch and use a three-way merge only if this fails (the operation
usually succeeds for most of the patches). There are some speed
problems with three-way merging if there are many file
removals/additions because the external merge tool is called for each
of them but the same problem exists for any other tool.

-- 
Catalin
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[ANNOUNCE] pg - A patch porcelain for GIT, Shawn Pearce, (Fri Feb 10, 12:59 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Greg KH, (Fri Feb 10, 1:41 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Shawn Pearce, (Fri Feb 10, 2:04 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Petr Baudis, (Fri Feb 10, 2:17 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Shawn Pearce, (Fri Feb 10, 2:38 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Petr Baudis, (Fri Feb 10, 2:47 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Junio C Hamano, (Fri Feb 10, 3:07 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Greg KH, (Fri Feb 10, 4:20 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Sam Vilain, (Sun Feb 12, 7:49 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Shawn Pearce, (Sun Feb 12, 8:29 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Sam Vilain, (Sun Feb 12, 9:40 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Shawn Pearce, (Sun Feb 12, 11:03 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Catalin Marinas, (Mon Feb 13, 7:40 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Petr Baudis, (Mon Feb 13, 2:00 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Shawn Pearce, (Mon Feb 13, 9:56 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Shawn Pearce, (Mon Feb 13, 11:14 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Catalin Marinas, (Tue Feb 14, 2:26 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Karl , (Tue Feb 14, 3:08 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Chuck Lever, (Tue Feb 14, 8:22 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Karl , (Tue Feb 14, 9:07 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Chuck Lever, (Tue Feb 14, 1:58 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Petr Baudis, (Tue Feb 14, 3:29 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Sam Vilain, (Tue Feb 14, 5:22 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Shawn Pearce, (Tue Feb 14, 5:35 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Petr Baudis, (Tue Feb 14, 6:14 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, J. Bruce Fields, (Tue Feb 14, 9:11 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Shawn Pearce, (Tue Feb 14, 11:54 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Karl , (Wed Feb 15, 3:11 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Andreas Ericsson, (Wed Feb 15, 3:42 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Karl , (Wed Feb 15, 4:25 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Karl , (Wed Feb 15, 4:27 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Catalin Marinas, (Wed Feb 15, 10:12 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Catalin Marinas, (Wed Feb 15, 10:20 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Catalin Marinas, (Wed Feb 15, 10:25 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Shawn Pearce, (Wed Feb 15, 10:55 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, J. Bruce Fields, (Wed Feb 15, 12:45 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Karl , (Thu Feb 16, 12:54 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Junio C Hamano, (Thu Feb 16, 3:24 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Catalin Marinas, (Thu Feb 16, 3:33 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Fernando J. Pereda, (Thu Feb 16, 3:42 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Junio C Hamano, (Thu Feb 16, 3:52 am)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Catalin Marinas, (Thu Feb 16, 4:10 am)
[PATCH 0/2] stg uncommit, Karl , (Thu Feb 16, 9:27 pm)
[PATCH 2/2] Add 'stg uncommit' command, Karl , (Thu Feb 16, 9:31 pm)
Re: [ANNOUNCE] pg - A patch porcelain for GIT, Catalin Marinas, (Fri Feb 17, 2:57 pm)
Re: [PATCH 2/2] Add 'stg uncommit' command, Catalin Marinas, (Sun Feb 19, 3:51 am)
Re: [PATCH 2/2] Add 'stg uncommit' command, Karl , (Sun Feb 19, 6:45 am)
Re: [PATCH 2/2] Add 'stg uncommit' command, Karl , (Sun Feb 19, 7:47 am)
Re: [PATCH 2/2] Add 'stg uncommit' command, Sam Vilain, (Sun Feb 19, 2:15 pm)
Re: [PATCH 2/2] Add 'stg uncommit' command, Catalin Marinas, (Mon Feb 20, 10:20 am)
Re: [PATCH 2/2] Add 'stg uncommit' command, Karl , (Mon Feb 20, 10:30 am)
Re: [PATCH 2/2] Add 'stg uncommit' command, Catalin Marinas, (Mon Feb 20, 3:49 pm)
Re: [PATCH 2/2] Add 'stg uncommit' command, Karl , (Tue Feb 21, 12:55 am)