bug-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CVS bug? "cvs checkout: move away bar; it is in the way"


From: kynn
Subject: CVS bug? "cvs checkout: move away bar; it is in the way"
Date: Sat, 5 Jun 2004 13:34:15 -0400 (EDT)



The bug illustrated below is a very minor one, because there's a very
simple workaround (also illustrated below).  Still, it took me a long
time to sort this out, and I would appreciate either a confirmation
that it is a bug, or a pointer to where in the documentation this
"feature" is described.  (If no such place in the docs exists, then I
think this should at least be considered a bug in the documentation.)

I provide a script at the end of this message that reproduces the bug.
All you need to do to it is edit the value of TESTCVSROOT, and it's
ready to go.

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

My OS is Linux/Debian:

% uname -a
Linux luna 2.4.18 #1 Sun Apr 4 17:45:51 EDT 2004 i686 unknown

My version of CVS is 1.11.16 (client/server).

Here is the script that generates the results above:

#!/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
######################################################################



kynn jones




reply via email to

[Prev in Thread] Current Thread [Next in Thread]