0

我正在从 SVN 迁移到 git,我正在尝试使用 git svn 包装器 svn2git ( https://github.com/nirvdrum/svn2git ) 迁移我现有的 SVN 存储库。我正在使用 svn2git,因为它保持分支完好无损。我的最终目标是将项目放到 github 上。

通过 svn2git 执行克隆时,当它尝试访问文件夹时执行停止:

svn/https%3A

这应该是一个分支 - 但是我在存储库中看不到它。我假设在某个阶段我不小心命名了一个以 https 开头的分支:(认为它需要完整的 SVN 路径),但是现在我不确定如何再次删除它,因为它找不到。

有什么方法可以使用 svnadmin 查找和删除它吗?

4

2 回答 2

2

在花费了几个小时之后,尝试了各种执行转换的方法(我没有尝试 thekbb 提出的解决方案,因为在找到答案之前我没有看到它),我最终放弃了 git-svn 并使用了转换的 subgit整个存储库第一次,没有任何麻烦。

我不想在这里互相推诿,但我会说我对 subgit 的体验比使用 git-svn 或包装器 svn2git 的体验要好得多。

似乎 git-svn 在 subversion 存储库中遇到异常时会抛出错误,但是 subgit 似乎会自行解决,在这种情况下我更喜欢这样做,因为我正在从 SVN 迁移到 Git,所以任何时候我都可以避免花费修补 SVN 存储库是我很乐意节省的时间。

我在 subgit 安装指南中没有看到的唯一一件事(我可能错过了)是您应该在执行安装时使 svn 服务器脱机,否则您最终会出现“中断”(当有人访问存储库)停止安装。

于 2013-02-06T06:35:13.753 回答
0

已经很长时间了,我很抱歉没有对此进行测试......但理论上你可以删除违规者

git branch -D https%3A

然后重新启动:

svn2git --rebase

如果这不起作用,我会尝试使用svndumpfilter删除该分支。您必须使用svnadmin dump转储存储库,然后对其进行过滤:

svndumpfilter exclude branches/https%3A < dumpfile > filtered-dumpfile

然后,您可以将过滤后的转储文件加载到新的 svn 存储库,然后对其执行 svn2git。

于 2013-02-05T23:55:39.440 回答