basyura's blog

あしたになったらほんきだす。

タグとブランチ

タグリはポジトリのスライスを取り出して、その中のすべてにラベルを付けたものと考えることができる。

cvs 脳が邪魔して理解しきれないんだが、そもそもリビジョンで管理されてるのにさらにタグ付けする意味があるのか?という疑問。ただ、バグ修正をする時に便利なのは分かった。

  • リリースブランチからバグ修正用ブランチを切る
  • 修正の開始タグ(PRE-TAG)を付ける
  • 修正する(リビジョンが何個か上がる)
  • 修正の終了タグ(POST-TAG)を付ける
  • バグ修正用ブランチからリリースブランチにマージする

リビジョン指定でもマージできるんだけど

svn merge svn://xxx/xxx/tags/PRE-TAG svn://xxx/xxx/tags/POST-TAG

で一気にマージできる。cvs みたいにリリース用としてタグ付けをするわけではないのかな。リビジョンよりは名前でタグ付けた方が分かりやすいとは思うけど。リリースはあくまでブランチを使うのか?
あと、merge コマンドの引数が分かるような分からないような・・・分かりにくいと感じるのは subversino が分かってないからだろうと思うけど。リビジョン指定の場合だと

merge [-c [,...] | -r : ...] <マージ元>[@] \
[<作業コピーパス>]

とあるけど、リビジョンがリポジトリで一意に振られるんだったらマージ元の指定って必要なのかね?ヘッドとブランチから見えるものはリビジョンが同じでも違う??リビジョン番号からブランチからなのかヘッドからなのか分かりそうなもんだけど・・・ちがうのかな。ちがうんだろうな・・・。