SVN 批量删除或添加文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVN 批量删除或添加文件相关的知识,希望对你有一定的参考价值。

参考技术A SVN批量删除文件

svn status | grep ! | awk 'print $2' | xargs svn delete

1、首先svn status查看svn状态,列出所有改动,打!号的是已经删除的文件但是还未标记成从库中除去。

2、grep ! 将这些文件单独抽离出来,此时如果不执行后面的语句,呈现的内容应该是类似 !  filepath/image/image.jpg

3、再用 awk 'print $2' 将抽离出来的文本结果处理,留下每一行的第二段文字,即后面的文件名, 此处必须注意,svn status|grep ! 和后面的语句 |awk 'print $2'|xargs svn delete之间,必须有一个空格,否则终端还是会认为这个!号是特殊符号.

4、最后就可以直接递交给svn delete命令了,使用xargs这个参数构造命令,将每一行的文本作为参数提供给svn del,结果就是所有列出的文件都执行了一遍del了。

注意:

有时删除图片倍图,带有@符号的时候,报错 a peg revision is not allowed here 。解决方法在文件后添加@符号,例如,删除一张图片 svn delete filepath/image@2x.png@,这样就可以删除成功了。

SVN批量添加文件

几乎和上面批量删除一样,不同的是svn标记的符号不一养,使用的是问号

svn status|grep ? |awk 'print $2'|xargs svn add

处理好之后就可以 svn commit -m "..."

Python开发SVN批量提交命令脚本

############# Svn commit data scripts #############

脚本功能说明:

将客户端添加、修改、删除过的文件及文件夹提交


执行方法:

python svn_commit.py 提交目录


如:

python svn_commit.py E:\test


############# Scripts demo #############

#!/usr/bin/env python
#coding:utf-8

import os
file_name = sys.argv[1]
#file_name = raw_input(‘你要运行的程序:‘)
os.chdir(file_name)
r=os.popen(‘svn st‘)
info = r.readlines()
for line in info:
    line = line.strip(‘\n‘).split(‘       ‘)
    one=line[0]
    tow=line[1]
    if one == ‘?‘:
        os.system(‘svn add %s‘ % tow )
    elif one == ‘!‘:
        os.system(‘svn delete %s‘ % tow)
os.system(‘svn commit -m "commit"‘ )


############# 修改过的内容如下 #############

svn st 列出修改过的文件

!为删除的文件

? 为新增加的文件

M 为修改的文件

技术分享


############# 执行脚本展示 #############

技术分享


############# 再次查看提交内容 #############

技术分享

本文出自 “wsyht90的博客” 博客,请务必保留此出处http://wsyht90.blog.51cto.com/9014030/1881892

以上是关于SVN 批量删除或添加文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用SVN上传,添加,删除文件

如何批量删除.svn文件

批量删除当前文件夹下面的.svn文件夹

批量删除采用svn管理文档中的.svn文件

Python开发SVN批量提交命令脚本

批量修改文件后缀名批量删除相同后缀名的文件