git svn克隆导致目录为空

git svn克隆导致目录为空,git,svn,Git,Svn,我有一个具有项目结构的svn存储库: /root/projectA/trunk /root/projectA/branches /root/projectA/tags /root/projectB/trunk /root/projectB/branches /root/projectB/tags 我想克隆projectA。当我跑步时: git svn clone -r <revision number>:HEAD <url>/root/projectA git s

我有一个具有项目结构的svn存储库:

/root/projectA/trunk
/root/projectA/branches
/root/projectA/tags

/root/projectB/trunk
/root/projectB/branches
/root/projectB/tags 
我想克隆projectA。当我跑步时:

git svn clone -r <revision number>:HEAD <url>/root/projectA
git svn克隆-r:HEAD/root/projectA

我没有收到任何错误,并且在新的projectA目录下创建了一个git存储库。但是,目录是空的。我错过了soemthing吗?

我无法检查这是否有效,但请尝试:

git svn clone --stdlayout <url>/root/projectA/
git svn克隆--stdlayout/root/projectA/

下面的命令完成了此任务:

  git svn clone -r HEAD <url>/root/projectA 
git svn克隆-r HEAD/root/projectA

我也遇到了同样的问题,通过使用--no metadata参数解决了这个问题。在你的情况下,这相当于

git svn clone -r <revision number>:HEAD <url>/root/projectA --no-metadata
git svn clone-r:HEAD/root/projectA——没有元数据

如果使用HTTP或HTTPS传输(即存储库URL以HTTP[s]开头),则需要提供有效的SVN用户名

git svn clone -s https://svn.example.com/root/projectA --username <SVN username>
git svn克隆-shttps://svn.example.com/root/projectA --用户名
-s是--stdlayout的别名


但是,我只需指定一次--username选项,后续调用就可以在没有它的情况下工作。我猜它会缓存用户名。

也有类似的问题,在目录中执行'git reset--hard HEAD'似乎会创建文件

git svn clone -s https://svn.example.com/root/projectA --username <SVN username>

.git/objects相当大,所以我猜这些文件是从svn导入git的,它们只是没有签出或其他什么。

我的问题是使用
-s
--stdlayout
,因为我的svn repo没有标准布局(主干、分支、标记)。

在我的例子中,克隆操作未正确完成
git svn clone
将在签出过程中中途失败。一旦我解决了这个问题,它会在克隆操作后自动执行签出操作——不再有空文件夹

[更新] 以下是在我的案例中起作用的:

尝试
git svn克隆--为我保留空目录
失败。在搜索过网络后,我发现,其中部分内容是:

这部分有点烦人。从v1.7.7开始,Git有一个--preserve空目录。问题是,这该死的东西坏了。如果您尝试按原样使用它,整个操作很可能会中途失败。它必须被修复

首先,找到您的git svn文件:

$find/2>/dev/null | grep git svn

$find 2>/dev/null/-type f | grep-l“未能剥离”

对我来说,它位于/usr/libexec/gitcore/gitsvn

注意:它不再出现在git svn中(至少不在git 2.7.0中)。我在
/usr/lib/perl5/vendor\u perl/5.22/Git/SVN/Fetcher.pm
中找到了它

在您喜爱的编辑器中打开目标文件:

sudo路径/to/file

现在,在这个git svn文件中,搜索
die”无法剥离路径
([取决于您的git版本,]它[可能]在第4583行附近。将
die
更改为
print
并保存。您的git svn现在已修复


git svn clone——保留空dirs
现在应按预期运行。

对于包括
authors file
选项在内的任何人,
git svn clone
如果遇到在提供的authors文件中没有查找值的作者,将完全停止。如果您没有注意,git的“警报”“因为这看起来像是repo已经完成了克隆,并且没有声明该过程没有完成。repo的目录将是空的,另外还有.git


如果添加缺少的作者,然后重新运行exact命令,git将在停止的位置继续运行。

没有区别。最终仍然是一个空目录!另请参见在使用此选项之前查看不使用链接元数据的利与弊。这里也一样。我有一个包含大量项目的repo,每个项目都有trunk、tags和分支--但这不是标准布局。你刚刚创造了我的一天!拯救了我的一天!谢谢!非常感谢!同样的情况。只是在其他参数之间丢失了它:数据是什么问题?对不起,@DDivita。我不确定为什么我没有在我的回复中列出我找到的解决方案。更新。你怎么能找到丢失的作者?@LovesTha,丢失的a作者将被输出到屏幕上。这正是我的问题,非常令人困惑。我有一个“大部分”标准布局,但根目录中也有一些随机目录-我认为这是个问题,或者可能是subversion的旧版本,而事实上这是缺少作者的问题。我故意删除了一些我不想重写的作者,假设它是可选的,并且没有意识到屏幕上的最后一个警告是致命的错误,谢谢!