Ubuntu下定时提交代码到SVN

有两个用途,一是偷懒不用去提交代码,二是在远程服务器上使用以作定期备份。

sudo gedit /etc/crontab

打开后加入这行

0 * * * * my_user_name    my_script_path

表示每个整点以my_user_name身份执行my_script_path。这里最好是使用当前的用户名,修改掉默认的root,否则可能以root身份会提交失败。详情请询问百度crontab的用法。

然后script的内容为:

#!/bin/bash
cd $my_code_path
# 添加所有新文件
svn st | grep "? \+" | sed "s/? \+//" | xargs svn add
# 删除所有本地缺失的文件
svn st | grep "! \+" | sed "s/! \+//" | xargs svn delete
# 提交
svn ci -m 'auto commit by script'

也可以不修改/etc/crontab,而是把脚本 复制 或 软链接 到 /etc/cron.hourly/ 下,脚本应用su切换用户,改成

#!/bin/bash
su - your_user_name <<EOF
cd $my_code_path
# 添加所有新文件
svn st | grep "? \+" | sed "s/? \+//" | xargs svn add
# 删除所有本地缺失的文件
svn st | grep "! \+" | sed "s/! \+//" | xargs svn delete
# 提交
svn ci -m 'auto commit by script'
EOF

默认是每个小时的第17分钟执行。类似的,还有weekly、monthly、daily 文件夹。

关于定时备份服务器上的网页文件,会有两种意见,其优劣如下:

  • 脚本定时commit(每个整点):开发人员可以随时修改服务器上的文件并立刻生效,不用关心备份工作。
  • 脚本定时update(每隔30秒):可防止文件多人同时修改的冲突;需要本地搭建服务器环境,调试ok后才上传,否则commit后都得等一段时间,服务器才用上新代码。

以人为本的工作环境就是让人能偷懒就偷懒、让做事能便捷就便捷。能保证不会多人同时修改而产生冲突的话,选择第一种~~~

时间: 2024-09-29 06:11:26

Ubuntu下定时提交代码到SVN的相关文章

Ubuntu下定时提交代码到SVN服务器的Shell脚本分享_linux shell

有两个用途,一是偷懒不用去提交代码,二是在远程服务器上使用以作定期备份. 复制代码 代码如下: sudo gedit /etc/crontab 打开后加入这行 复制代码 代码如下: 0 * * * * my_user_name    my_script_path 表示每个整点以my_user_name身份执行my_script_path.这里最好是使用当前的用户名,修改掉默认的root,否则可能以root身份会提交失败.详情请询问百度crontab的用法. 然后script的内容为: 复制代码

关于MyEClipse6.5版本提交代码到svn服务器

问题描述 关于MyEClipse6.5版本提交代码到svn服务器 如图,就修改了一个jsp文件,上传时就是这样,99%就不再动了 解决方案 是网络线路的问题吧,你在文件夹里直接提交试试

ubuntu 下编译C++代码出现的问题解决_C 语言

同样的代码, 同样的makefile 文件 1)在mac 下顺利编译: 2)在新的ubuntu 下,编译失败: 报错信息: string.h 中各种 函数找不到: makefile: 复制代码 代码如下: //[这是后来添加的 CL_HEADER := -I/usr/include/ CL_LIBS := -L/usr/lib/ //后来添加的] clcp: main.o cl_string_utils.o cl_log.o g++ ${CL_HEADER} ${CL_LIBS}  -o clc

配置- 在ubuntu下开发stm32

问题描述 在ubuntu下开发stm32 我不想用IAR和MKD集成环境,在ubuntu下编译stm32代码,编译环境怎么配置?需要哪些工具 解决方案 正在用ubuntu不过没做过stm32,不过听说用eclipse加插件就可以. 解决方案二: 需要搭建交叉编译环境,自己编写工程管理文件Makefile.链接文件ld 和启动代码~ gcc在4.3版本下加入了对cortex-m3的支持,所以上面的命令用 --g 4.3.1-r1参数,可以指定了4.3.1-r1版的GCC~ Keil.IAR在简化开

解决ubuntu下安装mysql使用service 无法启动问题

今天从ubuntu 下安装mysql  代码如下 复制代码 apt-get install mysql-server 启动的时候发现 service mysql start Rather than invoking init scripts through /etc/init.d, use the service(8) utility, e.g. service mysql start   Since the script you are attempting to invoke has bee

解决SVN提交代码出现目录过期问题

前言 SVN(Subversion简称)是一个开源的版本控制系统,很多开发者都会用到它,但是使用不当会给你带来不必要的困扰,我就是其中一位,以前都是按照正确流程操作,后面使用久了,就会忽略掉一些使用细节,这也是导致问题出现的因素之一. 问题 当你满怀激动的心情终于可以提交修改的代码时,SVN蹦出一条信息提示: Description : Commit failed (details follow):Status : 155011Description : Directory '/Users/su

myeclipse用svn插件提交代码时,svn控制台的输出信息有没有保存下来,保存在哪儿?

问题描述 myeclipse用svn插件提交代码时,svn控制台的输出信息有没有保存下来,保存在哪儿? myeclipse用svn插件提交代码时,svn控制台的提交输出信息有没有保存下来,保存在哪儿? 解决方案 右键VisualSVN的仓库里的项目-->查看,就可以在浏览器看到每一次提交的源码. 解决方案二: Windows 下 VisualSVN 强制提交时写入日志信息 设置方法一: 在版本库的路径下比如是 C:Repositoriestesthooks 可以看到 pre-commit.tmp

ubuntu下SVN服务器安装配置 下的svn 常用命令

ubuntu下SVN服务器安装配置 一.SVN安装1.安装包$ sudo apt-get install subversion 2.添加svn管理用户及subversion组$ sudo adduser svnuser$ sudo addgroup subversion$ sudo addgroup svnuser subversion   3.创建项目目录$ sudo mkdir /home/svn$ cd /home/svn$ sudo mkdir fitness$ sudo chown -

svn提交代码冲突,解决后我标记已经解决然后提交,代码里面都是图片上的标记,求解!!!

问题描述 解决方案 解决方案二:这个不像是SVN的问题,把你提交的代码让其他人下载下来看看有没有这个现象这个像你是eclipse的视图模式的选择问题,用其他编辑器打开试试看解决方案三:Eclipse中换行.TAB.空格表示/不表示的设定而已,代码和SVN没问题