博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一次向svn中增加所有新增文件 svn add all new files【转】
阅读量:6161 次
发布时间:2019-06-21

本文共 1492 字,大约阅读时间需要 4 分钟。

以下摘自:《卓有成效的程序员》之自动化

转自: 

  我经常会一次往Subversion里添加一批文件。在使用命令行做这件事时,你必须指定所有想要添加的文件名。如果文件不多的话这还不算太糟糕,但如果你要添加20个文件,那就费事了。当然你也可以用通配符,但这样一来就可能匹配到已经在版本控制之下的文件(这不会有什么损害,只不过会输出一堆错误信息,可能会跟别的错误信息混淆)。为了解决这个问题,我写了一行简单的bash命令:

  

svn st | grep '^\?' | tr '^\?' ' ' | sed 's/[ ]*//' | sed 's/[ ]/\\ /g' | xargs svn add

 

  表4.3详细解释了这一行命令。

 

  我大概花了15分钟写出这条命令,然后用了它成百上千次。

      ****************************************************

      这个自动化过程已经很完美了,一个“简单”的shell脚本,这是一个权威编写并使用了百上千次的脚本。

然后我在一个博客中看到这样一个脚本:svn st|awk '{print $2}'|xargs svn add。乍看之下觉得更加精炼,仔细看下就会发现这个脚本没有区分文件状态。所以完善了以下这个脚本: svn st | awk '{if ( $1 == "?") { print $2}}' | xargs svn add这样,以后我可能使用这个脚本成百上千次。(当然这个脚本也没有考虑过滤掉不要添加的文件)当你第三次做一件事情的时候,就应该考虑将其工具化,自动化! 名称svn add — 添加文件、目录或符号链。概要SVN子命令add PATH...描述文件、目录或符号链到你的工作拷贝并且预定添加到版本库。它们会在下次提交上传并添加到版本库,如果你在提交之前改变了主意,你可以使用svn revert取消预定。选项--targets FILENAME--non-recursive (-N)--quiet (-q)--config-dir DIR--no-ignore--auto-props--no-auto-props--force例子:我们通过一个例子来看一下SVN子命令add,添加一个文件到工作拷贝:$ svn add foo.c A         foo.c当添加一个目录,svn add缺省的行为方式是递归的:$ svn add testdirA         testdirA         testdir/aA         testdir/bA         testdir/cA         testdir/d你可以只添加一个目录而不包括其内容:$ svn add --non-recursive otherdirA         otherdir通常情况下,命令svn add *会忽略所有已经在版本控制之下的目录,有时候,你会希望添加所有工作拷贝的未版本化文件,包括那些隐藏在深处的文件,可以使用svn add的--force递归到版本化的目录下:$ svn add * --forceA         foo.cA         somedir/bar.cA         otherdir/docs/baz.doc。SVN子命令add的用法介绍讲解完毕。

 

本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sky-heaven/p/5534104.html,如需转载请自行联系原作者

你可能感兴趣的文章
我的友情链接
查看>>
Android按两次返回键退出应用
查看>>
第一章:认识Redhat Linux
查看>>
文本查看指令
查看>>
我的友情链接
查看>>
android开源项目框架大全:《IT蓝豹》
查看>>
我的友情链接
查看>>
如何做地图标注
查看>>
生产环境该如何选择lvs的工作模式,和哪一种算法
查看>>
iOS 正则表达式判断UITextField是否为全汉字,全字母,全数字,数字和字母
查看>>
NHibernate初探-SQLDialects
查看>>
ElasticSearch之动态映射和模板
查看>>
完全卸载 RAC_clusterware的方法
查看>>
深入理解指针函数
查看>>
shell编程详解(一)
查看>>
我的2012
查看>>
CHARTING图表控件介绍及下载地址
查看>>
JAVA题目一道
查看>>
视频上传、转码、切面、存储的思路
查看>>
mp4无法用于直播流
查看>>