5

svnフィールドでの長いキャンプの後、私はバザールを使い始めました。私は以前にcvsの経験もあり、時々タグを使用しました。

svnを使用すると、バージョンをリリースしたら、トランクのsvnコピーをタグに実行します(例:svn copy trunk tags / 1.2.0)。バザールでは同じリポジトリ構造を作成しましたが、bzrコピーオプションがなく、bzrタグが存在することで考えさせられました。

実は、タグは使いにくいか、役に立たないかのどちらかだと思います。タグを使用する場合、基本的にはトランクを唯一のディレクトリとして使用し、マイルストーンに到達したらタグを付けます。その後、新しいマイルストーンに到達したときに、開発とタグ付けを続けます。これにより、次のタスクが複雑になります。

  • 新しいバージョンを古いバージョンと再帰的に比較します(svnのようなアプローチ:diff --brief -r)
  • 古いバージョンをバグ修正し、パッチバージョンを増やして新しいバージョンを作成します(svnのようなアプローチ:svn copy 2.0.0 2.0.1、次に修正を2.0.1に追加してコミットします)
  • チェックアウトせずに必要なバージョンを取得します(ツリー全体をsvn-likeでチェックアウトすると、すべてのバージョンとブランチがあり、1回だけ実行します)

その結果、bzrで同じsvn repo構造を使用し、毎回トランクの物理コピーを実行します。これは、この配置でbzrtagコマンドが実際に使用されていないことを意味します。リビジョンごとにすべてのレポリビジョンが含まれているのに、レポリビジョン全体にバージョン番号をタグ付けする必要があるのはなぜですか?

bzrリポジトリのタグを使用して理解する上で私が間違っていることを誰かに指摘してもらえますか?


編集

私が見る限り、コンセプトはリリースごとに異なるbzrブランチ(独立したブランチ、トランクからbzrブランチを経由して来る)を持つことです。ルートディレクトリをリポジトリに配置しないという点だけで、svnに似ています。foo-1.0.0 foo-1.0.1 foo-2.0.0 foo-2.1.0トランクと言った場合を除いて、タグの特定の理由はまだわかりません。

分岐する前に常にリリースにタグを付けたとすると、トランクにはすべてのタグが含まれますが、foo-2.0.0にはタグにfoo-1.0.0が含まれますが、foo-1.0から分岐されたためfoo-1.0.1は含まれません。 .0。

タグを持って使用する必要性はまだわかりません。私のタグは、そのブランチ用に選択したディレクトリ名に暗黙的に含まれています。特定のリリース番号にはあまり興味がありません。特定のディレクトリにあることに興味があります。

4

3 に答える 3

12

bzrのタグとは?

タグは、特定のリビジョンの覚えやすいハンドルです。david@hrcsb.org-20090420170402-eql4vzvcifkz4fwy、または revnoを覚えようとするのではなく19721、タグを参照できます。

bzr export -r tag:foo-1.0.0.0 release-foo-1.0.0.0.tar.gz trunk/

bzr でリリースを管理するにはどうすればよいですか?

リリースを別々の開発ライン (別名: ブランチ) として扱っているように聞こえるので、トランクにタグを付けることをお勧めします。これにより、どこからブランチして、別々のリリース ブランチを作成したかがわかります。

bzr tag -r 1234 -d trunk/ foo-1.0.0.0 
bzr branch -r 1234 trunk/ release-1.x

1.x リリースのバグ修正を行うときは、リリース 1.x ブランチで行い、各ポイント リリースにタグを付けます。

bzr tag -r 1255 -d release-1.x/ foo-1.0.0.1
bzr export -r tag:foo-1.0.0.1 release-foo-1.0.0.1.tar.gz release-1.x/

ディレクトリ構造は次のようになります。

fooproj/
  release-1.x/
  release-2.x/
  trunk/
于 2009-04-22T13:28:35.107 に答える
8

基本的に、SVN ディレクトリ構造をコピーしようとするべきではありません。SVN がそのようになっている理由はわかりませんが、基本的にタグは bzr リポジトリのある時点でのマーカーにすぎません。タグと比較したい場合は、次のように実行できます

bzr diff -r tag:TAG_NAME

したがって、リリースを作成するときはいつでも、タグを付けて作業を進めてください。何かを特定のフォルダなどに移動するような特別なことは何もありません。

コードの 2.0.x 行など、元に戻したいものにはタグの代わりに別のブランチの使用を開始することをお勧めします。これにより、2.0.x のブランチが作成され、2.0 のようなタグが作成されます。 .0 と 2.0.1 が含まれています。

また、 http://bazaar-vcs.org/Specs/Taggingもチェックしてください。

于 2009-04-22T13:12:30.310 に答える
1

svnのタグは、svnブランチに似ています。bzrブランチに適切にマッピングされたワークフローについて説明しました。タグを使用すると、リリースへのポインタを持つ1つのブランチを持つことができるため、誰でもトランクから正確にリ​​リースされたバージョンを取得できます。

bzrブランチトランクfoo-1.0-rtag:1.0

于 2009-04-24T19:25:12.040 に答える