6

バージョン管理システム (Subversion など) を使用しており、ビルド プロセスをセットアップしたいと考えています。次に、バージョン番号を作成してシステムに挿入する必要があります。しかし、バージョン番号はどこから来て、どこに入るのですか? この一般的な <major>.<minor>.<bugfix/revision> スキームを使用したいとします。ビルド スクリプトに数値を渡す必要がありますか? それとも、increaseMajor、increaseMinor、increaseRevision などの引数を渡す必要がありますか? または、ビルド スクリプトによって検出される番号でブランチを作成することをお勧めしますか?

メジャー バージョン番号とマイナー バージョン番号をどこかに手動で入力する必要があると想像できます。リビジョン番号は自動的に増加する可能性があります。しかし、メジャー番号とマイナー番号をどこに配置するかはまだわかりません。

私の場合、圧縮したいphpファイルがいくつかありますが、その前にいくつかのバージョン番号をphpファイルに挿入する必要があります。


リクエストをより明確にするために、この投稿を編集しました。

Subversion は使用していません。これは単なる例です。また、バージョン番号のスキームについては説明しません。

バージョン 3.5.0 または 3.5.1 を作成したいとします。このバージョン番号をビルド スクリプトに渡しますか? スクリプトはこの番号でリポジトリにブランチを作成しますか、それとも誰かがすでにこのブランチを作成していると予想しますか? 手動?または、ビルド スクリプトはブランチの名前 (たとえば '3.5.1) を探し、それをさらに使用しますか? そして、バージョン番号は私の脳から来ているのですか、それとも自動的に作成されているのですか (メジャー/マイナー番号は私の小さな脳から来て、リビジョン番号が作成されていると思います)? それとも、リポジトリに挿入される可能性のあるファイルに番号を配置しますか?

リリース管理ツールを使用する場合は、そこにバージョン番号を挿入すると思います。しかし、私はまだ1つも使用していません。

4

5 に答える 5

5

Subversion の場合は、グローバル リビジョン番号を取得してそれを「ビルド」番号として使用するか、それをまったく使用せずにタグやブランチを使用してバージョンを管理することをお勧めします。グローバル リビジョンの主な問題は、それがリポジトリに対してグローバルであることです。リポジトリの一部が変更されていなくても、増加します。

リポジトリのリビジョンからバージョンの関連付けを完全に解除する方が良いです。タグがありますので、ご利用ください。

于 2009-01-20T13:06:39.453 に答える
2

すべてのブランチは手動で作成する必要があります。ビルド スクリプトは、チェックアウト (または更新中) から始めて、タグやブランチから動作する必要があります。ビルド プロセスの一環として、ビルドされる正確なスナップショットにタグを作成することをお勧めします。

通常、ビルド番号とバージョンがあります。ビルド番号は自動的にインクリメントされ、ビルドの一部としてバージョン管理にチェックインされます (ビルド番号がリポジトリの外にある必要があるタグベースのビルドを除く - タグベースのビルドを避けるもう 1 つの理由)。

バージョンは通常、リリース サイクルごとに 1 回手動で更新するファイルに保存されます。それは正しいブランチにチェックインされ、そのまま放置されます。たとえば、メインラインのファイルにはバージョン = "3" があり、リリース ブランチの最初のリビジョンにはバージョン = "3.5" があり、パッチ リリースが必要になった場合は、リリース ブランチから分岐してバージョン = をチェックインします。 「3.5.1」

于 2009-01-21T13:28:23.993 に答える
2

ブランチとタグの使用に関する以前のすべてに同意しました。さらに、ブランチ名とタグ名は、巧妙なスクリプトを使用してビルド プロセスに組み込むことができます。

私が追加したい唯一のヒントは、SVN リビジョンをすべてのビルドに忍び込ませる必要があるということです。タグやブランチを知らなくても、リビジョンのある特定のポイントに簡単に戻ることができる場合があります。99% タグ/ブランチで十分ですが、リビジョンはインクリメンタル/内部/継続/テスト ビルドに最適です。

于 2009-01-21T12:19:39.047 に答える
1

svn またはその他のバージョン管理システムのリビジョンは、製品のリリース番号 (またはビルド番号) とは異なります。

バージョン番号を強制する方法はいくつもあります。通常、Subversion では、ビルド用のブランチ (またはタグ、本質的には同じもの) を作成できます。これがリリース バージョンの場合は、たとえば svn://my-repo/releases/1.0.0 のようにタグを作成します。

ビルド スクリプトにパラメーターを渡してコードを取得し、それをビルド番号として使用するか、ビルド スクリプトが使用するディレクトリを作成し、svn でこれをビルドするブランチに切り替えます。スクリプトは svn を使用できます。 info を調べて、ビルドしていたバージョンを特定します。

于 2009-01-20T13:08:19.870 に答える
0
x.y.i.j

-メジャーxバージョンy- マイナー バージョンi- ビルド番号j- リビジョン番号

Major version主要な変更 (新しいアーキテクチャ、新しい UI など) の増分

Minor versionマイナーな変更 (パフォーマンスの向上、主要なバグ修正など) の増分、

Build number公開するたびに増加します。

Revision numberプロジェクト ソース ツリーに変更をコミットするたびに増加します。

AssemblyInfo.cs にリビジョン番号として 0 を指定し、リリース パッケージ (foo-1.1.7.110-source.zip) の名前に実数を指定することをお勧めします。

于 2009-01-21T12:08:33.143 に答える