Feb 23, 2007
Subversion でのロールバック
subversion でのロールバックが、 「Subversion によるバージョン管理 Link 」や、「Subversion - mir the wikiwiki Link 」を見てもわかりにくかったのでメモ。
latex で Makefile を自作していたが、LaTeX-Mk Link というものがあるのを知ったので使ってみた。 Makefile を LaTeX-Mk 用に書き換えて rev 17 でコミット。 あんまりよくなかったので、rev 16 の自作 Makefile に戻したい。 としよう。
svn update -r 16 Makefile
などとしてもだめ。svn (のworking directory)が 「今カレントディレクトリにある Makefile は rev 16 である」 ことを覚えているため、svn update では HEAD を update しなおすだけだし、 HEAD では Makefile は変わっていない。
yasu@cpu Fri 02/23 12:40[~/doctor-thesis/yasu-dthesis](1)> svn update -r 16 Makefile U Makefile リビジョン 16 に更新しました。 yasu@cpu Fri 02/23 12:41[~/doctor-thesis/yasu-dthesis](0)> svn status yasu@cpu Fri 02/23 12:41[~/doctor-thesis/yasu-dthesis](0)> svn update U Makefile リビジョン 18 に更新しました。 yasu@cpu Fri 02/23 12:41[~/doctor-thesis/yasu-dthesis](0)>
svn diff -r HEAD:16 Makefile
とすると、HEAD(カレントディレクトリの内容)の Makefile を、 rev 16 にするための変更点が(diff -u 形式で)表示される。 このまま diff を merge に変えると、カレントディレクトリ(working directory) の Makefile が rev 16 の内容になる。意味的には、 HEAD から rev 16 への変更点を、カレントディレクトリの Makefile にマージ、 というところか。
svn merge -r HEAD:16 Makefile
その後コミット。
yasu@cpu Fri 02/23 12:43[~/doctor-thesis/yasu-dthesis](0)> svn merge -r HEAD:16 Makefile U Makefile yasu@cpu Fri 02/23 12:43[~/doctor-thesis/yasu-dthesis](0)> svn status M Makefile yasu@cpu Fri 02/23 12:43[~/doctor-thesis/yasu-dthesis](0)> svn commit -m " Makefile rollback to rev 16" 送信しています Makefile ファイルのデータを送信中です. リビジョン 19 をコミットしました。 yasu@cpu Fri 02/23 12:43[~/doctor-thesis/yasu-dthesis](0)>
writeback message: Ready to post a comment.