2

subgit を使用してインポートを実行しようとしています。1回限りの移行。私のSVN構造には以下が含まれています:

    • 支店1
    • 特徴
      • ブランチ2
  • ホットフィックス
    • ブランチ3

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"

しかし、それは完全に失敗しました (おそらくセミコロンを含むディレクトリを探していたのでしょう)。

1回限りのインポートに関する提案はありますか?

(注、この関連する質問を見ました。)

4

1 に答える 1

3

「configure」+「install」+「uninstall」コマンドの組み合わせを使用できます。リポジトリには次の構造があると思います。

$ 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/ 名前空間を作成できます。唯一の要件は、さまざまな種類のブランチで同じであってはならないということです。1 回限りのインポートと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

必要に応じて、「uninstall」コマンドを実行して、同期を一時的または完全に無効にすることができます (--purge オプション)

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