3

macports svn リポジトリは次のようになります。

  branches/
  contrib/
  distfiles/
  downloads/
  tags/
  trunk/
  users/

これを git svn を使用してインポートし、標準機能を使用してブランチとタグを正しく解釈したいと考えています。

私が見たいのは、ディレクトリを持つ単一の git リポジトリです

  trunk/ 
  contrib/
  distfiles/
  downloads/
  users/

言い換えれば、branchs ディレクトリのブランチをブランチとして保持し (トランクの場合)、タグを git タグとして保持したいと考えています。ただし、ブランチを切り替えることなく、トランク、contrib、distfiles、ダウンロード、およびユーザーの両方のコンテンツを表示できるようにしたいと考えています。

これはこの質問に似ていますが、これらの追加のディレクトリ (contrib、distfiles、downloads、users) には独自のタグやブランチがないという点で異なります。それらはトランクのサブディレクトリであるべきだと私には思われるので、代わりの解決策は、トランクの下に表示されるこれらの追加のサブディレクトリでトランクをチェックアウトすることです。ただし、理由により不可能な場合があります。

これを簡単に処理する方法が提案されていない場合、本当に難しいことをしなくても、contrib とトランクを同時に簡単に参照できますか? 私はサブモジュールでそれを判断することができましたが、それは問題を求めているようです.

4

1 に答える 1

2

もちろん:

git svn clone http://repo_hostname/top_level_dir_above_those

オプションがないと、git svnはブランチを検索せず、必要に応じて全体をチェックします。

アップデート:

さらに明確にすると、gitリポジトリの一部を同じリビジョンのすべてのブランチで表示できるようにする方法はありません...gitはディレクトリツリー構造全体をバージョン管理します。

ただし、上記のコマンドを使用して、これらのトップレベルの各ディレクトリを独自のリポジトリにチェックアウトしてから、ブランチ、タグ、トランクに標準レイアウトのgitsvnリポジトリを使用できます。それらを最新の状態に保つのは面倒ですが、シェルスクリプトは便利なように各リポジトリのフェッチを実行できます。

于 2012-06-27T14:16:13.800 に答える