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

svn域名更换,批量修改项目svn地址(linux)

1、创建脚本 svn_batch_relocate_auto.sh

#!/bin/bash# SVN批量域名修改脚本(自动认证版)
# 使用方法:./svn_batch_relocate_auto.sh /path/to/root/dir# 配置区(请修改以下变量)
OLD_DOMAIN="old.svn.domain.com"         # 旧域名(不含协议)
NEW_DOMAIN="new.svn.domain.com"      # 新域名(不含协议)
PROTOCOL="svn"                       # 协议类型(svn/http/https)
SVN_USER="your_username"             # SVN用户名
SVN_PASS="your_password"             # SVN密码
SVN_TRUST_CERT="yes"                 # 是否信任证书(https时有效)# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color# 检查参数
if [ -z "$1" ]; thenecho -e "${RED}错误:请指定要处理的根目录路径!${NC}"echo -e "使用方法:$0 /path/to/your/projects"exit 1
fiSEARCH_ROOT="$1"# 检查svn命令是否存在
if ! command -v svn &> /dev/null; thenecho -e "${RED}错误:未找到 svn 命令,请确保已安装Subversion!${NC}"exit 1
fi# 准备认证参数
AUTH_PARAMS="--non-interactive --username $SVN_USER --password $SVN_PASS"
if [ "$PROTOCOL" = "https" ] && [ "$SVN_TRUST_CERT" = "yes" ]; thenAUTH_PARAMS="$AUTH_PARAMS --trust-server-cert"
fiecho -e "${YELLOW}开始批量修改SVN工作副本域名...${NC}"
echo -e "旧域名: ${PROTOCOL}://${OLD_DOMAIN}"
echo -e "新域名: ${PROTOCOL}://${NEW_DOMAIN}"
echo -e "搜索根目录: ${SEARCH_ROOT}"
echo -e "----------------------------------------"# 查找所有.svn目录并处理
find "$SEARCH_ROOT" -type d -name ".svn" | while read svn_dir; dowc_root=$(dirname "$svn_dir")echo -e "处理工作副本: ${YELLOW}${wc_root}${NC}"# 获取当前完整URLold_full_url=$(svn info "$wc_root" 2>/dev/null | grep '^URL:' | awk '{print $2}')if [ -z "$old_full_url" ]; thenecho -e "${RED}✗ 不是有效的SVN工作副本${NC}"echo "----------------------------------------"continuefi# 构建新URL(保留路径部分)new_full_url="${old_full_url//${OLD_DOMAIN}/${NEW_DOMAIN}}"# 执行relocatesvn relocate "$old_full_url" "$new_full_url" "$wc_root" $AUTH_PARAMSif [ $? -eq 0 ]; thenecho -e "${GREEN}✓ 成功修改为: ${new_full_url}${NC}"# 测试新URL是否可用svn info "$wc_root" $AUTH_PARAMS >/dev/null 2>&1if [ $? -ne 0 ]; thenecho -e "${RED}⚠ 警告:新URL验证失败,请检查权限${NC}"fielseecho -e "${RED}✗ 修改失败${NC}"fiecho "----------------------------------------"
doneecho -e "${GREEN}批量修改完成!${NC}"

2、赋权

chmod -R 777 svn_batch_relocate_auto.sh

3、执行

./svn_batch_relocate.sh /path/to/your/projects

(将 /path/to/your/projects 替换为你的实际项目根目录) 

相关文章:

  • 可以做免费的网站吗产品营销策略
  • 陕西高端品牌网站建设免费网站的软件
  • 织梦网站维护html网页制作用什么软件
  • 开源企业网站百度手机管家
  • 作风建设网站百度快照推广效果怎样
  • 17网站一起做武汉推广系统
  • FineBI(二)- 数据导入
  • AI时代工具:AIGC导航——AI工具集合
  • day041-web集群架构搭建
  • 阿里最新开源:Mnn3dAvatar 3D数字人框架, 无需联网,本地部署可离线运行,支持多模态实时交互
  • Docker 报错“x509: certificate signed by unknown authority”的排查与解决实录
  • CentOS下安装JDK17
  • CentOS 7 编译安装Nginx 1.27.5完整指南及负载均衡配置
  • Luckysheet Excel xlsx 导入导出互相转换
  • RSS解析并转换为JSON的API集成指南
  • 关键领域软件工厂的安全中枢如何全面升级供应链检测能力
  • CentOS 7 通过YUM安装MySQL 8.0完整指南
  • Redis的渐进式hash和缓存时间戳深入学习
  • PYTHON从入门到实践4-数据类型
  • 深入JVM:从零到实战,解锁Java性能与调优的终极武器
  • doris_工作使用整理
  • 记录某企业存储型XSS漏洞从发现到数据外泄全路径分析
  • Python 数据分析与可视化 Day 6 - 可视化整合报告实战
  • logback 日志不打印
  • uni-app项目实战笔记24--uniapp实现图片保存到手机相册
  • WEB安全--Java安全--jsp webshell免杀1