[Top][All Lists]

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

Re: Moving files from lisp/gnus/ to lisp/net/?

From: Karl Fogel
Subject: Re: Moving files from lisp/gnus/ to lisp/net/?
Date: 20 Oct 2004 06:56:00 -0500
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50

Lars Magne Ingebrigtsen <address@hidden> writes:
> Miles Bader <address@hidden> writes:
> > I think this is generally considered a very bad thing to do.  It's
> >much safer (if less exciting) to just do the old cvs add+rm thing,
> >and make the first commit log in the new location "renamed from foo".
> But then we lose the log.
> > The reason it's bad, as I understand it, is that it essentially
> >changes history; I'm not entirely sure of the all the user-visible
> >repercussions, but I'm not sure I want to find out the hard way...
> Hm...  I don't quite follow you.  The CVS tree is (almost) just a
> bunch of ,v files.

Miles's point is that by moving (or copying) a ,v file from one place
to another, we create a history in the new place that was not actually
there in reality.  For example, if there is a tag V1_RELEASE on a
revision in the ,v file, then someone attempting to check out the tree
as of the tag V1_RELEASE will get a file in a location that did
actually exist at the time the V1_RELEASE tag was made.  

(And if the ,v file was moved, instead of copied, the V1_RELEASE
checkout will fail to contain a file that it should contain!)

The usual solution is this:

   1. Manually *copy* the ,v file from the old place to the new place.

   2. Use 'cvs rm' to "remove" it from the old place (actually just
      marks the head revision as dead and puts the ,v file into CVS's
      Attic, thus preserving history)

That's a compromise.  It creates some new false history, but at least
it preserves all of the old history.  Old tags and branches will have
all the files they should have, they'll just have a bit more besides.


reply via email to

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