gitに変換する場合、単一ディレクトリのsvnチェックアウトをどのように処理する必要がありますか?

StackOverflow https://stackoverflow.com/questions/7332652

質問

まもなく、アプリケーションの一部を、svnでバックアップされたリポジトリの使用からgitのリポジトリの使用に変換する予定です。 で以前はgit-svnを使用していましたが、チーム全体がgitに移行し、その移行の先駆者となるように依頼されました。ほとんどの動きをどのように行うかを理解できてうれしいですが、まだ解決していない側面が1つあります。 で構成リポジトリの1つのディレクトリは、スタンドアロンのWindowsマシン上の外部アプリケーションのスクリプトディレクトリを追跡するために常に使用されてきました。そのアプリケーションのscriptsディレクトリはアプリケーションのインストールディレクトリ内にあるため、svnを使用して、適切な時点でそのディレクトリだけをチェックアウトしました。 プスその構造を継続できることを期待していましたが、私の調査によると、gitの狭いクローンでは、同じ相対構造を維持する必要があります。これは私の場合は困難です。 プト明確にするために、私はmyrepo:config/scriptsの内容をC:\application\scriptsにマッピングしたいと思います。

ープ私が見る限り、いくつかの選択肢があります:

1。これらのスクリプトファイルには別のリポジトリを使用してください。 ⇒これはおそらく、リポジトリを正確に正しい場所に複製できるため、好ましいでしょう。 ープ残念ながら、現在、構成データ(これらのスクリプトが何であるか)を構成ディレクトリ以外の場所に保存できる構造はありません。そのため、これには、svnから私たちが望んでいたgitへの直接の変換を超えて、リポジトリの再構築が必要になります。

2。ジャンクションポイントを使用します。

gitディレクトリのconfig作業コピーをC:\の別の場所に置き、ジャンクションポイントを使用して、 Ger4ishは、UNIXでシンボリックリンクを使用することを提案しています ープ残念ながら、そのマシンへの管理者アクセス権がないため、これは最初に表示されるほど単純ではありません。

他のオプション? ●私は見逃したオプションがあるのだろうかと思います

Git 1.7.0のスパースチェックアウト?の質問に対する回答を見ると、いくつかの方法があります。ただし、構造を同じに保つ必要があることと、特定の位置にチェックアウトする必要があることは、この方法が機能しないことを意味します。

役に立ちましたか?

解決

サブモジュールを見たことがありますか?構成スクリプト用に別のgitリポジトリを作成し、それをサブモジュールとしてメインリポジトリに追加することができます。これにより、application/scriptsで直接チェックアウトを実行できますが、configディレクトリはプライマリリポジトリの下に保持されます。

サブモジュールがプライマリリポジトリにどのように関連するかには微妙な違いがあるため、scriptsディレクトリにコミットしているすべての人にこのワークフローを理解してもらいたいと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top