[cvsnt] Feature request: Commitable tags

Tuomas Huhtanen tuomas.huhtanen at vertex.fi
Tue Apr 29 07:30:17 BST 2003


Tony Hoyle wrote:
> On Mon, 28 Apr 2003 16:46:27 +0100, "Max Bowsher" <maxb at ukf.net> wrote:
> 
> 
>>Tony Hoyle wrote:
>>
>>>On Mon, 28 Apr 2003 15:47:10 +0300, Tuomas Huhtanen
>>><tuomas.huhtanen at vertex.fi> wrote:
>>>
>>>
>>>>But as Tony suggested, the -f might work for you in this case. The only
>>>>thing is that once you have checked it out with some branch, it stays
>>>>there unless you take a clean checkout again. So if for example you have
>>>> created a branched document, check it out, then later modify the main
>>>>document so that there is no need for the branch doc, the -f scheme
>>>>would not work. The writable tag would recover that situation just fine.
>>>
>>>No it wouldn't - once you've branched you can't 'un branch' because that
>>>would be changing history.
>>
>>You can't unbranch, but you can set the writable tag back to the parent
>>branch.
>>
> 
> That's different - it's just moving a tag.. you can do that already.  That's
> not what is being said above - it's saying if you make a document that is the
> same as the root the branch tag magically disappears, which isn't practical
> (it's also pointless - it saves you zero effort and is very counterintuitive).
> 
> Basically, writable tags are branches, and I've yet to see any justification
> for trying to confuse the issue by changing the definition of 'tag' to mean
> 'branch'.  They're for separate things, and should be kept so.

Actually Max got it just right. You would just set the writable tag to 
point to the branch you like. So that part is just the traditional 
moving a tag.

I didn't say anyting about magically appearing or disappearing tags. And 
remember, I'm talking about tags, not branches. The _only_ thing I'm 
talking about here is to be able to commit with a certain special sticky 
tag. I could do that today for example with python macro in winCVS. In 
that case, the procedure would be something like:

0) You have checked out files with some sticky tag (e.g. ct_R1), and are 
about to commit the changes made to the files.

1) Extract the revision number of file to be commited. (e.g 1.1.2.2)
2) Extract the branch number from the revision number (e.g 1.1.2)
3) Force commit to the branch number (1.1.2)
4) Move the tag to the new revision (ct_R1->1.1.2.3)
5) Update the local copy to the moved tag

This would do it, but not atomically of course. The other thing is that 
then I'm bound to specific client of cvs. And third, that would be quite 
slow.

Tuomas



More information about the cvsnt mailing list