svn 提交多个文件 命令行_shell提交所有变更 svn 命令_马蹄急66的博客-程序员秘密


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

        我经常会一次往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。

乍看之下觉得更加精炼,仔细看下就会发现这个脚本没有区分文件状态。所以完善了以下这个脚本:

[ruby]  view plain  copy
 print ?
  1. svn st | awk '{if ( $1 == "?") { print $2}}' | xargs svn add  

这样,以后我可能使用这个脚本成百上千次。(当然这个脚本也没有考虑过滤掉不要添加的文件)

当你第三次做一件事情的时候,就应该考虑将其工具化,自动化!



转自:http://blog.csdn.net/spare_h/article/details/6677435
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/matiji66/article/details/50624083

智能推荐

selenium踩坑1_你在东北玩泥巴的博客-程序员秘密

1.Libs下放了一个HTMLTestRunner.py文件:C:\Users\demi.zhou\AppData\Local\Programs\Python\Python37\libs贴这段代码:import unittestfrom HTMLTestRunner import HTMLTestRunnerimport timediscover = unittest.defaultT...

springboot使用JPA配置_大佬喝可乐丶的博客-程序员秘密

使用Idea新建springboot项目,通常会使用最新的springboot版本,此时引入的mysql的版本和springboot的版本如果不匹配的话,会导致项目无法启动pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:x...

执行mvn clean报错Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies could_C&L的博客-程序员秘密

完整报错内容如下:D:\workspace\JavaWorkspace\hello_world>mvn clean[WARNING][WARNING] Some problems were encountered while building the effective settings[WARNING] Unrecognised tag: 'id' (position: START_TAG seen ...</profile>\r\n -->\r\n\t<i

UTF-8编码字节含义-以及应用_滴水成川的博客-程序员秘密

UTF-8编码字节含义对于UTF-8编码中的任意字节B,如果B的第一位为0,则B为ASCII码,并且B独立的表示一个字符;如果B的第一位为1,第二位为0,则B为一个非ASCII字符(该字符由多个字节表示)中的一个字节,并且不为字符的第一个字节编码;如果B的前两位为1,第三位为0,则B为一个非ASCII字符(该字符由多个字节表示)中的第一个字节,并且该字符由两个字节表示;如果B的前三位为1,

PHP安装Swoole Loader扩展教程,适用于Windows和Linux_&变形记¥的博客-程序员秘密

在安装Swoole Loader扩展前请先确认以下信息。操作系统 :Windows NT AMD64PHP版本 :7.2.22PHP运行环境 :cgi-fcgiPHP配置文件 :C:\BtSoft\php\72\php.iniPHP扩展安装目录 :extPHP是否线程安全 :非线程安全1、下载Swoole Loader扩展安装包下载压缩包,然后找到对应你系统的 Swoole Loader扩展文件解压出来下载地址:https://pecl.php.net/package/swoole

程序员面试100题之11_weixin_34342905的博客-程序员秘密

题目:输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。例如输入思路:我们从树的根结点开始分析。自然先应该打印根结点8,同时为了下次能够打印8的两个子结点,我们应该在遍历到8时把子结点6和10保存到一个数据容器中。现在数据容器中就有两个元素6 和10了。按照从左往右的要求,我们先取出6访问。打印6的同时要把6的两个子结点5和7放入数据容...

随便推点

获得手机硬件信息_weixin_34127717的博客-程序员秘密

关键类:android.os.Build.*如果需要针对不同手机品牌做适配,可以通过手机厂商(Manufacturer)信息做代码控制,更精确一些可以使用型号(Model),Model可以更精确指向一款手机。下面记录我手里的几台手机的信息:可见Product和Device获取的信息也不太稳定,如红米3得到的都是ido。魅蓝Note5ID: NRD90MDISPL...

cordova 插件_weixin_30691871的博客-程序员秘密

1.移动端WebApp开发,如何实现状态栏沉浸式效果? cordova-plugin-fullscreen2.cordova热更新插件-不发布应用市场动态更新APP源码https://github.com/nordnet/cordova-hot-code-pushCordova Hot Code Push Plugin此插件提供了可以使cordova app自动更新web...

ViewRoot/ViewRootImpl分析_viewrootimpl详解_jinchen_boke的博客-程序员秘密

原文 Android中的ViewRootImpl类源码解析 http://blog.csdn.net/qianhaifeng2012/article/details/51737370这篇文章是对上面文章部分内容的总结:ViewRoot和ViewRootImpl,从字面上来看,还以为ViewRootImpl是ViewRoot的实现, 其实不是的。ViewRoot是Android2.2以前的...

Cocos Creator微信登录接入(完全小白教程)(安卓篇)_cocos creator 微信登录_奔跑的大象的博客-程序员秘密

1:创建 Creator项目,如下2.创建完成后,项目工程图如下3.assets目录创建Login场景,创建TS目录,创建TSSDKTool.ts,Login.ts,如下图4.TSSDKTool.ts脚本内容如下:export class TSSDKTool { public static isAndroid = cc.sys.isNative && cc.sys.os === cc.sys.OS_ANDROID public...

vuex的命名空间有哪些_【uniapp关于vuex的问题】使用vuex的命名空间有页面不渲染的问题..._weixin_39628864的博客-程序员秘密

首先真机测试是这个问题:TypeError: Cannot read property 'state' of undefined at D:/%E5%89%8D%E7%AB%AF%E9%A1%B9%E7%9B%AE/youqing_App/node_modules/@dcloudio/vue-cli-plugin-uni/packages/mpvue/index.js:638表示state找不到,...

永久勘误:微软等面试100题系列,答案V0.4版[第41-60题答案]_dinongxu8804的博客-程序员秘密

永久勘误:微软面试100系列答案V0.4版[第41-60题答案]作者:July、何海涛等网友---------------------------几点声明:I、 此微软面试100题系列永久更新,答案永久勘误,永久优化。随时,永远,欢迎,任何人,针对任何一题,提出自己的思路、意见。并对那些修正公布于博客上的答案的网友,表示最大的感谢。II、 不管你愿不愿意相信或承认,这...