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的用法介绍讲解完毕。
svn add *
svn add */**/*
等同于
svn add * --force