我想实现的是写一个 shell 脚本或者 python 脚本来定时检测本地和远程 git 版本差异,如果有差异就 git pull 强制覆盖本地,然后重启服务,如果重启次数过多则恢复上一个版本(这个功能待定==)。
如果用 Python 做 首先想问的是 脚本运行 shell 命令 通过 sudo 是可以获得 root 权限来操作么 因为我操作 src 目录时 非 root 权限 就不允许。。。 如果是 shell 来做,我想问的是 shell 如何判断 git 本地版本和远程版本差异呢(听朋友说是 将 git log 总本地 A 和远程 B 比较结果字符串截取判断 不太明白)
想问一下 有没有类似这个功能的轮子呢 我就懒得自己写了。
1
SoloCompany 2017-06-09 23:22:31 +08:00 1
你 python 最终不还是得调用命令行才能访问到 git
一般来说没有比较本地和远程这种说法( svn 思维) git fetch git rev-parse HEAD @{u} | uniq | wc -l 第二行输出 1 就是没有变更,输出 2 就是有变更 |
2
zuolan 2017-06-09 23:49:20 +08:00
Git hooks 不好用吗?
|
3
tlday 2017-06-10 00:00:07 +08:00 via Android
jenkins
|
4
geelaw 2017-06-10 00:04:53 +08:00
简单的做法难道不是不判断么?直接 git pull,反正没有更新就不会产生变化。
|
5
chairuosen 2017-06-10 00:16:50 +08:00 1
不用定时检测,webhook 主动通知,写个脚本 pull 代码构建就行了
|
6
slysly759 OP @chairuosen awesome !!! 这就是我想要的 看起来搭建还有点小麻烦
|
7
slysly759 OP @tlday 我查了一下这是针对 java 的 如果我是 Python 项目 应该没有什么影响吧 需要做什么特殊配置喵
|