2009-06-30 121 views
4

我在SVN中有一个项目,我试图用git-svn克隆它。我遵循git-svn docs中的示例。git svn clone没有检出所有目录

git svn clone svn+ssh://host/path/trunk project_name 

该命令完成时没有错误消息,但克隆的项目并未包含所有目录作为SVN中的项目。

在顶层,我的SVN项目有...

$ svn ls svn+ssh://host/path/trunk 
README 
Rakefile 
app/ 
config/ 
db/ 
doc/ 
lib/ 
log/ 
public/ 
script/ 
test/ 
tmp/ 
vendor/ 

克隆后,当地我有...

README 
Rakefile 
app 
config 
doc 
public 
script 
test 

还有一些子目录丢失。


UPDATE

实验克隆同一台主机上的另一个项目。似乎工作正常。这个有什么特别之处?除了在克隆之前创建它并将其导入SVN之外,我无法想到任何东西。这会有所作为吗?


尝试创建一个全新的项目,导入到SVN和克隆。得到相同的结果,相同的丢失的dirs。

回答

1

你确定你的SVN没有使用一些svn:external(见评论)吗?
对过程的更多细节的文章"moving from svn to git"

svn-git在真的应该以某种方式提醒你,它不支持获取的外部。
我通过注意到svn log没有检查这些文件,然后看到我做了一个干净的svn checkout,发现它正在为供应商/插件目录获取外部资源时看到。

因此,我决定只是逐字拉入vendor/plugins目录,取消外部引用,并在升级时转移到git子模块。
我真正想做的事,但没有看到如何,是引用插件代码为HTTP URL,并保持作为一个子模块,这样我就拥有一个方便的参考源位置和修订

+0

谢谢。我100%肯定这不会发生在这里。我会查看链接。 – Ethan 2009-06-30 19:35:18

+0

@Ehan:好的,我离开帖子了解情况。如果找到根本原因,您可以发布自己的答案,并将其选为官方答案。 – VonC 2009-06-30 19:36:58

+0

感谢您的帮助。我想我需要做一些阅读并获得对git工作原理的更好的一般理解。 – Ethan 2009-07-01 04:07:13

1

你可以尝试

svn2git

git svn clone svn+ssh://host/path project_name --trunk=trunk/* 

有某种形式的混帐1.6+深克隆的,但我不知道如果这是正确的语法