我需要将本地 SVN 工作副本从旧仓库:
https://wdmri-server:8443/svn/WDMaster/Table
切换到新仓库:
https://wdmri-server:8443/svn/WDMaster/Autobed-NoAIPosition
但在执行 svn switch
时遇到 树冲突(Tree Conflict),即使使用 --ignore-ancestry
仍然报错。此外,你还发现 svn add --force .
提交了 不必要的编译文件(如 bin/
、obj/
、.suo
等),希望清理仓库。
如果 svn switch
反复报错,建议 放弃切换,改用 全新检出:
# 1. 备份当前代码
xcopy /E /I "原目录" "备份目录"
# 2. 删除或重命名旧工作副本
ren "原目录" "原目录_old"
# 3. 检出新仓库
svn checkout https://wdmri-server:8443/svn/WDMaster/Autobed-NoAIPosition "新目录"
# 4. 将备份的代码复制到新目录
xcopy /E /I "备份目录\*" "新目录\"
# 5. 添加并提交代码
svn add --force .
svn commit -m "迁移代码到新仓库"
✅ 优点:完全避免冲突,适用于远程仓库是空的情况。
⚠️ 注意:需手动复制代码,但能确保数据安全。
如果本地无重要更改,可以强制切换:
svn switch --ignore-ancestry --accept theirs-full https://wdmri-server:8443/svn/WDMaster/Autobed-NoAIPosition
❌ 风险:如果远程仓库是空的,可能会 删除本地文件,慎用!
bin/
, obj/
)如果 svn add --force .
误提交了编译文件,可按以下步骤清理:
svn revert bin/ obj/ *.suo *.user -R # 取消添加
svn delete bin/ obj/ *.suo *.user -R # 从版本库删除
svn commit -m "移除编译生成文件"
svn:ignore
防止未来误提交svn propset svn:ignore "bin
obj
*.suo
*.user" .
svn commit -m "添加忽略规则"
或使用编辑器交互式设置:
svn propedit svn:ignore . # 添加要忽略的文件
svn switch
冲突。svn:ignore
→ 忽略 bin/
, obj/
, *.suo
等。svn switch
会失败?--ignore-ancestry
,如果本地有未提交的更改,仍可能冲突。svn:ignore
,忽略常见编译目录:svn propset svn:ignore "bin
obj
*.suo
*.user" .svn add --force .
,建议手动添加文件。svn delete
删除并提交:svn delete bin/ obj/ -R
svn commit -m "清理无用文件"问题 | 解决方案 | 推荐度 |
---|---|---|
切换仓库冲突 | 全新检出 + 手动复制 | ⭐⭐⭐⭐⭐ |
误提交编译文件 |
| ⭐⭐⭐⭐ |
预防未来误提交 | 设置 | ⭐⭐⭐⭐⭐ |
按此流程操作,可 安全迁移仓库 并保持 代码整洁! 🚀
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。