现在的位置: 首页 > 综合 > 正文

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

2013年11月09日 ⁄ 综合 ⁄ 共 1042字 ⁄ 字号 评论关闭

http://wp4d.sinaapp.com/2012/02/19/%E4%B8%80%E6%AC%A1%E5%90%91svn%E4%B8%AD%E5%A2%9E%E5%8A%A0%E6%89%80%E6%9C%89%E6%96%B0%E5%A2%9E%E6%96%87%E4%BB%B6-svn-add-all-new-files/

驯服Subversion命令行

总有些时候,没有别的什么工具或是开源项目能恰好满足你的需要,这时就该你自己动手制造“填木”和“夹铁”了。这一章介绍了很多种制造工具的方式,下面就是一些在真实项目中用这些工具来解决问题的例子。

我是开源版本控制系统Subversion的忠实粉丝,在我看来它就是强大、简单和易用的完美结合。归根到底Subversion是一个基于命令行的版本控制系统,不过有很多开发者为它开发了前端工具(我的最爱是与Windows资源管理器集成的Tortoise)。尽管如此,Subversion最大的威力还是在命令行,我们来看一个例子。

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

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

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

独家:卓有成效的程序员---自动化

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

 用Ruby编写SQL拆分工具

在从前的一个项目中,我和一个同事需要解析一个巨大(38,000行)的遗留SQL文件。为了让解析的工作变得容易一点,我们想把这个铁板一块的文件分成每块1,000行左右的小块。我们稍微考虑了一下手工做这件事,不过很快就明白将其自动化会是更好的办法。我们也考虑用sed来实现,不过似乎会很复杂。最终,我们选定了Ruby。大约一个小时以后,我们得到了这个:

独家:卓有成效的程序员---自动化

这个Ruby小程序从源文件中逐行读取,直到读满1,000行为止,然后从中寻找包含GO或者END的行,如果找到就结束当前文件的查找,开始下一个文件。

来源:http://linux.ctocio.com.cn/496/8873996_8.shtml

抱歉!评论已关闭.