diff --git a/src/programming/linux/Linux_Mint/SSH隧道访问SVN.md b/src/programming/linux/Linux_Mint/SSH隧道访问SVN.md index c512cab..38c4b62 100644 --- a/src/programming/linux/Linux_Mint/SSH隧道访问SVN.md +++ b/src/programming/linux/Linux_Mint/SSH隧道访问SVN.md @@ -338,3 +338,73 @@ sudo iptables -A INPUT -p tcp --dport 48080 -j DROP > 这是在类似"只能通过某台中间机访问 SVN"情况下的最佳实践。 --- + +## 十一 SVN 仓库地址变更(Relocate) + +当 SVN 服务器地址发生变化(如 IP 变更、端口变更或域名变更)时,需要使用 `svn relocate` 命令更新本地工作副本的仓库地址,而无需重新检出代码。 + +### 11.1 使用命令行 Relocate + +如果你习惯使用终端(CMD, PowerShell, Bash),可以使用 `svn relocate` 命令。 + +**步骤**: + +1. 打开终端,`cd` 进入你的项目目录 +2. 执行以下命令: + +```bash +svn relocate https://10.6.220.216:48080/svn/houtai/ https://10.6.221.149:48080/svn/houtai/ +``` + +**参数说明**: +- 第一个 URL:旧的仓库地址 +- 第二个 URL:新的仓库地址 + +或者,如果你已经在项目根目录下,通常只需要简写新地址: + +```bash +svn relocate https://10.6.221.149:48080/svn/houtai/ +``` + +### 11.2 验证 Relocate 是否成功 + +```bash +svn info +``` + +查看输出中的 `URL:` 字段是否已更新为新地址。 + +### 11.3 IDEA 中 Relocate + +如果你使用 IntelliJ IDEA: + +1. 打开项目,点击菜单 `VCS` → `Subversion` → `Relocate` +2. 在弹出的对话框中: + - **From URL**:旧地址 + - **To URL**:新地址 +3. 点击 **OK** 完成切换 + +### 11.4 注意事项 + +| 注意点 | 说明 | +| :--- | :--- | +| **先提交本地修改** | relocate 前确保没有未提交的更改,避免冲突 | +| **备份工作副本** | 重要项目建议先备份,防止意外 | +| **检查权限** | 新地址需要相同的 SVN 认证权限 | +| **SSL 证书** | 如果新地址证书不同,需要重新信任 | +| **Relocate vs Switch** | Relocate 用于服务器地址变更;Switch 用于在同一仓库内切换分支 | + +### 11.5 常见问题 + +**Q: 提示 "Repository UUID mismatch"?** + +A: 表示新旧地址指向的仓库不是同一个。确认地址是否正确,或者是否需要重新检出。 + +**Q: Relocate 后无法更新?** + +A: 检查: +- 新地址是否可访问 +- 认证信息是否正确 +- 防火墙是否放行了新端口 + +---