如何将多个subversion遥控器合并到一个主分支中

时间:2011-07-15 12:54:22

标签: git svn

我想在一个git存储库中跟踪几个subversion存储库。我设法让git svn将所有subversion存储库提取到他们自己的远程分支中。所以现在

$ git branch -a
master
remotes/svn/Project1
remotes/svn/Project2
remotes/svn/Project3

哪个好看。现在我想将所有这些分支合并到master中,但是在子目录中它们都包含类似的命名文件。我试图检查一个分支,将文件移动到子目录,提交然后合并到主服务器。但这会导致错误:

remote: error: refusing to update checked out branch: refs/heads/CPSP
remote: error: By default, updating the current branch in a non-bare repository
... 

将此归档的正确方法是什么?为了清楚起见,我想最终得到一个如下所示的存储库:

Project1/
Project2/
Project3/

为了说清楚,这些目录在subversion存储库中不存在。

我打算只跟踪subversion存储库,而不是提交它们(虽然这样会很好) TNX!

1 个答案:

答案 0 :(得分:0)

我担心简单的git操作你无法实现这一点。

如果你认为git存储库是一个内容树,在任何时候,它只能有1个快照。因此,如果您在不同的远程分支下映射多个svn存储库,您将永远不会同时看到它们。

如果你真的想看到同一类型的文件夹,下面的方法可能会让你的痛苦有所缓解:

  1. 创建父文件夹
  2. 为project1
  3. 创建一个文件夹
  4. 进入project1文件夹并在此处克隆svn存储库
  5. 对要跟踪的所有项目执行相同的操作
  6. 返回父文件夹
  7. 创建批处理/脚本以转到每个项目并提取svn内容
  8. 通过上面的方式,实际上你可以完全访问svn,甚至提交。缺点是你不能直接从父文件夹使用任何git命令。