最近我在源代码树中移动源文件.例如,将一堆文件放入公共程序集中.我一直在这样做,我从CVS删除文件,然后在新的位置再次添加它.问题是文件的修订号重置为1.1.是否有一些简单的方法来移动东西而不重置数字.
我可能应该提到我无法访问存储库,因此任何需要它的东西都无法帮助我,但它可能对其他人有帮助.
实现此效果的普遍接受的方式是执行以下步骤.对此的技术术语是复制.
在托管CVS存储库的服务器上登录,并将存储库文件从您想要的位置复制(不要移动)到新位置.
在客户端cvs从旧位置删除该文件.
在客户端,cvs更新新位置中的目录内容(以便文件出现在那里).
在客户端执行复制文件的强制cvs提交(使用-f标志)以记录它被重新复制的事实(向该效果添加日志注释).
此过程将文件历史记录保留在其新位置,并且不会破坏存储库的向后连续性.如果您及时移回,该文件将正确显示在其旧位置.您也可以使用相同的过程重命名文件.
没有办法使用仅客户端命令移动文件.您需要访问服务器文件系统,并可以将存储库中的",v"文件移动到新位置.这将保留所有历史记录,因为CVS会在每个文件中记录每个修订版本及其注释.
请记住,文件在删除时会移动到"Attic"子文件夹(无法从客户端看到).这是删除文件后如何恢复的方法.
通常这种方法没有直接问题,但是如果您决定检查可能依赖于以前目录结构的产品的早期版本,则必须考虑后果!
这是Subversion等其他版本控制系统具有明确优势的地方.