svn脚本提交一组已删除的文件

时间:2010-09-16 11:24:07

标签: linux svn shell

我从本地副本中删除了许多文件,这些文件存在于主目录的不同子目录中。我想从我的SVN存储库中删除所有本地删除的文件。

如果我使用svn st main_dir检查主目录的SVN状态,则所有已删除的文件都显示为“!”符号表示缺少相应的文件。但即使我使用svn ci main_dir提交更改,这些文件也不会从我的SVN存储库中删除。

是否有任何方法或命令或脚本从我的SVN存储库中删除主目录和子目录的所有本地删除的文件。我想我们可以遍历每个文件夹的所有文件,并通过检查相应的文件SVN STATUS('!')从SVN中删除本地删除的文件,但我不知道如何将我的想法转换为脚本。

有人可以帮我完成这项任务吗?提前谢谢......

湿婆

5 个答案:

答案 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 '{}'