[prog] CVS travails, and strategies

Jenn Vesperman jenn at anthill.echidna.id.au
Thu Sep 18 23:11:18 EST 2003


On Thu, 2003-09-18 at 10:48, John Clarke wrote:

> That's not the way I read it.  This is what Michelle said:
> 
> > anyway. So I made a new head sandbox, and used the command cvs update -j
> > branchname -D some_time_ago, which merged my branch features with my
> 
> So she started with HEAD, then merged the branch from some_time_ago
> (i.e. the -D switch selected where on the branch to merge from) into
> her working copy.  Any changes made in the head since that date that
> weren't also made in the branch would most likely be lost.
> 
> I haven't ever used '-D' with '-j' when merging a branch, but I have
> merged branches which didn't include changes made in the head and seen
> similar results to those that Michelle described - changes lost from
> the head.

So have I, but only with two -js. 

I have seen nothing to indicate that -D with -j would have the effect
you describe, particularly since there's the -j revision[:date] syntax
for this situation (use -j branchrevision:some_time_ago).

So _my_ assumption is that cvs would treat the -D as a request to
convert the sandbox to a static sandbox with the files all as of the
date; and NOT to perceive the -D as a part of the merge parameters. -j
is for merge parameters.

> I don't think *anyone* knows exactly what CVS will do with every
> possible combination of parameters :-)  Most of my knowledge comes from
> it not doing what I expected and having to figure out how to get the
> result I really wanted.

Messy.

> > If you _know_ that what you described above is what would happen..
> 
> I'm as sure as I ever can be when talking about cvs and merging and
> branches :-)
> 
> > great. :) But can you explain what happend to Michelle's files?
> 
> Does what I said above make sense?

Abstractly? Yes, but it doesn't explain how she lost head data, and my
assumptions do.
Also, I have seen nothing in the documentation for CVS that implies that
cvs update -j foo -D quux would treat the -D quux as a merge parameter,
rather than a request to convert the sandbox to a static one. I'm
familiar only with -j foo, or -j foo -j quux, as merge parameters.



Jenn V.
-- 
    "Do you ever wonder if there's a whole section of geek culture 
        	you miss out on by being a geek?" - Dancer.
   My book 'Essential CVS': published by O'Reilly in June 2003.
jenn at anthill.echidna.id.au     http://anthill.echidna.id.au/~jenn/




More information about the Programming mailing list