今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

CVS で commit できない話の続き

CVS で commit しようとしたときに以下のようなメッセージがでる場合の回避方法。

sticky tag 'release-v111' for file 'filename' is not a branch

以下のコマンドを実行する。filename には commit できないファイルを指定する。

C:\hoge> cvs status -v filename

以下のようなメッセージが表示される。

   Existing Tags:
        release-v111     (revision: 1.2.2.1)
        branch-v110      (branch: 1.2.2)
        release-v110     (revision: 1.2)
        release-v100     (revision: 1.1)

revision は、特定の時点につけられたタグなので、それを変更して commit はできない。commit するには、その revision の元になっている branch に移動すればよい。

C:\hoge> cvs update -r branch-v110

release-v111 は branch-v110 に対して変更を加えたものだから、release-v111 のままなら Up-to-date となる。release-v111 に変更を加えていれば、Locally Modified となる。
cvs update 後は、この Locally Modified したファイルは commit できるようになる。
cvs update -A すると幹(release-v110 に対する最新版)に行ってしまう。枝の中で修正を行っている場合は、cvs update -A をやってはいけない。