Is there a version control system that allows you to track file name changes?

So, I lived with cvs repositories for a while. Although there is something that I skipped about - if I rename a file that is already in the repository, I need to delete it with the old name and add a new one. Therefore, I am losing my entire history of change. And sometimes it becomes necessary to rename the file to an alredy existing project.

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

+6
version-control svn cvs
source share
5 answers

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

svn move <oldfile> <newfile> 

Edit: And in this decade, we do git mv <oldfile> <newfile> , or just use mv , and git usually calculates this on our own.

+12
source share

The CVS online manual contains some information on how to do this:

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

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

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

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

+7
source share

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

The only ones I can think of will not (or have serious reservations) are CVS and VSS.

+4
source share

In svn use svn mv.

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

+2
source share

Subversion has the ability to rename.

-one
source share

All Articles