Linux 端的svn 定时自动提交如果一个提交操作是定向定时的重复动作,我们可以把commit 的操作和参数对象抽象出来,封装在脚本中执行。并将脚本配置在crontab 中定时执行。

commit 操作解析

1. 当前workcopy 里各文件的状态 : svn stat

2. 当前状态分析:

?     Tests/dxj/case 1.1.1.test

!     Tests/dxj/modify sgw

M     Tests/dxj/modify sgw

? 表示新增文件,需要用svn add file 加入版本控制标识,才能使用commit 默认提交 。

!表示本地已删除的受控文件,需要用svn delete file 加入版本控制标识,才能使用commit 默认提交 。

M表示本地与上次更新的文件比较有修改,会默认在commit 的时候提交

3. 分离不同状态的文件并获取列表:

svn st | grep "? \+" | sed "s/? \+//" > $Add_File

"? \+" 表示匹配"?问号及其后的连续空格"。正则式 + 用转义符 \+ 表示多次匹配前一个字符,前一个字符是空格。

sed "s/? \+//" :sed "s/A/B/"  表示用B 替换A 。 这里A="?问号及其后的连续空格" ,B=空, 即去掉前面一截,只保留文件列表 ,并写到$Add_File中

4. 把列表中的文件传给svn add 命令,加入版本控制:

cat $Add_File | xargs svn add >>$LogFile

为文件添加版本控制标识,命令为 svn add filename 。

这里用管道|接收上一个命令cat 的结果,并用xargs 把前面的结果做为后一个命令的参数。

5. 带参数commit

svn ci -m 'auto commit by script' --username svnmgr --password xxx >>$LogFile

ci 表示 commit

-m  后面用引号加上 massage

--username 用户名

--password 密码

crontab 配置

> crontab -e

进行编辑定时任务列表,加入一行

10 5 * * * /public/lcf/autoapp_commit.sh

其中 前五部分表示: 分 时 日 月 星期  第六部分表示命令

以上 例子含义为:每天5点10分执行/public/lcf/autoapp_commit.sh

:wq  保存

>crontab -l# m h dom mon dow command

10 5 * * * /public/lcf/autoapp_commit.sh

autoapp_commit.sh

#!/bin/bash

DIR="/public/autoAPP"

Add_File="/public/lcf/add_file.list"

Del_File="/public/lcf/del_file.list"

Time=`date +%Y%m%d%H%M`

LogFile="/public/lcf/$Time.log"

cd $DIR

# 判断是否有新加文件

svn st | grep "? \+" | sed "s/? \+//" > $Add_File

svn st | grep "! \+" | sed "s/! \+//" > $Del_File

add_num=`cat $Add_File | wc -l `

del_num=`cat $Del_File | wc -l `

if [ $add_num == 0 ];then

echo "no file add" >>$LogFile

else

echo "svn add" >>$LogFile

# 添加所有新文件

cat $Add_File | xargs svn add >>$LogFile

fi

if [ $del_num == 0 ];then

echo "no file delete" >>$LogFile

else

echo "svn delete" >>$LogFile

# 删除所有本地缺失的文件

cat $Del_File | xargs svn delete >>$LogFile

fi

# 提交

svn ci -m 'auto commit by script' --username svnmgr --password xxxxxx >>$LogFile

rm $Add_File $Del_File​ ​

