我正在尝试git-svn
处理私有的shadowcat svn服务器。
git svn clone -s http://dev.catalystframework.org/repos/Catalyst/Catalyst-Plugin-ConfigLoader/
Initialized empty Git repository in /home/ecarroll/code/perl/foo/Catalyst-Plugin-ConfigLoader/.git/
Using higher level of URL: http://dev.catalystframework.org/repos/Catalyst/Catalyst-Plugin-ConfigLoader => http://dev.catalystframework.org/repos/Catalyst
什么不起作用?看起来http://dev.catalystframework.org/repos/Catalyst/Catalyst-Plugin-ConfigLoader/具有标准布局。
是否有一种明智的简单方法让git从svn回购中获取?
答案 0 :(得分:14)
我现在有点迟到回答Catalyst-Plugin-ConfigLoader项目已经迁移到Git,但是如果有人遇到与不同svn项目类似的问题,我会回答。
git svn
尝试通过搜索svn存储库的根目录并使用它而不是您提供的URL来提供帮助。我觉得很烦人,但幸运的是有一种解决方法:使用--no-minimize-url
选项。
来自git svn
文档(git help svn
):
--no-minimize-url
在跟踪多个目录时(使用
--stdlayout
,--branches
或--tags
选项),git svn
将尝试连接到根目录(或允许的最高级别) Subversion存储库。如果整个项目在存储库中移动,则此默认设置允许更好地跟踪历史记录,但可能会导致读取访问限制到位的存储库出现问题。传递--no-minimize-url
将允许git svn
按原样接受URL,而不尝试连接到更高级别的目录。默认情况下,当只跟踪一个URL /分支时,此选项处于关闭状态(这样做不太好)。
答案 1 :(得分:0)
我遇到了类似的问题并使用了--no-minimize-url选项。这使克隆成功,但缺少一半标签。事实证明,禁止克隆升级,意味着它无法看到之前发生的repo重命名。删除--no-minimize-url选项后,丢失的标签出现了。