git-svn checkout将文件检出错误的文件夹

时间:2014-03-31 17:37:25

标签: git svn git-svn

在工作中,我们有一个svn存储库,它使用一个有点标准的文件夹结构,如下所示:

remote-repo/
   tags/
   branches/
      branch_to_proj1_A/
         proj_1_1
         proj_1_2
   trunk/
      proj1/
         proj1_A/
            proj1_1
            proj1_2
      proj2/
      proj3/

在我执行git-svn克隆(使用-s选项)后,我得到以下签出的文件夹结构

local-gitsvn/
   proj1/
      proj1_A/
         proj1_1
         proj1_2
   proj2/
   proj3/

现在我有兴趣使用svn分支&branch; to_proj1_A'别人创造的。看起来这只是文件夹proj1_A的分支......所以我做

$ git-svn checkout -b local-branch_to_proj1_A branch_to_proj1_A

结帐后,我在git repo中有以下文件夹结构

local-gitsvn/
   proj1_A/
      proj1_1
      proj1_2

请注意,其余的项目都已消失,只有proj1_A在那里。

我的问题是,是否可以将分支机构签出到正确的文件夹?因此,在' git svn checkout'我得到与原始克隆仓库相同的文件夹结构?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果您不关心同步回svn,您可以进行子树合并:

签出了trunk / master(或更具体的修订版):

git subtree merge --prefix=proj1/proj1_A branch_to_proj1_A

成功合并后,您将从branch_to_proj1_A的更改合并到完整目录中。