1. ホーム
  2. svn

[解決済み] SVN:externalsはGitで同等?

2022-04-15 01:32:56

質問

私は2つのSVNプロジェクトを、別のSVNリポジトリから svn:externals .

Gitで同じリポジトリレイアウト構造を持つにはどうしたらいいですか?

解決方法は?

Git には、svn:externals と似たような、しかし厳密には等価ではない、二つのアプローチがあります。

  • サブツリーのマージ は、外部プロジェクトのコードをあなたのレポ内の別のサブディレクトリに挿入します。これには 設定するための詳細なプロセス というのも、リポジトリがチェックアウトされたりクローンされたりしたときに、自動的にインクルードされるからです。これは、プロジェクトに依存関係を含めるための便利な方法となります。

    他のプロジェクトから変更を取り込むのは簡単ですが、変更を戻すのは複雑です。そして、もし他のプロジェクトがあなたのコードからマージしなければならない場合、プロジェクトの履歴はマージされ、2つのプロジェクトは事実上1つになります。

  • Git サブモジュール ( マニュアル ) は、他のプロジェクトのリポジトリにある特定のコミットへのリンクで、svn:externals と同じように -r 引数で指定します。サブモジュールは簡単に設定できますが、すべてのユーザーがサブモジュールを管理しなければならず、チェックアウト (またはクローン) には自動的に含まれません。

    変更点を他のプロジェクトに戻すのは簡単ですが、そうすることでリポジトリが変更された場合に問題が発生する可能性があります。そのため、一般的に、開発中のプロジェクトに変更を戻すことは適切ではありません。