<p>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.</p>

<p>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? </p>

Subversion can do this, 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 figures it out on its own.