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

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

缘起


  • 在实际应用中,代码仓库要么使用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分钟即每小时执行一次
相关文章
|
人工智能 IDE Java
全面开测:AI智能编码辅助工具通义灵码
全面开测:AI智能编码辅助工具通义灵码
65155 7
全面开测:AI智能编码辅助工具通义灵码
|
5月前
|
安全 开发工具 git
【Git】Git 系统性使用指南(内含《核心Git命令速查表》)
这是一份全面、实用的Git系统性指南,涵盖基础配置、日常操作、分支管理、远程协作、撤销回退、标签与高级命令(如rebase、cherry-pick、bisect等),附带速查表、规范建议和最佳实践,适合开发者日常参考、团队协作及面试复习。
1333 3
|
网络架构 网络协议
如何查看路由器的mac和计算机的mac
如何查看路由器的mac和计算机的mac 一、查看路由器的mac     方法一: 直接看路由器的背面,如下图,即可看到MAC地址   打开命令提示符窗口,输入ipconfig,找到网关地址,如192.168.1.1 3 再在命令提示符窗口中输入 arp -a 找到对应的ip地址 192.168.1.1 后的地址即为无线路由MAC地址     二、查看计算机的mac       cmd命令窗口中输入ipconfig/all命令即可查看。
5270 0
|
11月前
|
消息中间件 JavaScript 关系型数据库
如何开发一套ERP(离散制造-MTO)系统(附架构图+流程图+代码参考)
本文介绍了面向离散制造-MTO(按订单生产)模式的ERP系统设计与实现方法。内容涵盖ERP系统定义、总体架构设计、主要功能模块解析、关键业务流程(订单到交付、BOM展开、MRP逻辑、排产等)、开发技巧(DDD、微服务、事件驱动)、参考代码示例、部署上线注意事项及实施效果评估。旨在帮助企业与开发团队构建高效、灵活、可扩展的ERP系统,提升订单交付能力与客户满意度。
|
7月前
|
人工智能 JavaScript Java
多 AI 协同 + SDD 编程实践:一个 AI 全流程交付实录
本文提出Spec-Driven Development(SDD)范式,以解决AI编码中“写得快但写不对”的痛点。通过OpenSpec工具实现规范先行、分阶段验证,并构建Claude+Codex+Gemini多模型协同工作流,确保复杂业务(如跨境保险)下代码的高质量、可复现与可靠交付。(239字)
多 AI 协同 + SDD 编程实践:一个 AI 全流程交付实录
|
机器学习/深度学习 数据采集 数据可视化
使用Python实现深度学习模型:智能舆情监测与分析
【8月更文挑战第16天】 使用Python实现深度学习模型:智能舆情监测与分析
1186 1
|
11月前
|
运维 Linux 数据库
基于 Docker 部署 n8n 指南,新手一看就会
本教程详解如何通过 Docker 快速部署开源自动化工具 n8n,适合新手快速上手。内容涵盖官方部署步骤、常见难点及第三方一键部署方案,助你高效搭建自动化工作流平台。
2372 6
|
小程序 安全
如何提升审核通过率?|阿里云短信服务
在使用阿里云短信服务前,企业必须完成资质审核、短信签名审核和短信模板审核三大环节。审核不通过将直接影响短信发送能力。本文系统梳理了各环节的审核逻辑与高频驳回原因,并给出针对性优化建议。
1283 15
|
人工智能 前端开发 架构师
2025年前端局势分析,我该不该转行?
2024年,前端领域经历了快速变化,AIGC的兴起和市场HC减少使得前端工程师面临挑战。尽管AI工具如通义灵码和Cursor能高效生成代码,但AI无法完全取代前端工程师,因其缺乏逻辑、沟通和创新能力。前端工作不仅限于编码,还包括需求分析、代码评审等。未来,前端不会“死亡”,而是持续演变。面对大环境的压力,提升综合能力、拥抱变化、持续学习和保持身心健康是关键。转型方向包括升管理、做架构师或转讲师等。稳住2025年,需适应变化、不断学习并探索更多可能性。
2964 16