如何通过git-svn获取新增权限的SVN代码?git svn rebase失效求助
git-svn 无法拉取新增权限的SVN代码解决方案
问题原因
git-svn依赖SVN客户端的认证缓存,之前权限不足时的访问拒绝状态会被缓存;同时git-svn本地元数据可能留存了路径不可访问的记录,导致权限放开后仍无法拉取对应代码。
解决步骤
清理SVN认证缓存
不同系统操作如下:- Windows:删除
%APPDATA%\Subversion\auth下的所有文件 - macOS/Linux:执行
rm -rf ~/.subversion/auth/*
这一步会清除旧的权限验证记录,让SVN重新获取当前有效的权限信息。
- Windows:删除
重置git-svn追踪状态
- 先查看本地git仓库最后一次成功同步的SVN版本号:
git svn log --limit 1,记录输出中的版本号(比如r1234) - 执行重置命令:
git svn reset -r 1234(替换成实际版本号) - 重新执行同步:
git svn rebase
- 先查看本地git仓库最后一次成功同步的SVN版本号:
检查忽略配置
确认.gitignore和.git/svn/ignore文件中没有忽略新增权限的代码路径,如果有,删除对应的忽略规则后重新同步。针对特定路径手动同步(可选)
如果仅需同步某一个新增权限的目录,可直接执行:git svn fetch <SVN目标目录的完整URL>,完成后将fetch到的内容合并到本地分支即可。
内容的提问来源于stack exchange,提问作者HaroldCC
相关产品推荐
相关产品推荐

