实习笔记----脚本: SVN批量添加与删除
来源:互联网 发布:网络延长器怎么用图解 编辑:程序博客网 时间:2024/06/06 05:52
大家好,本文涉及到我在使用svn时遇到的一个实际问题:如何一次性完成涉及多文件的命令。
一般来讲在svn版本控制下的文件操作如添加删除等需要使用svn add 和svn rm来执行以便使svn知道这些变动,但实际使用中往往版本文件夹就是Eclipse的项目文件夹,想删除添加文件直接在Eclipse里操作就好了何必跳转到命令行?【话说eclipse里好像有相关的功能但是我还没仔细看暂时忽略。。。】
直接在Eclipse里进行操作的后果就是在使用svn提交时,在svn st 命令的列表中,所有新加入的文件前面会有‘?’,而删除的文件前会有‘1’,我们需要把有‘?’的行使用svn add添加进版本控制,对?的行使用 svn rm;问题是如何进行这一批量操作呢?
通过“svn st | grep ?”命令可以得到需要添加的文件列表,但每行都以‘?’开头所以无法直接通过xargs传给svn add。 那么问题转换为如何才能把那些?过滤掉呢?
例:
得到的文件列表:
d:\PROJET\repo\trunk>svn st | grep ?
? main.xml
? logo.png
? bin
? gen
? add.png
希望最终执行的命令:svn add main.xml logo.png bin gen add.png
一般来讲在svn版本控制下的文件操作如添加删除等需要使用svn add 和svn rm来执行以便使svn知道这些变动,但实际使用中往往版本文件夹就是Eclipse的项目文件夹,想删除添加文件直接在Eclipse里操作就好了何必跳转到命令行?【话说eclipse里好像有相关的功能但是我还没仔细看暂时忽略。。。】
直接在Eclipse里进行操作的后果就是在使用svn提交时,在svn st 命令的列表中,所有新加入的文件前面会有‘?’,而删除的文件前会有‘1’,我们需要把有‘?’的行使用svn add添加进版本控制,对?的行使用 svn rm;问题是如何进行这一批量操作呢?
通过“svn st | grep ?”命令可以得到需要添加的文件列表,但每行都以‘?’开头所以无法直接通过xargs传给svn add。 那么问题转换为如何才能把那些?过滤掉呢?
例:
得到的文件列表:
d:\PROJET\repo\trunk>svn st | grep ?
? main.xml
? logo.png
? bin
? gen
? add.png
希望最终执行的命令:svn add main.xml logo.png bin gen add.png
要注意使用svn add -A 并不是一个好方法;对于我这个新手来讲解决方案不是太明显,但是经过研究和发帖求助还是找到了答案;
svn st | grep ? | sed "s/?//" |xargs svn add
svn st | awk '{if($1 == "?"){print $2}}'|xargs svn add
第一种方案使用sed 把?替换为空然后传过去就好了,第二种使用了awk命令;这两个命令在进行字符串的替换等处理时是非常常用的,有了他们思路就比较完整了;建议和我一样的新手们好好研究一下sed以及正则表达式,很组合成很强大的脚本哦;)
下一篇文章就给大家分享我写的文件夹备份脚本,下次见喽
- 实习笔记----脚本: SVN批量添加与删除
- SVN批量添加与删除
- svn 批量添加和删除
- 批量添加删除用户脚本
- svn 命令行 批量删除和批量添加
- svn 命令行 批量删除和批量添加
- svn命令行批量删除和批量添加
- svn 命令行批量删除和批量添加
- svn 命令行 批量删除和批量添加
- svn实现批量添加和删除文件
- shell脚本-批量添加或删除用户
- Linux Fedora12 下,用脚本批量删除.svn文件夹
- Linux中用脚本实现批量添加和删除普通用户
- svn 批量更新 脚本
- ubuntu 批量删除 .svn
- 批量删除svn
- 批量删除.svn文件
- 批量删除.svn文件
- stdaf.h与stdio.h的原理与区别
- [泰然翻译] cocos2d programming guide 粒子效果
- HDU 2453 / UVA 4319 - Carrying Out A Task
- 框架相关jar包简单介绍
- H264 NALU 使用PS封装 RTP发送
- 实习笔记----脚本: SVN批量添加与删除
- Hibernate 中session的一点说明
- Monkey测试简介
- V4L2
- JMX的Hello World
- VBA 转置
- Linux命令整理之一:mount
- C++容器类和Qt容器类
- 加了密码的Access数据库连接字符串如何设置?