SVN - 作業用コピーにタグを付けても、それは依然として安価なコピーですか?

StackOverflow https://stackoverflow.com/questions/2395689

  •  25-09-2019
  •  | 
  •  

質問

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

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

注記:ブランチを作成しているのかタグを作成しているのかについては議論の余地がありますが、SVN ではこの 2 つを区別しません。

役に立ちましたか?

解決

これは依存しています。作業コピーが最新のものである場合には(すべてのノードが同じリビジョンを持っている)、それだけでリポジトリからタグ付けなど安いようです。

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

しかし、それはまだ合理的に安いです。それは、リポジトリにすでに存在するすべてのファイルを複製しません。

他のヒント

転覆の説明より

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

注記! 今気づいたのですが 転覆 Apache プロジェクト組織に移動されました

タグやSubversionでブランチを作成することは非常に安いです。ファイルがコピーされません。たまたまそのすべてが新しいリビジョンが作成され、内容は基本的にはタグがからコピーされた場所へのポインタを含んでいることです。これは、1つの小さなファイルを持つか、万人の大きなものとの1のためのプロジェクトのタグに同じサイズになります。

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

かなり日付ポストのうちけど答えはあなたを知らせることを訪れる人のために言及する価値ができる唯一の「あなたは...すでにリポジトリにコミットされている唯一のタグデータに」コミット作業は完全に正確(少なくともではないではありません今)。

あなたが混在改正を含み、さらにはローカルの変更だけでなく、ディレクトリを切り替えることができ作業コピーを、タグを付けることができます。

Subversionは

できるだけ多くのスペースとして保存、レポにあなたの作業コピーの変更をオーバーレイそして、あなたのための分岐するよう安っぽについては、はい、それはまだ安いなければなりません
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top