我对版本化目录进行了大量更改。我已经重命名,添加,删除并完成了很多整理(这是一个资源目录)。有没有办法避免使用svn delete
和svn add
的大量错误,以确保添加/删除正确的文件,或者是否有一种方法可以自动添加/删除文件控制(即一个命令,使目录中存在的每个文件都版本化,并使任何缺席的文件无版本化)?
答案 0 :(得分:1)
如果您正在使用bash,那么编写一个从svn的status
命令的输出中导出它的todo列表的脚本非常简单:
svn st | grep '^\?' | awk '{print \$2}' | xargs svn add
svn st | grep '^\!' | awk '{print \$2}' | xargs svn rm
(资料来源:http://www.plexusweb.com/staff/travis/blog/post/267/Batch-addremove-files-to-Subversion)
然而,这将处理所有发生的更改,如添加或删除文件;识别重命名的文件是一个相当困难的问题,因为这样的工具必须知道如何通过似乎删除的subversion获取每个文件的最新版本,然后将其与工作目录中的每个“新”文件进行比较 - 以及甚至可能会考虑你可能做出的小改动(意味着通过散列值进行比较是不可能的) - 确实是一项具有挑战性的任务!