3

ライブラリを使用するいくつかのプロジェクトと並行してライブラリを開発していますが、プロジェクトと同時にライブラリを頻繁に変更していることに気付きました (たとえば、関数をライブラリに追加し、すぐにプロジェクトで使用するなど)。
その結果、プロジェクトは以前のバージョンのライブラリでコンパイルできなくなりました。

そのため、変更をロールバックしたり、プロジェクトの以前のバージョンをテストしたりする必要がある場合は、チェックイン時に使用されたライブラリのバージョンを知りたいと思います。
これを手動で (ログ ファイルにバージョン番号を書き込むだけで) 行うこともできると思いますが、これが自動的に行われるとよいでしょう。

4

4 に答える 4

3

あなたのために働くかもしれないオプションは、ライブラリへの svn:external 参照を使用することです。プロジェクトにタグを付けるときは、次の 2 つのいずれかを実行できます。

  • ライブラリの特定のリビジョンを参照するように svn:external を更新します。また
  • ライブラリで作成した新しいタグを参照するように svn:external を更新します。

svn:external メタデータはメイン プロジェクトのコミット履歴の一部になるため、メイン プロジェクトのタグをいつでも取得でき、ライブラリの正しいバージョンを参照します。私たちはそれを行い、非常にうまく機能します。また、リリースに備えて、依存しているライブラリ コードのバージョンを凍結したい場合にも便利です。

于 2008-08-23T01:04:38.943 に答える
2

これをやるならタグを使うと思います。ライブラリをアップグレードしてプロジェクトで使用するたびに、両方のリポジトリに同じIDのタグを付けるスクリプトを作成するのは非常に簡単です。次に、前のバージョンにロールバックする必要がある場合は、最新のタグが何であるかを確認し、ライブラリをそのバージョンにロールバックします。

更新:申し訳ありませんが、私はしばらくの間Mercurialの土地にいましたが、Subversionがタグ付けを直接サポートしていないことを忘れました。通常のSubversionディレクトリ構造を使用すると仮定します

/
  /trunk
  /tags
  /branches

あなたはただ走る必要があります

svn copy trunk/ tags/TagName

両方のリポジトリで、同じタグ名を使用します。Subversionはスマートコピーに非常に適しているため、ディスク容量について心配する必要はありません。

于 2008-08-22T22:56:52.743 に答える
2

ピストンが解決策を提供することがわかるかもしれません

これは主に ruby​​ on rails プラグインのインポートに使用されますが、どの Subversion リポジトリでも機能しない理由がわかりません。

基本的にこれが行うことは次のとおりです。

  • svn export リモートパスの最新リビジョン
  • これらのファイルをローカル ファイルであるかのようにローカル svn にコミットします。
  • リモート パスとリビジョンに関するメタデータを svn プロパティの形式で添付する

これは、svn external のように常に更新する必要なく、リモート リポジトリの特定のバージョンへの参照を保持できることを意味します。

ライブラリのローカル コピーを最新のリモート バージョンに更新する場合は、piston update

また、メタデータを確認するだけで、更新の履歴を確認できるはずです。svn プロパティは、ファイルやその他すべてと同じようにバージョン管理されます。

于 2008-08-23T01:16:19.930 に答える
0

1 つのオプションは、単一の Subversion リポジトリを使用し、ライブラリとプロジェクトの両方に同時に影響する変更をチェックインすることです。そうすれば、現在のプロジェクトのリビジョンが何であれ、ライブラリの同じリビジョンが必要であることがわかります。

于 2008-08-22T22:05:07.097 に答える