我正在从SVN迁移到git,我正在尝试使用git svn包装器svn2git(https://github.com/nirvdrum/svn2git)迁移我现有的SVN存储库。我正在使用svn2git,因为它保持分支完整。我的最终目标是将项目放到github上。
当通过svn2git执行克隆时,执行在尝试访问文件夹时停止:
svn/https%3A
这应该是一个分支 - 但是我无法在存储库中看到它。我假设在某个阶段我不小心命名了一个以https开头的分支:(认为它需要完整的SVN路径),但是现在我不确定如何再次删除它,因为它无法找到。
有没有办法使用svnadmin查找和删除它?
答案 0 :(得分:2)
花了好几个小时后,尝试了各种方法来执行转换(我没有尝试过kbb提出的解决方案,因为我在找到答案之前没有看过它),我最后放弃了git-svn并且继续第一次转换整个存储库的subgit,没有任何麻烦。
我不想通过互相投球来进入热水,但我会说我对使用subgit的经验远远好于使用git-svn或者包装器svn2git。
似乎git-svn在遇到subversion存储库中的不规则时会抛出一个错误,但是subgit似乎自己解决了,在这种情况下我更喜欢这个因为我从SVN迁移到Git,所以任何时候我我可以避免花钱修补SVN存储库,我很乐意保存。
我在subgit安装指南中没有看到的唯一一件事(我可能已经错过了)是你应该在执行安装时让svn服务器脱机,否则你最终会得到'中断'(当有人访问存储库,这会停止安装。
答案 1 :(得分:0)
已经很长时间了,我为没有测试出来而道歉... 但理论上你可以用
删除罪犯 git branch -D https%3A
然后重启:
svn2git --rebase
如果这不起作用,我会尝试使用svndumpfilter删除该分支。您必须使用svnadmin dump转储存储库,然后对其进行过滤:
svndumpfilter exclude branches/https%3A < dumpfile > filtered-dumpfile
然后你可以将filtered-dumpfile加载到一个新的svn repo然后对它做一个svn2git。