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

转自: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的用法介绍讲解完毕。

转载于:https://www.cnblogs.com/sky-heaven/p/5534104.html

一次向svn中增加所有新增文件 svn add all new files【转】相关推荐

  1. 右键新建中增加新建.md文件

    右键新建中增加新建.md文件 三个步骤 一 随便找个地方创建个.txt文本 里面写 二 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT. ...

  2. 服务器新增svn 文件,公网的SVN服务器,批量新增文件会报错

    不管是客户端还是命令行,找了半天也没找到原因 具体表现在: 报错: svn: E120108: 提交失败(细节如下): svn: E120108: 执行上下文错误: The server unexpe ...

  3. SVN中如何将指定文件或文件夹直接提交到svn指定目录

    一般我们都是按以下步骤操作的: 1.先将那个目录checkout下来 2.将要添加的文件或者文件夹放到这个目录中 3.右击文件执行svn菜单中的add命令 4.右击文件执行svn菜单中的commit命 ...

  4. SVN中怎样忽略当前文件不提交

    场景 在使用SVN进行版本管理时,有时一些自动生成的文件比如证书等,在每台电脑上都会不同,如果将其提交,则会冲突. 怎样将指定的文件或者指定文件后缀的文件忽略提交. 注: 博客主页: https:// ...

  5. IDEA中忽略git或svn中无需提交的文件或文件夹

    打开IDEA 选择File->setting

  6. 安装Typora情况下,Windows右键新建菜单中增加新建md文件

    搜了好久,看CSDN里都不能用了.留作备忘 在安装了Typora的情况下 Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\.md] @=& ...

  7. svn中\TortoiseSVN找不到svn.exe.文件

    方法1:找到你的安装包再次安装一遍.然后选项这个 最后运行就可以出现了. 方法二:如果找不到本地的安装包,点随便卸载一个程序,然后找到 右键点击,然后点击修复.就可以开始修复.然后就出现了上边的程序. ...

  8. svn如何取消某个文件的版本管理_怎样去除SVN中的某个版本之前的所有版本

    地狱门神 在某些时候,我们可能需要一个存放二进制文件的SVN库,用来保存每日构建的结果等. 但是这种库会趋于越来越大,最后会占用很多磁盘空间. 这时我们会想到能不能删掉某个版本之前的所有版本,以节省磁 ...

  9. 如何彻底删除SVN中的文件和文件夹(附恢复方法)

    在SVN中如果删除某个文件或文件夹也可以在历史记录中进行找回,有的时候需要彻底删除某些文件,即不希望通过历史记录进行恢复,需要在服务器上对SVN的数据进行重新整理 这里假设SVN项目的目录为 /dat ...

最新文章

  1. linux vim配置注释,vim自动添加注释
  2. php索引是什么意思,为什么我的php一直说 没索引!下面是代码
  3. Last Theorem CodeForces - 1325F(dfs树找最大环+思维)
  4. [译]C#中的条件断点
  5. QT 格式化字符串功能
  6. Atitit java项目常用类库表 目录 1. Ati总的常用库 1 1.1. 表达式,语言解析类库 1 1.2. 字符串模板解析库velocity freemark 1 1.3. rest库
  7. 深入浅出设计模式 ------ Abstract Factory(抽象工厂)
  8. Python 上传文件到阿里云OSS
  9. java 获取url图片_java io流根据url读取图片
  10. 无线路由器的设置方法
  11. 个人邮箱Outlook登录入口在哪,遇到登录邮箱服务器配置错误的解决办法
  12. Docker安装和基本操作
  13. 25个常用的防火墙规则
  14. 网络拨测DialTest简单介绍
  15. HDU-4069(Squiggly Sudoku)(Dancing Links + dfs)
  16. Java+Jsp+MySql实现图书管理系统_图书管理系统代码
  17. java二维数奇数组金字塔_金字塔内神秘的数字~世界末日真的存在?
  18. html+css+js基础内容(六)
  19. IPv6技术精要--第9章 无状态地址自动配置SLACC
  20. amchart使用总结

热门文章

  1. JRuby大捷:ThoughtWorks宣布Mingle发布在即
  2. 单位四元数(unit quaternion)
  3. ROS学习(三):ROS安装不能本地化问题
  4. Windows Server 2016虚拟机克隆后修改安全标识SID
  5. Distributed Systems-leader based分布式一致性协议
  6. 【OPENGL】第三篇 着色器基础(一)
  7. Visual Studio 2008 可扩展性开发(三):Add-In运行机制解析(下)
  8. Oracle的LINUX安装
  9. 开始学习RED HAT LINUX了
  10. 跟我一起学perl系统管理脚本 第3课