views:

186

answers:

5

So, I've been living with my cvs repositories for some time. Though there is a thing I miss - if i rename a file that is already in repository, I need to delete the one with old name from there and add the new one. Hence, I loose all my change-history. And sometimes there's a need to rename a file in alredy existing project.

From what I saw, cvs/svn can't handle something like this, or am I wrong? If not, what other source control system would you recommend, that allows the renaming of files?

+11  A: 

Subversion can do this, but you have to do it with

svn move <oldfile> <newfile>
MattW.
A: 

Subversion has rename capability.

Carlton Jenke
+3  A: 

Pretty much any modern version control system will allow this (Subversion, Perforce, Vault, git, Mercurial, TFS, etc.).

The only ones I can think of that won't (or that have major caveats) are CVS and VSS.

Matt Dillard
+7  A: 

The online CVS manual has some detail on how to do this:

The normal way to move a file is to issue a cvs rename command.

$ cvs rename old new
$ cvs commit -m "Renamed old to new"

This is the simplest way to move a file. It is not error prone, and it preserves the history of what was done. CVSNT clients can retrieve the original name by checking out an older version of the repository.

This feature is only supported on CVSNT servers 2.0.55 and later.

ColinYounger
+2  A: 

In svn, use svn mv.

See also: http://subversion.tigris.org/faq.html#case-change in the FAQ.

bart