一次向svn中增加所有新增文件 svn add all new files

转自:http://blog.csdn.net/spare_h/article/details/6677435      

  我经常会一次往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 testdir
A         testdir
A         testdir/a
A         testdir/b
A         testdir/c
A         testdir/d
你可以只添加一个目录而不包括其内容:
$ svn add --non-recursive otherdir
A         otherdir
通常情况下,命令svn add *会忽略所有已经在版本控制之下的目录,有时候,你会希望添加所有工作拷贝的未版本化文件,包括那些隐藏在深处的文件,可以使用svn add的--force递归到版本化的目录下:
$ svn add * --force
A         foo.c
A         somedir/bar.c
A         otherdir/docs/baz.doc。SVN子命令add的用法介绍讲解完毕。
复制代码


【作者】 张昺华

    <div>【博客园】 <a href="http://www.cnblogs.com/sky-heaven/" target="_blank">http://www.cnblogs.com/sky-heaven/</a></div>
    <div>【新浪博客】 <a href="http://blog.sina.com.cn/u/2049150530" target="_blank">http://blog.sina.com.cn/u/2049150530</a></div>
    <div>【知乎】 <a href="http://www.zhihu.com/people/zhang-bing-hua" target="_blank">http://www.zhihu.com/people/zhang-bing-hua</a></div>
    <div>【我的作品---旋转倒立摆】 <a href="http://v.youku.com/v_show/id_XODM5NDAzNjQw.html?spm=a2hzp.8253869.0.0&amp;from=y1.7-2" target="_blank">http://v.youku.com/v_show/id_XODM5NDAzNjQw.html?spm=a2hzp.8253869.0.0&amp;from=y1.7-2</a></div>
    <div>【我的作品---自平衡自动循迹车】 <a href="http://v.youku.com/v_show/id_XODM5MzYyNTIw.html?spm=a2hzp.8253869.0.0&amp;from=y1.7-2" target="_blank">http://v.youku.com/v_show/id_XODM5MzYyNTIw.html?spm=a2hzp.8253869.0.0&amp;from=y1.7-2</a></div>
【新浪微博】 张昺华–sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

猜你喜欢

转载自blog.csdn.net/GorgeousChou/article/details/80795762