为什么git-svn会随机将我的根目录更改为父目录?

时间:2010-09-20 23:09:42

标签: svn git git-svn

我正在尝试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回购中获取?

2 个答案:

答案 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选项后,丢失的标签出现了。