git で tag を打って push しようとしたんだけど、tag の打ち方が分かってなくて、自分が svn 脳になっていたのが分かった話。
git
基本的には git の tag 打ちは
git tag -a TAGNAME
かな? で、
git tag
や
git tag -l
ってやると打った tag の確認ができる。そう、確認できるってことを分かってなかった。確認してればハマる必要なかったんだけど、自分はここで
commit できねぇ
と思ってしまった。必要ないのに。
commit できなきゃ push できないじゃーんと思っていたが、そんなことはなかった。
git push --tags
すれば作った tag を push できた。
svn
svn には tag も branch もない。自分はこの思い切りの良さ、きらいじゃないんだけど、git の開発をするに至った Linus にはとてもバカバカしいものに見えているようで、かなり辛辣な批判をしている。
Linus曰く「Subversionは史上最も無意味なプロジェクト」 - スラッシュドット・ジャパン
まぁとにかく tag も branch もない。あるのは cp だけ。つまり、その時点のディレクトリツリーの snapshot を取る機能だけ。で、それを commit する。
cvs
cvs の tag はどうだったっけと思って調べたらやはり cvs の tag も commit 不要だった。
cvs tag [-b] TAG
※ cvs の場合はファイル単位で tag を打てるし、割とそういう文化だったんだけど、そこは省略しておく。
で、確認の方法はすっかり忘れていたんだけど、
cvs stat -v
でイケた。
cvs --help status
Usage: cvs status [-vlR] [files...]
-v Verbose format; includes tag information for the file
これで tag が打てていることを確認できる。