【发布时间】:2012-03-23 15:54:43
【问题描述】:
如果之前有人问过这个问题,我深表歉意,但我的情况是一个相对具体的问题。我在公司工作了一段时间并使用 SVN,但最近出于各种原因希望迁移到 Git。
我现在遇到的问题是我的公司使用非标准分支结构,不幸的是,过去有时甚至不是一致的非标准分支结构。
据我所知,自从加入公司以来,我们使用一个主干分支,从中创建发布分支和功能分支。然而,这些分支的结构不仅仅是标准的主干/分支/标签结构。我们有几个用于不同类型分支的子文件夹。比如release分支放在branches_release中,特性分支放在branches_feature中等等,如下:
branches_feature/featureA
branches_release/2.0
我想出了如何通过修改 Git 存储库的配置来使这个克隆/获取正常工作,以便
branches = {branches_feature,branches_release}/*:refs/remotes/branches/*
这在获取适当的分支方面相对成功。我遇到的一个问题是,当我的公司刚成立时,它使用的结构更像是:
branches_feature/username/branchname
不幸的是,我不得不“git svn fetch”并发现所有这些遵循旧分支约定的分支都已被折叠,因此在 Git 中每个用户都有一个单独的分支,其中存在每个分支制作。所以,
branches_feature/username/featureA
branches_feature/username/featureB
已折叠成:
branches_feature/username
显然这对于正确复制的 SVN 回购历史是不够的,但我不确定如何修改配置的分支行以封装所有这些分支并且仍然正确使用新的分支格式。我一直在尝试以各种方式对其进行操作,但最终要么出错,要么尝试失败。
如果有人能提出一种在从 SVN 导入到 Git 时适当保留 SVN 存储库历史记录的好方法,我将不胜感激。
谢谢。
【问题讨论】:
标签: git svn git-svn git-branch git-clone