前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Shell 命令行,svn add 需要添加很多文件时的简化脚本

Shell 命令行,svn add 需要添加很多文件时的简化脚本

作者头像
FungLeo
发布2018-01-08 14:43:56
1.3K0
发布2018-01-08 14:43:56
举报

Shell 命令行,svn add 需要添加很多文件时的简化脚本

我一直使用 git 版本管理工具,对于 svn 很不熟悉。现在接到一个项目是用 svn 进行管理的。我简单看了一下 svn 的管理命令,就开始上手工作了。

结果发现,svn 貌似没有 gitgit add -A 这样的添加所有未添加文件的命令。

或许有,我没有更深的研究,因为用过就不用了。

现在我添加了很多的新文件,一条一条命令的输入显得非常的麻烦。因此,我随手写了一个脚本,来实现了我需要的这个功能。

实现脚本

代码语言:javascript
复制
files=$(svn st | grep ? | sed 's/\?//g' | sed 's/ //g')
for i in $files; do
  svn add $i
done

实现原理:

  1. svn st 可以查看当前的 svn 的状态,最前面是 ? 表示未添加的文件
  2. 我们可以用 grep ? 过滤出来需要添加的文件。
  3. sed 可以过滤掉 ? 和 空格,只留下这些要上传的文件的路径
  4. 使用一个 for 循环,在文件路径前面加上 svn add 就可以实现添加文件了。

整体代码非常短,也非常简单,但是避免了我一次次的输入。

最后,我把这个代码写成全局的命令,命名为 svnadd 就可以在任何地方使用了。

实现方式2

上面用了循环,其实,svn add 是可以接受多个文件参数的,也就是可以通过命令,来添加所有的文件。

并且,上面的代码用了两个 sed 来分别替换问号和空格。这些可以简化到一个命令里面去,因此,这个命令可以优化为以下代码:

代码语言:javascript
复制
svn add $(svn st | grep ? | sed 's/[\?][ ]//g')

以上脚本均在 MAC 下测试通过,在 linux 下可能会有稍许不同。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-09-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Shell 命令行,svn add 需要添加很多文件时的简化脚本
    • 实现脚本
      • 实现方式2
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档