OK, I've significantly narrowed down the problem from my original post (which, I now realize, had much irrelevant stuff). I also provide a script below that reproduces the problem if anyone wants to play around with this. All you need to do to it is edit the value of TESTCVSROOT, and it's ready to go. I thought that my confusion had to do with my incomplete understanding of CVS, but now I think that what I'm seeing below is a bona fide CVS bug. SUMMARY: I import some files, and successfully check out the vendor branch; then I repeat the process, starting from scratch, and modifying one file before the import step; when I attempt to check out the vendor branch, as before, I get an error; I've added comments and blank lines, for clarity, to the transcript below. ### Initialize % TESTCVSROOT=/home/jones/cvs_test % rm -rf $TESTCVSROOT % cvs -d $TESTCVSROOT init % rm -rf Foo && mkdir Foo && cd Foo % echo -n 0 > bar % cvs -d $TESTCVSROOT import -m '' Foo vendor_1 v1 N Foo/bar No conflicts created by this import % cvs -d $TESTCVSROOT checkout -d . -r vendor_1 Foo cvs checkout: Updating . U bar ### Everything OK so far % cd .. ### Repeat the whole process, with a different ### bar file, and a different release tag during ### the import step % rm -rf Foo && mkdir Foo && cd Foo % echo -n 1 > bar % cvs -d $TESTCVSROOT import -m '' Foo vendor_1 v2 U Foo/bar No conflicts created by this import % cvs -d $TESTCVSROOT checkout -d . -r vendor_1 Foo cvs checkout: Updating . cvs checkout: move away bar; it is in the way C bar ### Not OK this time; bar has a conflict (???) ### Rename bar so that it is cvsignore'd, and ### attempt checkout again % mv bar bar.orig % cvs -d $TESTCVSROOT checkout -d . -r vendor_1 Foo cvs checkout: Updating . U bar ### Everything OK this time ### What was the conflict all about? % diff bar bar.orig && echo $? 0 None of this makes sense to me. I want to understand why it is that the second checkout fails, while the first one succeeds. Why is there a conflict in bar, when, as shown at the end, the version that was "in the way" is identical to the one that was ultimately checked out? Any clues would be much appreciated! Thanks! kynn P.S. If anyone wants to play with the script that generated the results above, here it is: #!/bin/bash ### Edit the following line so that TESTCVSROOT has a valid value TESTCVSROOT=/path/to/test/cvs/repository # If you want to see cvs's output, set OUT to /dev/fd/1, # or delete all occurrences of " >&$OUT" in the code below OUT=/dev/null rm -rf $TESTCVSROOT cvs -d $TESTCVSROOT init >&$OUT ### First iteration rm -rf Foo && mkdir Foo && cd Foo echo -n 0 > bar cvs -d $TESTCVSROOT import -m '' Foo vendor_1 v1 >&$OUT cvs -d $TESTCVSROOT checkout -d . -r vendor_1 Foo cd .. ### Second iteration rm -rf Foo && mkdir Foo && cd Foo echo -n 1 > bar cvs -d $TESTCVSROOT import -m '' Foo vendor_1 v2 >&$OUT cvs -d $TESTCVSROOT checkout -d . -r vendor_1 Foo mv bar bar.orig cvs -d $TESTCVSROOT checkout -d . -r vendor_1 Foo diff bar bar.orig && echo $? cd .. exit 0 _______________________________________________ Info-cvs mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/info-cvs
