0

git と git-submodule にアクセスできないため、分岐のオーバーヘッドを最小限に抑えながら、shared-ip リポジトリを 2 つの個別のプロジェクト リポジトリに組み込む必要があります。どちらのプロジェクトの人も、プロジェクトのメインライン トランクから簡単に分岐できると同時に、共有 IP リポジトリからも分岐できる必要があります。ユーザーが共有 IP リポジトリを変更し、その編集内容をプロジェクトのメインライン トランクに再統合する準備が整った場合、その編集内容は他のプロジェクトのメインラインに対しても回帰され、両方のプロジェクトとの互換性が確保されます。

これはgitで比較的簡単に実行できることを知っています(プロジェクトのメインラインへの継続的な統合を行うメカニズムを除く-自作スクリプトです)が、SubversionとBitkeeperの両方でこれを行う簡単な方法はありますか?

編集:「svn:externals」は私の subversion の問題をほぼ解決しますが、外部リポジトリが Subversion にない場合はどうでしょうか。

bitkeeper の「svn:externals」または「git-submodule」に相当するものはありますか? これは、クライアント側のポスト クローン フックで実行できますか? どのように?

編集:わかりました。私はこれを行う方法を考え出したと思います。共通の ip-reuse リポジトリを Subversion と BitKeeper の両方にプルする必要がある場合は、Subversion に共通の再利用リポジトリが必要なので、emk が示すように「svn:externals」を使用できます。BitKeeper の場合、Subversion サーバーからチェックアウト コマンドを実行することを認識している受信後トリガーを作成する必要があります。

4

1 に答える 1

1

Subversion では、 Subversion externalsを使用するか、Subversion ツリー内の必要なディレクトリを単純にコピーできます。

svn cp svn+ssh://.../libs/foo/trunk svn+ssh://.../projects/bar/trunk/libs/foo

コードをローカルで変更するには、projects/bar/trunk/libs/foo にコミットするだけです。

楽しい部分は、lib/foo/trunk からの新しい変更をマージすることです。この場合、先に進んで通常の Subversion マージを実行します。( Subversion 1.5 を使用している場合は簡単です。Subversion 1.4 を使用している場合は、パッチを手動で適用する必要があります。)

残念ながら、私は BitKeeper の経験がありません。

于 2009-03-25T15:19:14.843 に答える