info-cvs
[Top][All Lists]
Advanced

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

Re: "it is in the way" problem


From: Kaz Kylheku
Subject: Re: "it is in the way" problem
Date: Fri, 25 Jan 2002 07:02:45 GMT
User-agent: slrn/0.9.6.3 (Linux)

In article <address@hidden>, Jason Allen wrote:
>This is a multi-part message in MIME format.
>
>------=_NextPart_000_0036_01C1A535.FB82FD40
>Content-Type: text/plain;
>       charset="iso-8859-1"
>Content-Transfer-Encoding: quoted-printable
>
>I have my CVS repository all setup and working but occasionally I am =
>seeing some really strange errors. Every once in a while when doing an =
>update I get a whole bunch of "move away file X, it is in the way" =
>errors. This seems to happen quite randomly and I haven't been able to =
>pin it down. Anybody ever experienced something like this?

This means exactly what it says it means, in plain English. CVS is trying
to check out a file, but a file of that same name exists locally.

One cause is perhaps that some goof added derived objects into
the repository.

Derived objects is a term you can use when speaking about files which
are the results of automated processes such as compilation, and are
produced from, and are the dependents of, primary objects such
as source files.

Suppose you have some project with foo.c, and someone compiles it to
foo.o and adds the derived object foo.o to the repository. You also
have a compiled foo.o, so when you do an update, CVS discovers a clash
and refuses to clobber your local file. As far as CVS knows, that file
could have precious contents.

Derived objects should almost never be added to CVS. Sometimes people
do that to save compiling time on large components that rarely change.
When such things do have to change, you have to rebuild them and
commit new versions of the binaries. Also whenever you do a merge,
you just resolve the conflict on the primary objects and rebuild the
derived objects from scratch, then commit those.

>Heres the CVS command I'm using to update my working copy:
>
>cvs -d :ext:address@hidden:/repository -z3 up -d -I ! -I CVS

No! You should not have to specify the repository path when updating.
Your working copy knows what repository it came from. Just ``cvs up''
(with a -z3 if you really expect the update to be large).

Also what is the -I ignore for? What good do you think that will do?
That's a useful option if you are importing some source code that happens
to contain CVS subdirectories because whoever prepared the distribution
didn't RTFM about the cvs export command. It's not useful on update,
because there should be no files in the repository called CVS.


reply via email to

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