使用svn2git将SVN新提交合并到Azure Repos Git时出现错误
解决svn2git rebase时的git-svn版本冲突问题
问题原因
报错核心是git-svn旧版本元数据与当前环境不兼容,导致svn2git无法正常执行rebase操作。
解决步骤
- 先备份当前Git仓库,避免操作失误丢失数据:
cp -r your-git-repo your-git-repo-backup - 进入Git仓库目录,清理旧的git-svn元数据:
cd your-git-repo rm -rf .git/svn - 重新用匹配第一次迁移的参数执行rebase(保留
--no-minimize-url、--exclude等必要参数):svn2git SVN_REPOSITORY_URL --no-minimize-url --notrunk --nobranches --notags --metadata --authors --exclude 'EXCLUDE_LIST' --rebase -v - 若上述步骤仍报错,尝试手动关联git-svn后再合并:
- 初始化git-svn关联:
git svn init SVN_REPOSITORY_URL --no-minimize-url --exclude 'EXCLUDE_LIST' - 同步SVN最新提交:
git svn fetch - 将SVN提交合并到当前Git分支(根据实际分支调整,无trunk则对应SVN目标路径):
git rebase origin/trunk
- 初始化git-svn关联:
- 完成合并后,推送到Azure Repos:
git push origin your-branch
注意事项
- 确保
--authors文件路径和第一次迁移时一致,避免提交者信息匹配失败。 - 清理元数据前务必确认仓库已备份,防止数据丢失。
内容的提问来源于stack exchange,提问作者Preety Mishra
相关产品推荐
相关产品推荐

