【开发工具】如何自动更新本地仓库代码(一)

简介: 【开发工具】如何自动更新本地仓库代码(一)

缘起


  • 在实际应用中,代码仓库要么使用svn、要么使用git。为了开发时可以使用最新代码,经常需要将本地代码与服务器代码保持一致,手动操作固然可行,但可以有更好的选择;


  • 可利用定时机制,定时从svn或git服务器更新代码,实际操作中,需要解决两个问题:定时、更新代码。


Windows下的定时问题


利用windows自带“任务计划程序”


  • windows管理工具——>任务计划程序——>创建任务进入定时任务



- 创建任务中,常规选项卡中,建议勾选不管用户登陆和不存储密码选项:



  • 建立触发器,对应触发方式,可一次,也可每天每周这种:



  • 指定具体的操作,如执行某个bat文件:



schtasks


  • 计划命令和程序以定期或在特定时间运行,在计划中添加和删除任务,启动和停止按需任务,以及显示和更改计划任务。


  • schtasks.exe工具与控制面板中的 “计划任务” 执行相同的操作。 可以将这些工具一起使用,并且可以互换使用。


schtasks /create /tn "test" /tr "\"C:\svn update\code-update.bat"" /sc HOURLY /mo 1 


at命令


  • 从Win8开始不再支持at命令;


  • at仅能执行一次,无法周期执行;


vbs脚本


  • 下面是一个简单的例子,每小时执行一次code-update.bat脚本,其他定时情况可参考:


Set ws=wscript.createobject("wscript.shell")
dim bat
'svn-update.bat即为更新本地代码的bat脚本,默认与当前脚本存储在同一目录下
bat="cmd.exe /c code-update.bat"
do
'0表示不显示窗口,1显示,调试用
ws.run bat,0
'每小时执行一次
wscript.sleep 3600000
echo begin next execute
loop


python语言


  • 可使用Python 实现定时任务,实际有很多种,常见下面几种:


循环 sleep


threading模块中的Timer


使用schedule模块


APScheduler定时框架


Celery分布式系统


  • 这里仅提供一个使用schedule的例子:


import datetime
import schedule
import time
def code-update():
    #仅举例做定时任务,不做实际的更新动作
    print('Begin to update local code')
def tasklist():
    #创建一个按1小时的间隔执行任务
    schedule.every(3600).seconds.do(code-update)
    #每1分钟检查一次
    while True:
        schedule.run_pending()
        time.sleep(60)
#清空任务
schedule.clear()
#开始执行
tasklist()


Linux下的定时问题



  • 以crontab为例来说明,每小时执行一次代码更新动作:


*/60  * * * * code-update.sh #每60分钟即每小时执行一次
相关文章
|
20天前
|
前端开发 JavaScript 开发工具
从零开始:构建、打包并上传个人前端组件库至私有npm仓库的完整指南
从零开始:构建、打包并上传个人前端组件库至私有npm仓库的完整指南
141 0
|
1月前
|
Java Shell 开发工具
git集成IDEA,托管项目实现版本管理
git集成IDEA,托管项目实现版本管理
31 0
|
3月前
vscode——devtools源码修改的内容如何和本地代码同步
vscode——devtools源码修改的内容如何和本地代码同步
38 4
|
机器学习/深度学习 人工智能 Java
《IDEA 2023常用插件安装与全局配置教程大全》——提升你的开发效率
《IDEA 2023常用插件安装与全局配置教程大全》——提升你的开发效率
1065 0
|
6月前
|
IDE 小程序 前端开发
1月开发者日回顾|IDE性能分析工具即将上线,lifetimes等多个自定义组件参数更新
1月开发者日回顾|IDE性能分析工具即将上线,lifetimes等多个自定义组件参数更新
103 11
|
XML Java 应用服务中间件
安装使用IDEA,修改样式,配置服务,构建Maven项目(超级详细版)
安装使用IDEA,修改样式,配置服务,构建Maven项目(超级详细版)
77 0
|
数据可视化 程序员 测试技术
Gitlab上手指南(六)|如何利用vscode工具快速的解决代码冲突
相信很多用git的程序员对于git冲突都很恐惧。当你项目马上要上线,测试让你把主分支的代码合并一下,要做一个回归测试,然后你合并的时候,一堆冲突代码,直接让你头皮发麻。到底应该处理哪一个冲突,哪一段代码
4668 1
|
消息中间件 JavaScript 小程序
针对 jar 和 vue 的一键自动化部署工具,界面友好,操作简单(已开源)
针对 jar 和 vue 的一键自动化部署工具,界面友好,操作简单(已开源)
|
存储 JavaScript 前端开发
针对 jar 和 vue 的一键自动化部署工具,界面友好,操作简单(已开源)2
针对 jar 和 vue 的一键自动化部署工具,界面友好,操作简单(已开源)2
|
网络安全 开发工具 数据安全/隐私保护
iOS开发 - 最简洁的用命令行提交代码到Github,加详细说明
iOS开发 - 最简洁的用命令行提交代码到Github,加详细说明
145 0
iOS开发 - 最简洁的用命令行提交代码到Github,加详细说明