Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 与shell脚本的手工连续集成_Linux_Bash_Continuous Integration - Fatal编程技术网

Linux 与shell脚本的手工连续集成

Linux 与shell脚本的手工连续集成,linux,bash,continuous-integration,Linux,Bash,Continuous Integration,我为与shell脚本的小型持续集成做了一个临时解决方案。 它从svn更新,然后将文件复制到站点的根目录。 看起来是这样的 cd ... update svn cp -R ... ... 然后把它放到crontab中。 嗯,这对临时工来说很好用。解决方案,但它希望进行一些改进,并以某种方式定义svn已被更改(出现了新版本),并且仅在这种情况下复制文件(好吧,它与每分钟的连接复制文件使服务器工作变慢) 但我是linux的普通用户:( 因此,问题是: 如何使用bash脚本定义svn得到新的提交,

我为与shell脚本的小型持续集成做了一个临时解决方案。 它从svn更新,然后将文件复制到站点的根目录。 看起来是这样的

cd ...

update svn

cp -R ... ...
然后把它放到crontab中。 嗯,这对临时工来说很好用。解决方案,但它希望进行一些改进,并以某种方式定义svn已被更改(出现了新版本),并且仅在这种情况下复制文件(好吧,它与每分钟的连接复制文件使服务器工作变慢)

但我是linux的普通用户:(

因此,问题是:
如何使用bash脚本定义svn得到新的提交,并且仅在本例中进行更新和其他操作,如复制文件。

您可以在目录中执行“svn info”(并使用awk | grep |您最喜欢的工具)提取已签出内容的修订号。对复制到的位置执行相同操作。如果签出目录中的修订号高于目标目录中的修订号,则执行复制

假设您复制了所有内容,包括.svn目录

如果您排除了它们,那么您应该在更新之前输入“svn信息”,然后在更新之后再次输入,并比较这两个版本。

停止

你到底为什么要这么做

有了80个完全免费、超级容易安装的CI工具,你为什么要开始用shell脚本和cron来破解自己的工具呢

除非您希望提高脚本编写/cron技能,并希望将构建自己的CI作为一个有趣的小场景来使用,否则您只是在这里浪费时间