我从本地副本中删除了许多文件,这些文件存在于主目录的不同子目录中。我想从我的SVN存储库中删除所有本地删除的文件。
如果我使用svn st main_dir
检查主目录的SVN状态,则所有已删除的文件都显示为“!”符号表示缺少相应的文件。但即使我使用svn ci main_dir
提交更改,这些文件也不会从我的SVN存储库中删除。
是否有任何方法或命令或脚本从我的SVN存储库中删除主目录和子目录的所有本地删除的文件。我想我们可以遍历每个文件夹的所有文件,并通过检查相应的文件SVN STATUS('!')从SVN中删除本地删除的文件,但我不知道如何将我的想法转换为脚本。
有人可以帮我完成这项任务吗?提前谢谢......
湿婆
答案 0 :(得分:17)
for i in $(svn st | grep \! | awk '{print $2}'); do svn delete $i; done
答案 1 :(得分:3)
我发现xargs比for循环更容易:
svn stat | grep \\! | awk '{print $2}' | xargs svn remove
答案 2 :(得分:1)
for i in $(svn st | grep \! | awk '{print $2}'); do svn delete $i'@'; done
对于包含@ 2x的文件。
答案 3 :(得分:0)
您应该使用svn delete PATH
删除这些文件。这样就可以从文件系统和工作副本中删除它们。
有关详细信息,请参阅svn delete。
我建议您svn update
从远程存储库中取回文件,然后使用svn delete
删除它们。
答案 4 :(得分:0)
也适用于文件名中的空格:
svn st | grep ! | sed 's/!\s*//' | xargs -I{} svn remove '{}'