7

Subversionを使用して、作業コピーで小さな変更を加えます(バージョン番号を更新します)。次に、作業コピーにタグを付けます。このタグは変更を加えた安価なコピーですか、それともSVNがファイルを複製しますか?バージョン番号の変更を保存しようとしているので、リポジトリのサイズが大幅に大きくなるのを見るのは嫌です。

コミットしてからタグ付けするのではなく、変更を含むタグを作成することについて質問する理由は、ビルドサーバーに関係しています。ビルドサーバーは、プロジェクトのバージョン番号(AssemblyInfo.cs)を更新するために使用するCCNetLabelを作成します。ビルドが成功すると、タグが作成されます。ForceBuildを使用すると、タグは変更されたバージョン番号を含む作業コピーに基づいています。タグに適切なバージョン番号を含める必要があります。

注:ブランチまたはタグを作成するかどうかは議論の余地がありますが、SVNは2つを区別しません。

4

4 に答える 4

5

転覆の説明から

  • 分岐とタグ付けは安価な(一定時間の)操作です。これらの操作が高価になる理由はないので、そうではありません。ブランチとタグは両方とも、基礎となる「コピー」操作の観点から実装されます。コピーは、少量の一定量のスペースを占有します。すべてのコピーはタグです。コピーのコミットを開始すると、それもブランチになります。(これにより、CVSの「分岐点タグ付け」がなくなり、最初に分岐点タグが必要になった区別がなくなります。)

ノート!SubversionがApacheプロジェクト組織に移動したことに気づきました

于 2010-03-07T08:59:19.113 に答える
5

場合によります。作業コピーが最新の場合(すべてのノードのリビジョンが同じである場合)、リポジトリからのタグ付けと同じくらい安価です。

親とは異なるリビジョンのすべてのファイル/ディレクトリ(または実際にはサブツリー)に対して、追加のデータが追加されます。また、ローカルで変更を加えた場合は、さらに多くのデータが追加されます。

しかし、それでもかなり安価です。すでにリポジトリにあるファイルを複製することはありません。

于 2010-03-07T12:12:47.213 に答える
2

かなり時代遅れの投稿ですが、「リポジトリにすでにコミットされているデータにのみタグを付けることができます...」という答えしかできないことを訪問する人には言及する価値があります。コミットされた作業は完全に正確ではありません(少なくとも今はそうではありません)。

作業コピーにタグを付けることができます。これには、混合リビジョン、切り替えられたディレクトリ、およびローカルの変更が含まれる場合があります。

安さに関しては、そうです、Subversionがあなたのために分岐し、作業コピーの変更をリポジトリにオーバーレイして、可能な限り多くのスペースを節約するので、それでも安いはずです。

于 2011-08-17T18:37:38.247 に答える
1

Subversionでタグまたはブランチを作成するのは非常に安価です。ファイルはコピーされません。発生するのは、新しいリビジョンが作成されることだけです。そのコンテンツには、基本的に、タグのコピー元へのポインターが含まれています。これは、1つの小さなファイルを持つプロジェクトのタグまたは100万の大きなファイルを持つプロジェクトのタグと同じサイズになります。

「作業コピーにタグを付ける」とは、「作業ブランチにタグを付ける」という意味ですか?リポジトリにすでにコミットされているデータにのみタグを付けることができ、ローカルのコミットされていない変更にはタグを付けることができません。

于 2010-03-07T08:57:58.623 に答える