svn自动提交丢失的文件

Ars*_*rst 4 svn

我想编写一个批处理文件,可以递归地自动提交丢失的文件.如何编写批处理命令?请帮助.

gok*_*sel 10

使用 svn rm $( svn status | sed -e '/^!/!d' -e 's/^!//' )

有关更多命令行颠覆,请参见http://geryit.com/blog/2011/03/command-line-subversion-practices/


Luk*_*ard 6

以下批处理脚本应该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 deletesvn commit使用echo svn delete和可能更好echo svn commit,以便您可以在将脚本放到存储库之前查看此脚本将要执行的操作.

  • for/f"usebackq tokens = 2*"%i in(`svn st ^ | findstr/R"^!"`)do svn del"%i" (3认同)