所以,我已经使用我的 cvs 存储库有一段时间了。虽然我想念一件事 - 如果我重命名一个已经在存储库中的文件,我需要从那里删除具有旧名称的文件并添加新文件。因此,我放弃了我所有的变更历史。有时需要重命名已经存在的项目中的文件。
从我所见,cvs/svn 无法处理这样的事情,还是我错了?如果不是,您会推荐什么其他允许重命名文件的源代码控制系统?
所以,我已经使用我的 cvs 存储库有一段时间了。虽然我想念一件事 - 如果我重命名一个已经在存储库中的文件,我需要从那里删除具有旧名称的文件并添加新文件。因此,我放弃了我所有的变更历史。有时需要重命名已经存在的项目中的文件。
从我所见,cvs/svn 无法处理这样的事情,还是我错了?如果不是,您会推荐什么其他允许重命名文件的源代码控制系统?
Subversion 可以做到这一点,但你必须这样做
svn move <oldfile> <newfile>
编辑:在这十年里,我们这样做git mv <oldfile> <newfile>
了,或者只是使用mv
,而 git 通常会自行解决。
在线 CVS 手册有一些关于如何执行此操作的详细信息:
移动文件的正常方法是发出 cvs rename 命令。
$ cvs rename old new $ cvs commit -m "Renamed old to new"
这是移动文件的最简单方法。它不容易出错,并且保留了所做操作的历史记录。CVSNT 客户端可以通过检出旧版本的存储库来检索原始名称。
此功能仅在 CVSNT 服务器 2.0.55 及更高版本上受支持。
几乎任何现代版本控制系统都允许这样做(Subversion、Perforce、Vault、git、Mercurial、TFS 等)。
我能想到的唯一不会(或有重大警告)的是 CVS 和 VSS。
在 svn 中,使用 svn mv。
另请参阅:常见问题解答中的http://subversion.tigris.org/faq.html#case-change。
Subversion 具有重命名功能。