linux svn自动提交,svn 定时自动提交相关推荐

  1. 【MySQL】Linux端-实现Mysql数据定时自动备份

    Linux端-实现Mysql数据定时自动备份 创建存放备份 sql 的文件夹 备份数据尽量存放在Linux单独挂载的磁盘上,保证数据可靠性.磁盘建议使用EXT4分区格式. [root@localhos ...

  2. linux mint回收站,Autotrash:定时自动删除旧垃圾的命令行工具

    Autotrash 用于自动删除旧的垃圾文件,它是一个命令行工具,通过 Autotrash 可以删除超过指定时间在回收站的文件,有了它,你不需要清空回收站或者是执行 SHIFT+DELETE 以清除文 ...

  3. python自动抽奖_Python定时自动参与抽奖助手抽奖

    打开localhost:8002的web管理端页面,此时应该已经可以看到数据请求了. 然后在手机上访问小程序,抽奖助手. 如果手机流量很杂影响筛选的话,可以在管理页面手动设置filter: 后续的步骤 ...

  4. jenkins + svn + maven +svn 实现当SVN提交代码后自动触发打包部署

    前言 主流的开发模式都是采用前后端分离的方式,我们作为coder在功能开发初期需要不断的迭代代码与前端进行联调,提供在容器中最新代码,虽然可以通过在编译器中打完包后在放到容器运行,但是显然这种方式是既 ...

  5. linux svn配置提交输入备注,linux下svn服务强制添加备注(注释)提交

    标签: linux下svn服务强制添加备注(注释)提交 Linux版本: line-height: 26px; white-space: normal; background-color: rgb(2 ...

  6. linux svn强制注释,svn强制提交时添加注释

    svn强制提交时添加注释 1.  需求 领导要求开发在提交代码时必须添加注释,经过查资料,实验,然后实现领导的要求. 2.  查看资料 参考svn文档,以及网上博客 通过查看资料,一步一步的实现脚本 ...

  7. 将项目代码上传至svn服务器,xcode 把项目代码提交到远程SVN服务器

    环境 xcode 7  Mac air xcode默认支持GIT源码管理工具,但现在想把代码提交到已有到SVN服务器上,步骤如下: 1,在safari中打开svn链接地址,信任证书,输入用户名密码 , ...

  8. svn的更新、合并、提交

    当本地文件没有改动,服务器文件改动的时候,更新会从服务器取文件覆盖当前文件 当本地文件有改动,服务器文件没改动的话,不会更新此文件 当本地文件有改动,服务器文件有改动的话,如果改动的部分不冲突,就会合 ...

  9. linux 程序定时重启tomcat,linux下实现tomcat定时自动重启

    tomcat自带的脚本中没有提供直接restart的模式,但是有start和shutdown两种模式.要实现restart模式,实际上只需要判断是否已经启动tomcat,若已经启动则限制性shutdo ...

最新文章

  1. Swift学习: 从Objective-C到Swift
  2. IP 网络性能的度量标准
  3. Android C/C++ 开发
  4. 夯实基础js - 语句篇
  5. 使用VS Code开发 调试.NET Core 应用程序
  6. 产品运营实战系列-产品设计从0到1全流程:以优惠券为例
  7. 二维有限体积 matlab,二维有限体积法计算热传导及源码.pdf
  8. AppWeb或云打分时,附加分相关问题
  9. 怎样写 Linux LCD 驱动程序
  10. 视频教程-SQL语句视频课程(进阶版)-Oracle
  11. js实现椭圆轨迹_利用js实现div画椭圆曲线运动特效代码
  12. 好压 v6.3.11130 绿色纯净版(编程必备软件)
  13. 心力:创业者和管理者如何在事与难中精进(附提升心力的12种方法)
  14. Linux使用Maven部署SpiderFlow爬虫平台
  15. 当C++遇到空指针异常......
  16. 上篇: php 微信公众号 基于Thinkphp3.2框架开发
  17. cj.exceptions.CJException: Access denied for user XX to database 问题解决记录
  18. 【GameMaker 极速入门】#1环境配置
  19. background-attachment: fixed
  20. 超级联盟战队,等待你的加入

热门文章

  1. 详解BSCI实验四:配置BGP
  2. 《Python for Data Analysis》之 Series
  3. nginx参数优化杂记
  4. 解决mac上mariadb不能远程访问的问题
  5. PHP的优点和缺点分别是什么,CSS的优点和缺点分别是什么
  6. python注解实现原理_Python3注解+可变参数实现
  7. python求无序列表中位数_python 实现在无序数组中找到中位数方法
  8. win7x64注册表显卡渲染速度_Geek3D GpuTest GUI(显卡测试软件)下载-Geek3D GpuTest GUI(显卡测试软件)免费版下载v0.7.0...
  9. java中的多态_Java中的多态
  10. 单片机值得学吗?会单片机能找什么工作?