Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用git svn导入时删除冗余的repo目录?_Git_Git Svn - Fatal编程技术网

使用git svn导入时删除冗余的repo目录?

使用git svn导入时删除冗余的repo目录?,git,git-svn,Git,Git Svn,我正在尝试导入遵循标准svn约定(主干/分支/标记)的svn存储库。“问题”是在每个副本下面有两个完全无用的目录,我真的想在我的git repo中删除它们。我的svn结构如下所示: trunk/redundantdir1/redunddantdir2/realstuff branches/b1/redundantdir1/redunddantdir2/realstuff tags/t1/redundantdir1/redunddantdir2/realstuff ... git-svn clo

我正在尝试导入遵循标准svn约定(主干/分支/标记)的svn存储库。“问题”是在每个副本下面有两个完全无用的目录,我真的想在我的git repo中删除它们。我的svn结构如下所示:

trunk/redundantdir1/redunddantdir2/realstuff
branches/b1/redundantdir1/redunddantdir2/realstuff
tags/t1/redundantdir1/redunddantdir2/realstuff
...
git-svn clone https://example.com/svnroot/trunk/redundantdir1/redunddantdir2/realstuff myprojectname

在svn中,这两个目录并没有造成太大的伤害,因为大多数用户只会从“realstuff”和其他目录中签出。有了git,我真的很想把多余的dir排除在回购之外。我不准备开始改变svn结构,我需要能够使git repo与subversion保持(短期)同步。建议?

我不建议使用git svn进行任何svn分支或合并,因此您确实不需要分支或标记目录。然后,您只需克隆您需要的回购部分,如下所示:

trunk/redundantdir1/redunddantdir2/realstuff
branches/b1/redundantdir1/redunddantdir2/realstuff
tags/t1/redundantdir1/redunddantdir2/realstuff
...
git-svn clone https://example.com/svnroot/trunk/redundantdir1/redunddantdir2/realstuff myprojectname
编辑:如果您确实需要对分支进行更改(而不是创建或合并分支,我建议您使用real svn),那么您可以简单地将该分支克隆为单独的git回购,如下所示:

git-svn clone https://example.com/svnroot/branches/b1/redundantdir1/redunddantdir2/realstuff myprojectname-b1

我不建议使用git svn进行任何svn分支或合并,因此您确实不需要分支或标记目录。然后,您只需克隆您需要的回购部分,如下所示:

trunk/redundantdir1/redunddantdir2/realstuff
branches/b1/redundantdir1/redunddantdir2/realstuff
tags/t1/redundantdir1/redunddantdir2/realstuff
...
git-svn clone https://example.com/svnroot/trunk/redundantdir1/redunddantdir2/realstuff myprojectname
编辑:如果您确实需要对分支进行更改(而不是创建或合并分支,我建议您使用real svn),那么您可以简单地将该分支克隆为单独的git回购,如下所示:

git-svn clone https://example.com/svnroot/branches/b1/redundantdir1/redunddantdir2/realstuff myprojectname-b1
我的问题也可能有用

基本上,我们的想法是将
git svn clone
分为两个操作,首先是
git svn init
设置包含排除项的存储库,然后是
git svn fetch
从svn中提取修订:

git svn init <Svn repo url> -s --ignore-paths 'redundantdir1'
git svn fetch
从那时起,
git svn fetch
将只显示最近的变更集。

我的问题也可能有用

基本上,我们的想法是将
git svn clone
分为两个操作,首先是
git svn init
设置包含排除项的存储库,然后是
git svn fetch
从svn中提取修订:

git svn init <Svn repo url> -s --ignore-paths 'redundantdir1'
git svn fetch

从那时起,
git svn fetch
将只提供更多最新的变更集。

实际上是一个很好的建议,只要我总是将变更合并回svn中的trunk,并从那里将它们提取到git中,这可能符合要求。但svn中至少有一个分支我需要进入这个git回购。我建议使用不同的git回购在该分支中进行更改。实际上,这是一个很好的建议,只要我总是将更改合并回svn中的主干,并从那里将其引入git,这可能符合要求。但是svn中至少有一个分支我需要进入这个git回购。我建议使用不同的git回购在该分支中进行更改。