On Wed, Feb 15, 2006 at 01:54:11AM -0500, Shawn Pearce wrote:
"J. Bruce Fields" [off-list ref] wrote:
quoted
On Tue, Feb 14, 2006 at 07:35:10PM -0500, Shawn Pearce wrote:
quoted
Publishing a repository with a stg (or pg) patch series isn't
a problem; the problem is that no clients currently know how to
follow along with the remote repository's patch series. And I can't
think of a sensible behavior for doing so that isn't what git-core is
already doing today for non patch series type clients (as in don't go
backwards by popping but instead by pushing a negative delta). :-)
If you represent each patch as a branch, with each modification to the
patch a commit on the corresponding branch, and each "push" operation a
merge from the branch corresponding to the previous patch to a branch
corresponding to the new patch (isn't that what pg's trying to do?),
then it should be possible just to track the branch corresponding to the
top patch.
Yes that's pg in a nutshell.
But what happens when I pop back two patches (of three) and then push
down a different (fourth) patch? The tree just rewound backwards
and then forwards again in a different direction.
So you've got p1, p2, and p3 applied, each with its corresponding
branch--respectively, b1, b2, and b3. Popping two patches just checks
out b1, and doesn't affect the repository at all. If you push a new
patch, p4, you've just created a new branch, b4--you haven't touched the
existing branches. If you push p2 and p3 back on, you're just merging
the new changes from b4 into b2 and then merging the newly merged b2
into b3.
From the point of view of someone tracking b3, this is all fine. OK,
maybe it's excessively complicated, but pulls should work, because it
never sees history diseappear as it does when you represent each patch
with a commit on a single branch.
quoted
If you really want revision control on patches the simplest thing might
be just to run quilt or Andrew Morton's scripts on top of a git
repository--the documentation with Andrew's scripts recommends doing
that with CVS.
True but you also then run into problems about needing to know which
base each patch revision was applied against so you can reproduce
a source tree plus patch at a specific point in time.
Right, so you keep the tree under revision control as well as the
patches.
--b.