12

以下のようなSVNリポジトリ構造があります。さまざまなリリース メンテナンス ブランチのブランチの下に複数のレベルを使用し、さらに機能ブランチのディレクトリを使用しています。

git-svn init は単一の --branches 引数で動作するようです。つまり、すべてのブランチが 1 つの場所にあることを期待しているようです。

trunk
branches
  1.1
    1.2.1
    1.2.2
  1.2
    1.2.1
    1.2.2
    1.2.3
  features
    feature1
    feature2

これを処理する方法についてのアイデアはありますか?

ありがとう

4

4 に答える 4

13

設定ファイルで、svn-remotes セクションを次のように設定します。

[svn-remote "svn"]
    url = svn://svnserver/repo
    fetch = trunk:refs/remotes/trunk
    branches = branches/*/*:refs/remotes/*
    tags = tags/*:refs/remotes/tags/*

これにより、ネストされたブランチを取得できます。

于 2009-03-10T15:04:57.110 に答える
1

慣例により、Subversion ブランチはすべて Subversion リポジトリ内の単一の「ブランチ」パスに存在するため、git-svnこの仮定を行っても驚かないでしょう。

次のことをお勧めします(この操作で履歴が失われる可能性があることに注意してください):

  1. 一意のアイデンティティと現在の構造のアイデアを維持する命名規則を使用して、Subversionbranchesパスをフラット化します。
  2. 実行git-svn
  3. リポジトリ内で物事を移動gitして、プラクティスに準拠させます。

の危険性は、異なるパスからのコピー操作losing historyにどれだけうまく従うかによって異なります。git-svn最近、Subversion リポジトリ (1.4 っぽい) を移行するときにこの問題に遭遇しました。

于 2008-11-03T13:48:37.850 に答える
0

gitブランチのサブディレクトリごとにリポジトリを作成することは可能でしょうか?

于 2008-11-03T13:20:31.277 に答える
0

git svnブランチごと、またはブランチのディレクトリごとに複数のリモートを追加できます。イニシャルgit svn fetchは永遠にかかりますが、私が理解していることから、それはうまくいくはずです。

于 2008-11-06T00:00:53.403 に答える