CVSで直前のupdateを戻すには

リポジトリには、最新のソースコードがある。
それは本来正しく動くはずである。
が、他の作業者が不完全なソースコードをcommitしてしまった場合、最新版にアップデートすると動かなくなることがある。
そこで、いちいちキレていては賢者とはいえない。
つーことで、update直前にサックリと戻す方法を調べましょう。
※調査結果
とりあえず、時間を指定してリビジョンを元に戻す方法はわかった。

$ cvs -q update -D "2006-07-05 13:00:00"

とすれば、Sticky日付が設定されて、2006年7月5日13:00:00(日本時間)のリビジョンまで戻せる。
で、Sticky状態を解除して最新版に戻したいときは

$ cvs -q update -A

とすればリポジトリの最新版に戻る。
ここで、気になるのがSticky状態でファイルに変更を加えて、それをcommitしたい場合はどうするのか・・・・ってことやね。
もうちょい調べよう。
※実験結果
Sticky状態では、ファイルに変更を加えてもcommitはできない。
commitしたい場合はSticky状態を解除しなくてはならないが、
$ cvs -q update -A
で解除したからといって、Sticky状態で変更されたファイルがリポジトリの最新版で上書きされるわけではなく、差分をちゃんとマージして、「変更点のあるファイル(M)」として扱ってくれる。で、それをcommitすればSticky状態での変更も無駄にならない。
おおぉ・・・、CVSって便利だな・・・・。
ちなみにこの辺の事は、「CVSによるオープンソース開発」の70ページ付近にのってる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です