0

いくつかのコードを維持するための最良の方法について質問があります。

オンラインのSVNリポジトリでホストされているプロジェクトがあります。プロジェクトは活発に開発されているので、トランクは変化し続けます。また、このリポジトリへの書き込みアクセス権もありません。

このプロジェクトにいくつかの変更を加えたため、プロジェクト全体の多くのモジュールに変更を加える必要がありました。私の変更はかなり「ニッチ」であり、トランクにチェックインするのは意味がありません。また、私の変更は進化し続けます。

変更したファイルはトランク内であまり変更されないため、トランクが変更され続けても、変更がトランクに適用された場合、変更は有効なままになる可能性があります。

リポジトリ全体をミラーリングせずに変更を個別に維持できる方法はありますか?これまで、マージし続けるリポジトリのミラーを維持してきましたが、これにはかなりの時間がかかります。時間がなかったので、変更が最新のものと同期しなくなりました。

基本的に、私の変更を使用したい人が次のようなことをしなければならなかったとしたら、それは素晴らしいことです。

  1. SVNリポジトリからトランク(または特定のタグ)をチェックしてください
  2. どこかから私の最新の変更(または特定のタグ)だけをチェックしてください
  3. いくつかのスクリプト(私が開発できる)を使用して2つをマージします

これで、リポジトリからの最新のトランクと最新の変更が自動的にマージされ、使用できるようになりました。

私は、自分が行った変更を維持するために、あらゆるシステムを使用することにオープンです。SVNや特定のものである必要はありません。

4

3 に答える 3

2

git-svnを使用してSubversionリポジトリのクローンを作成し、git-svnクローンを維持することができます。あなたがそれをした場合、あなたのバージョン/コードのブランチが欲しい人はあなたが説明するように3ステップのプロセスを必要としないでしょう。むしろ、リポジトリ(または指定したタグなど)を「gitclone」するだけです。

また、svnリポジトリのトランクの複数のブランチを維持したり、複数のsvnブランチを個別に追跡したりすることもできます。

于 2012-05-31T22:23:38.287 に答える
1

書き込みアクセスを取得できる場合は、ブランチをリクエストするのが最善です。次に、ブランチに変更をコミットし、mergeを使用してトランクで最新の状態に保つことができます。そうでない場合は、これを従来の「ベンダーブランチ」シナリオのように扱います。

https://www.google.com/search?q=svn+vendor+branch

基本的には、ローカルで独自のSVNリポジトリを作成し、スクリプトを使用してリポジトリ内の元のトランクのコピーを維持するだけです。リポジトリにブランチを作成し、そこで変更をコミットします。次に、スクリプトを定期的に使用して、リポジトリ内のトランクをマスター内のトランクと同期し、そのトランクからブランチに変更をマージします。

git-svnを使用してトランクのgitミラーを維持し、次にgitブランチを使用して変更を保存し、同期を維持することもできると思います。

于 2012-05-31T18:23:56.733 に答える
1

多分ブランチが行くのに最適な方法のように聞こえます。これはすべてのユーザーが利用でき、変更を管理しやすく、バージョン管理を維持するためにコミットすることができます。人々はあなたのブランチであなたと一緒に働くことができ、あなたはいつでもトランクからあなたのブランチに、またはその逆に変更をマージすることができます。

于 2012-05-31T18:24:53.620 に答える