Shane McDaniel <[EMAIL PROTECTED]> wrote in message news:<[EMAIL PROTECTED]>... > $ cd $CVSROOT/module > $ cp old,v new,v > # make a minor change so the commit will occur > $ cvs commit -m "Moved to new" old > $ rm old > $ cvs remove old > $ cvs upddate new > # make a minor change so the commit will occur > $ cvs commit -m "Moved from old" new > > The goal being to have the complete history in the new location as well > as the history to the move date under the old file. > Does this accomplish that goal?
No, on at least three counts. Firstly, checkouts of old baselines are polluted with the file ``new'' which did not in fact exist when those baselines were created. If you want to do a better job, then scrub all tags from ``new''. This way when someone checks out an old release, that file won't be instantiated. Who knows what problems the extra file may cause? Secondly, you don't have a complete history that will let you merge across the rename. You can't go back to an old release, fix something in the file ``old'', and then merge that fix to the latest code, and have it automatically apply to ``new''. Thirdly, what if someone created an object called ``new'' on a branch? Then you have a new,v in the Attic, which means you better not create a new,v in the main directory. What do you think will happen when the addition of ``new'' o the branch is merged to the trunk? CVS will try to move new,v out of the Attic and encounter the existing new,v. What you have done is not a real rename, but a copy. A copy is not the same thing as a rename! If you go down to your local government office to change your surname, they are not going to clone you, give your new name to your clone, and then kill you. A name is the property of an object, not vice versa! A rename operation takes place when the property is updated to a new value, while otherwise preserving the identity of the object. -- Meta-CVS: directory structure versioning; versioned symbolic links; versioned execute permission; versioned property lists; easy branching and merging and third party code tracking; all implemented over the standard CVS command line client -- http://freshmeat.net/projects/mcvs _______________________________________________ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs