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" ]; then
echo -e "${RED}错误:请指定要处理的根目录路径!${NC}"
echo -e "使用方法:$0 /path/to/your/projects"
exit 1
fi
SEARCH_ROOT="$1"
# 检查svn命令是否存在
if ! command -v svn &> /dev/null; then
echo -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" ]; then
AUTH_PARAMS="$AUTH_PARAMS --trust-server-cert"
fi
echo -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; do
wc_root=$(dirname "$svn_dir")
echo -e "处理工作副本: ${YELLOW}${wc_root}${NC}"
# 获取当前完整URL
old_full_url=$(svn info "$wc_root" 2>/dev/null | grep '^URL:' | awk '{print $2}')
if [ -z "$old_full_url" ]; then
echo -e "${RED}✗ 不是有效的SVN工作副本${NC}"
echo "----------------------------------------"
continue
fi
# 构建新URL(保留路径部分)
new_full_url="${old_full_url//${OLD_DOMAIN}/${NEW_DOMAIN}}"
# 执行relocate
svn relocate "$old_full_url" "$new_full_url" "$wc_root" $AUTH_PARAMS
if [ $? -eq 0 ]; then
echo -e "${GREEN}✓ 成功修改为: ${new_full_url}${NC}"
# 测试新URL是否可用
svn info "$wc_root" $AUTH_PARAMS >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo -e "${RED}⚠ 警告:新URL验证失败,请检查权限${NC}"
fi
else
echo -e "${RED}✗ 修改失败${NC}"
fi
echo "----------------------------------------"
done
echo -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 替换为你的实际项目根目录)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)