2010-09-17 49 views
5

有什么办法可以使用git-svn来克隆SVN回购结构中的一些文件夹。我试图克隆一个具有一些疯狂的大二进制文件和一些简单无用的子文件夹的回购。我试过使用--ignore-paths选项,但是我的克隆似乎只是在很长一段时间内没有做任何事情。你们有没有设法让--ignore-paths工作?我无法在其他任何人遇到此问题的网站上找到太多内容。也许我是唯一的一个。如何使用git-svn来克隆SVN回购的部分,但仍然得到所有分支

回答

0

我在这里得到的最成功的是在必要时在git中手动创建镜像SVN远程存储库的分支。该过程一直执行以下操作:

  1. 更新的.git /配置文件与:
[svn-remote "svn-branch-alias"] 
      url = http://svn/branches/crazybranchname/craziername/url/ 
      fetch = :refs/remotes/git-branch-name 
  1. 从命令行类型:git svn fetch 'svn-branch-alias'收集SVN分支数据进入你当地的git回购。

  2. 然后键入:git checkout 'git-branch-name'进入无头模式。

  3. 最后键入:git checkout 'my-local-git-branch-name'创建移动头到该分支中的最新提交并创建一个您可以使用的本地分支别名。

现在commitdcommit像往常一样,仍然可以使用常规的机制,各个地方的Git分支,您手动创建SVN镜子之间切换。

+0

我应该说,这实际上只是让我更好地管理一个复杂结构的回购。它实际上并没有解决主要问题,它提供了一个简单的命令,允许您使用git-svn正确克隆复杂的SVN回购。 – Kevin 2011-07-26 19:57:51

0

也许你可以说明你的Subversion版本库的结构,使我们更容易推荐一些解决方案。

您是否试图从根URL-git svn克隆整个存储库?你有没有尝试克隆回购的较小部分,然后可能嫁接几个克隆?

+0

我一直试图克隆的存储库与OCAP RI开源项目类似。它位于java.net上。看看你是否想看到他们拥有的结构。这很糟糕。我的公司有一个这个回购的内部副本与自己的疯狂结构,增加了更多的分支机构。 – Kevin 2010-10-15 03:02:06

+0

我已经通过使用--ignore-paths取得了一些成功,并且只检出SVN中的一个或两个修订版。但我仍然不满意。这可能只是一个棘手的问题,并不值得解决。 我希望我可以从所有分支git svn克隆只有几个文件夹。 – Kevin 2010-10-15 03:09:03

1

我们已经使用了“忽略路径”功能,忽略一个svn的某些目录:

[svn-remote "svn"] 
     ignore-paths = ^(((branches|tags)/[^/]+|trunk)|)(huge/|mobile/) 

这个配置忽略了“巨大”和“移动”,在树干库的子目录,所有分支和所有标签。

相关问题