当前位置: 首页 > news >正文

使用windows批处理,解决多个svn库提交和更新的需求

一 项目背景

虽然现在git用的越来越多,但我还是经常使用svn,因为使用Visual Svn server可以很容易搭建属于自己的svn库服务器,用于同步多台设备。现在租用一个云服务器,价格不高,用于搭建svn服务器足足够了。
但是要经常进入多个svn库进行提交和更新,效率还是有些低了,于是想起,写个windows批处理,点击一次,就完成所有工作,不就可以大大提高效率了吗?

二 准备工作

想要使用批处理完成svn命令,就需要安装svn时,选择命令行工具,如下:
在这里插入图片描述

因为默认是不安装的。
接下来就可以编写批处理脚本了。

三 具体步骤

1 创建批处理文件

比如,在e盘创建一个DoSvn.bat文件。
再创建一个DirList.txt,用于保存要处理的svn库目录。

2 编写批处理

在DoSvn.bat,编写代码如下:

@echo off
setlocal enabledelayedexpansionrem 设置根目录
set root_dir=e:\rem 循环更新目录并提交
for /f "delims=" %%a in ('type "e:\DirList.txt"') do (echo -------------------------------------------------------rem 显示当前目录echo %%acd "%%a"rem ---------------------------------rem 1、提交新增的内容svn add * --forcesvn ci -m " "rem ---------------------------------rem 2、提交已删除的内容set "deleted_files="rem 使用svn status命令获取状态,解析内容for /f "tokens=1* delims= " %%i in ('svn status') do (rem 如果第1列为!,将文件保存到删除列表if "%%i"=="!" (rem echo %%jset "deleted_files=%%j !deleted_files!"))if defined deleted_files (rem 删除文件svn delete !deleted_files!rem 提交更改svn commit -m " "echo deleted: !deleted_files!) rem ---------------------------------rem 3、更新svn update	cd %root_dir%	rem 确保删除 delFiles.txt 文件,且不提交if exist delFiles.txt (del delFiles.txt)
)
pauseendlocal

3 编写目录列表内容

e:\DirList.txt为目录列表,如下:

E:\code.c
……

需要输入完整路径。

4 测试

刚开始,可以仅在DirList.txt中,输入一个路径,用于测试。
全部正常后,再写多个路径,完成批量路径处理。

注意事项

  1. 此前的批处理,因为先更新,后提交,导致删除的文件,又被恢复了。如下:
    在这里插入图片描述
    之后改成先提交再更新的方式,解决了该问题。
  2. 初次运行脚本时,有时候会等比较久,或许提示需要先清除。后面就好了。

五 总结

编写这个批处理脚本,完成的主要功能如下:

  1. 遍历一个包含目录路径的文本文件。
  2. 对每个目录执行 SVN 操作,包括添加新文件、删除已缺失文件,提交这些更改。
  3. 更新目录以获取最新的版本。
    有了这个脚本,就不用每次手动挨个进目录点击提交和更新了,效率杠杠滴。
    这个批处理脚本,我也上传到资源了,赚个积分,实际上大家手动写文件也行,下不下载的无所谓。
    点击如下链接即可。
    svn配置管理:批量处理多个svn库目录,包括新增文件、提交删除文件、更新文件

http://www.mrgr.cn/news/75035.html

相关文章:

  • 论文1—《基于卷积神经网络的手术机器人控制系统设计》文献阅读分析报告
  • Python 获取PDF的各种页面信息(页数、页面尺寸、旋转角度、页面方向等)
  • Qt 监控USB设备的插入和移除
  • Springboot 微信小程序定位后将坐标转换为百度地图坐标,在百度地图做逆地址解析
  • 【IEEE/EI会议】第八届先进电子材料、计算机与软件工程国际学术会议(AEMCSE 2025)
  • 「 审稿答复 」如何写Response评论回复的“第一句”
  • 广州自闭症干预机构专注提供个性化服务
  • 8-类图建模与对象图测试
  • 4. 奖励函数设置
  • 详细介绍Transformer!
  • LeetCode100之删除链表的倒数第N个节点(19)--Java
  • halcon3D gen_image_to_world_plane_map的图像高精度拼接技术
  • 企业风险监控4.0时代,大家都在关心什么问题?这20+个QA为你揭晓!
  • 2024软件测试面试题(持续更新)
  • 38.安卓逆向-壳-smali语法2(条件语句和for循环)
  • CSR 和 SSR 分别是什么?
  • 力扣 LeetCode 459. 重复的子字符串(Day4:字符串)
  • UVa 11288 Carpool
  • 打造专业问答社区:Windows部署Apache Answer结合cpolar实现公网访问
  • Cocos Creator《星际征服者》3D实时对战战机类游戏
  • 基于Springboot+微信小程序的健康饮食小程序 (含源码数据库)
  • 飞牛云fnOS本地部署WordPress个人网站并一键发布公网远程访问
  • 什么?postman 还可以做性能测试?
  • C++的返回值在内存中的传递过程
  • 【微信小程序】关于小程序开发过程中的一些经验之谈,很有用!!
  • StableDiffusion系列教程 |SD提示词编写指南