gitに変換する場合、単一ディレクトリのsvnチェックアウトをどのように処理する必要がありますか?
-
27-10-2019 - |
質問
まもなく、アプリケーションの一部を、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 1.7.0のスパースチェックアウト?の質問に対する回答を見ると、いくつかの方法があります。ただし、構造を同じに保つ必要があることと、特定の位置にチェックアウトする必要があることは、この方法が機能しないことを意味します。
解決
サブモジュールを見たことがありますか?構成スクリプト用に別のgitリポジトリを作成し、それをサブモジュールとしてメインリポジトリに追加することができます。これにより、application/scripts
で直接チェックアウトを実行できますが、configディレクトリはプライマリリポジトリの下に保持されます。
サブモジュールがプライマリリポジトリにどのように関連するかには微妙な違いがあるため、scriptsディレクトリにコミットしているすべての人にこのワークフローを理解してもらいたいと思います。