2

我正在尝试使用 subgit 进行导入。只是一次迁移。我的 SVN 结构包含:

  • 分支机构
    • 分支1
    • 特征
      • 分支2
  • 修补程序
    • 分支3

我想将这三个都转换为 git 中的分支。我试过了:

proj=myproject; subgit import --svn-url <correctPath>/$proj --authors-file
  ~/authors --branches branches --branches branches/features
  --branches hotfixes --tags tags  $i

这似乎只是使用“修补程序”作为唯一的导入位置。(我正在使用 SubGit 版本 2.0.2('Patrick')构建 #2731。)我还尝试使用:

--branches "branches;branches/features;hotfixes"

但这完全失败了(它可能正在寻找一个带有分号的目录)。

对一次性导入有什么建议吗?

(注意,我看到了这个相关的问题。)

4

1 回答 1

3

您可以使用“配置”+“安装”+“卸载”命令的组合。我想,您的存储库具有以下结构:

$ svn ls --depth infinity <SVN_URL>                                                                                                                                                     
branches/                                                                                                                                                                                                                         
branches/branch1/                                                                                                                                                                                                                 
branches/branch2/                                                                                                                                                                                                                 
branches/features/                                                                                                                                                                                                                
branches/features/feature1/                                                                                                                                                                                                       
branches/features/feature2/                                                                                                                                                                                                       
hotfixes/                                                                                                                                                                                                                         
hotfixes/hotfix1/
hotfixes/hotfix2/
tags/
tags/tag1/
tags/tag2/
trunk/

然后执行以下操作。运行“配置”命令:

$ subgit configure --svn-url <SVN_URL> repo

编辑 repo/subgit/config 文件到这个存储库结构(或者你可以发明你自己的 refs/heads/ 命名空间,唯一的要求是:不同类型的分支不应该是相同的;如果你需要一次性导入和refs/heads/* 下的所有内容,您可以稍后使用脚本重命名它们):

trunk = trunk:refs/heads/master
branches = branches/*:refs/heads/*
branches = branches/features/*:refs/heads/features/*
branches = hotfixes/*:refs/heads/hotfixes/*
tags = tags/*:refs/tags/*
shelves = shelves/*:refs/shelves/*

运行“安装”命令:

$ subgit install repo

然后如果你从“repo”目录运行“git branch -a”,你会看到类似的东西:

$ git branch -a
  branch1
  branch2
  features/feature1
  features/feature2
  hotfixes/hotfix1
  hotfixes/hotfix2
* master

或者,您可以运行“卸载”命令来临时或永久禁用同步(--purge 选项)

$ subgit uninstall [--purge] repo
于 2014-04-23T18:01:36.227 回答