info-cvs
[Top][All Lists]
Advanced

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

Re: address@hidden: Re: rename in cvs]


From: Greg A. Woods
Subject: Re: address@hidden: Re: rename in cvs]
Date: Thu, 11 Oct 2001 22:46:15 -0400 (EDT)

[ On , October 11, 2001 at 17:31:05 (-0400), Sam Steingold wrote: ]
> Subject: Re: address@hidden: Re: rename in cvs]
>
> Why can't I see the log for all of them in one command?

Because that's not the way CVS works.

> Consider a versioning file system which has a native idea of file version.
> I can rename file FOO;<latest> to BAR;<latest>, keeping the older
> versions of FOO named FOO;1, FOO;2 &c. - this corresponds to the CVS
> method (rm/add).
> But I also can rename _all_ version of FOO to BAR.
> This _is_ a reasonable thing to do.
> 
> Why can't I do it with CVS?

Because that's not the way CVS works.

> Please note that the answers like "this is not how CVS manages change!"
> are not very convincing, because the natural retort is "then maybe CVS
> manages change incorrectly?"

Well, maybe you should try a little harder to learn how CVS works and
find out what it's really doing internally.

Even the manual discusses most of the issues regarding renames quite
clearly and accurately.

> Please tell us _why_ the request for the CVS command mv, which would
> rename the *,v file and replace the CVS/Entries entry is unreasonable.
> (Oh yeah, CVSROOT/history should also be suitably modified and a record
> of the renaming to allow for undoing it should also be added.
> But is these are too hard to implement, forget it and stick with a
> simple "mv FOO,v BAR,v").

CVS cannot do what you want it to do.  The reasons why not have been
discussed almost infinitely.  Some new tool might someday be able to do
this, and several commercial tools claim to be able to already.

> And while I am talking about undoing, why can't a revision be removed
> from the CVS?  just like I can remove a revision in a versioning file
> system, I should be able to remove a revision from the CVS.

You can, but you shouldn't.  The proper way to undo, or revert, a change
in any change tracking system is to apply the change as a reverse patch,
thus removing the change from the new file, and then commit that as a
new change again, noting in the commit message which delta you've reverted.
 
> Don't get me wrong.  CVS is a great tool.
> Let's make it even better!

To make CVS do what you want will require changes so extensive and
ground shaking that the result will no longer interoperate with a normal
CVS repository.  The transformation will be complete and it will create
a new tool.  Word is people are already working on such a thing --
whether they'll succeed or not is yet to be seen.

Note that Perforce and BitKeeper already claim to have "rename" support,
and BitKeeper claims to have the best rename support of all.

Howeve even in BitKeeper "Conceptually, a rename is seen as a deletion
of one file and a creation of another file."

So, there you have it.

-- 
                                                        Greg A. Woods

+1 416 218-0098      VE3TCP      <address@hidden>     <address@hidden>
Planix, Inc. <address@hidden>;   Secrets of the Weird <address@hidden>



reply via email to

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