gok*_*sel 10
使用 svn rm $( svn status | sed -e '/^!/!d' -e 's/^!//' )
有关更多命令行颠覆,请参见http://geryit.com/blog/2011/03/command-line-subversion-practices/
以下批处理脚本应该SVN删除并提交标记为缺失的所有文件(即在本地删除但不使用SVN删除):
@echo off
svn status | findstr /R "^!" > missing.list
for /F "tokens=2 delims= " %%A in (missing.list) do (
svn delete %%A && svn -q commit %%A --message "deleting missing files")
Run Code Online (Sandbox Code Playgroud)
丢失的文件由svn status角色显示!,例如:
! test.txt
然后,此脚本使用findstr过滤除丢失文件之外的任何修改.然后将此丢失文件列表写入文件missing.list.
接下来,我们遍历此文件,使用从文件中的行中tokens=2 delims=删除!,留下(希望)只是文件名.一旦我们有了文件名,我们就把它传递给svn delete然后svn commit.随意更改邮件的内容.
请注意,我没有测试过这个脚本.特别是,我不知道如果你想要提交的文件之一在其路径中有空格会发生什么,或者如果遇到冲突的一部分会发生什么.替换svn delete和svn commit使用echo svn delete和可能更好echo svn commit,以便您可以在将脚本放到存储库之前查看此脚本将要执行的操作.