Workflow idea

Kevin Smith yarcs at qualitycode.com
Mon Jun 13 11:32:02 UTC 2005


Matt Mackall wrote:
> On Sun, Jun 12, 2005 at 10:21:53AM -0400, Kevin Smith wrote:
> 
>>I have a proposal for a mechanism that would make it much easier for 
>>people to submit small, well-ordered patches, such as would be accepted 
>>by the kernel, git, or mercurial maintainers.
>>
>>Fundamentally, I propose that any repository allow a floating tag-like 
>>marker to indicate the point at which all changesets after it have not 
>>yet been finalized. Anyone doing an update from that repo would, by 
>>default, not receive anything after this marker.
> 
> 
> I think this is effectively identical to:
> 
> "hg push <x> ssh://publicserver/repo/"
> 
> where x is your marker.

Well, that's part of it. But given a local working repo that has a 
single patch, how am I supposed to split that into two patches? Based on 
mailing list traffic, this is a VERY common situation. Let's say I want 
to split the last patch in the log. It seems like today I would have to 
do something like:

1. Create another local working repo that contains all the patches up to 
but not including the last one.

2. Manually re-make half my source code changes in the new tree, and commit.

3. Manually re-make the other other half of my source changes in the new 
tree, and commit.

4. Undo the final patch in my working directory (which would be unsafe 
if the original monolithic patch had been pushed or pulled anywhere else 
already).

5. Merge the cloned repo back into my working directory.

Under my proposal, it would be possible to make that change in-place, 
safely. A tool coould pretend to do the changes in-place while actually 
creating temp repos, but I don't think it could be safe without the 
feature I proposed.

Kevin



More information about the Mercurial mailing list