[cvsnt] Re: CVS Use case

Matt Schuckmann matt at schuckmannacres.com
Mon Apr 25 00:51:57 BST 2005


Glen Starrett wrote:
> Matt Schuckmann wrote:
> 
>> "Glen Starrett" wrote in message
>>
>>> Tags will work for either.  If you really want to know the state of the
>>> project in which the developer was testing, then he should tag the
>>> entire project so that snapshot will be known.
>>
>>
>>
>> How would you make tags work? if you applied the tag across the entire
>> repository how would you make sure that your just tagging the changes
>> associated with the task at hand and not changes associated with other
>> fixes? Further more how would you checkout/create the new build without
>> writing a complicated script.
>>
>> CVSNT doesn't naturally support applying tags to just the changed 
>> files, it
>> can be done but isn't encouraged. Furthermore how would you check 
>> out/create
>> a build with one or more tasks?
> 
> Glen wrote: 
> You don't actually want to only check out the files changed on a branch 
> -- you want the full set the developer is working from.  That way you 
> can checkout that tag and build to see exactly what the developer was 
> testing against.
> 
> You could create a script that would tag just changed files on that 
> branch (e.g. rlog -r branch. | grep...), but I'm not sure that's what 
> you're really looking for.
> 
> 

No I don't want to only checkout the changed files but I do want to be 
able to identify what was changed with respect a task, yes if it's on a 
branch this is pretty easy but what if it's not on a branch? Further 
more I want to be able to bring the changes from a few "approved" tasks 
together to create a new Release Candidate build how would one go about 
doing that?
In my mind knowing the complete set files/revisions the developer used 
to develop and test a task is interesting only if there is a problem 
with integrating it and in the past this type problem has been rare for 
us so it's not really all that interesting.

>> The problem I ran into with this has to do what your talking about. If 
>> you
>> merge from the trunk to the branch any files changed on the trunk 
>> since the
>> branch point will create new revisions on the branch for those files (I'm
>> calling these files and revisions Merge Artifacts) thus making it appear
>> that these files are part of the task associated with that branch, 
>> which in
>> fact isn't the case. Further more when you go to merge the branch back 
>> into
>> the trunk all of these Merge Artifacts create Merge Artifacts on the 
>> trunk
>> thus making it appear that these files have changed between builds 
>> when in
>> fact they haven't.  If a branch sits in development for a long time it 
>> could
>> collect quite a few Merge Artifacts. Now I could probably write a 
>> script to
>> prevent this from happening or we could try to identify these cases and
>> ignore them but that doesn't seem right, how have other people addressed
>> this?
> 
> 
> I'm not sure what is causing that to happen, but if you can come up with 
> a repeatable case to reproduce this and report it then I'm certain that 
> Tony can get it fixed (He's always been very good about that sort of 
> thing).  The only time I would expect a "null delta" to be committed 
> with a merge operation is if there was a keyword change and then it 
> makes sense.
> 
> 

You know what I think your right, when I tested this before I forgot to 
include the -kk option. When I just retested it I included the -kk 
option and I didn't have the problem, well the duplicate revision does 
get created on the branch but not on the trunk cool.

Plus while I was testing it this time I noticed the -M option (floating 
branch) to the tag command, the floating branch is pretty much exactly 
what I was looking for.

I think that floating branches per task are pretty much going to do what 
I want. Unless any of you know of any peculiarities with floating branches?

Thanks
Matt S.



More information about the cvsnt mailing list