RCSは結構便利っぽい?
バージョン管理ソフト、使ってますか? 私は使ってません。どうせファイル1つだし。めんどいし。
いつまでもそれはマズイな、ということでとりあえずRCSを使ってみる。 サーバーの設定ファイルとかでは使っているのだけれど、ちゃんと調べたことなかったので、改めて。
インストール(windows)
とりあえずインストール。 linuxの場合はお使いのディストリビューションのパッケージ管理システムでどうぞ。
Official RCS Homepageからrcs57pc1.zipってやつをダウンロード。 展開したらwin32ってディレクトリが出てくるので、その中のbinディレクトリの中身をパスが通った場所に置きます。
環境変数をセット。 batファイルに書く用なのでbat形式だけれど、普通に環境変数に入れておっけーです。
rem チェックアウト/チェックインするときに使うユーザー名。セットしなくてもいい。 set USER=MacRat rem タイムゾーンの設定。 set TZ=JST-9 rem RCS関係のコマンドに読み込ませるオプション。 set RCSINIT=-x,v -zLT
以上。これで動くはず。
RCSファイルを作る
適当なエディタでテキストファイルを作ります。ここではtest.txt
を作ったことにして話を進めます。
空でも作れるらしいけれど、必要ないでしょ、きっと。
んで、チェックイン。
ci test.txt
ファイルについての説明を求められるので、適当に書く。
書き終わったら.
(ドット)だけ書いて改行。
チェックインするとtest.txt
が消えて、test.txt,v
というファイルが作られます。
これがRCSファイルってやつね。リポジトリ的な。
カレントディレクトリに作られるのが嫌な場合は、RCSって名前のディレクトリを作るとそこに置かれます。
チェックアウト
co -l test.txt
とするとチェックアウトしてロック出来ます。 編集する気がない場合はロックする必要がないので、-lオプション要りません。
ロックしちゃったけどやっぱやめたってときは
rcs -u test.txt
こんな感じでアンロック。
逆に、ロックせずにチェックアウトしちゃったけど編集したいってときは
rcs -l test.txt
みたいな感じ。
チェックイン
ci test.txt
でチェックイン。
コミットログを求められるので、編集した内容の説明とかを書いて、.
(ドット)だけの行で終了。
そのままだとチェックインした後test.txtが消えちゃうけれど、
ci -u test.txt
とするとチェックインしたあともファイルが残ります。
ci -l test.txt
なら残すついでにロックもしてくれます。 続けて編集するなら便利。
リビジョンの一覧を見てみる
rlog test.txt
以上。特に説明することもない感じ。
差分をとってみたりする
rcsdiff test.txt
こうやると最新のリビジョンと、今あるファイルとの比較を行います。 出力は普通のdiff。・・・にしては情報量が少ない気もする?
rcsdiff -r1.1 test.txt
とするとリビジョン1.1と現物の比較ができたり、
rcsdiff -r1.1 -r 1.2 test.txt
とすればリビジョン1.1と1.2の比較ができたり。
ロールバック
ロールバック用のコマンドがあるわけではないっぽい。 ので、チェックアウトとチェックインを組み合わせて使います。
以下の例では最新版が1.5、ロールバックしたいバージョンが1.3、って感じで。
co -r1.3 test.txt
みたいな感じでリビジョン1.3をチェックアウト。
ci -f1.6 test.txt
こうやって最新のリビジョンとして登録し直します。
以上。シンプル。
キーワード置換
で、本題的なもの。なんて長い前置き。
ファイル内に特殊な文字列を埋め込むと勝手に色々置換してくれるらしい。
例えば、
$Author$ $Date$ $Id$ $Log$ $Revision$ とか書いておくと、 $Author: MacRat $ $Date: 2013-11-26 02:49:36+09 $ $Id: test.txt,v 1.3 2013-11-26 02:49:36+09 MacRat Exp $ $Log: test.txt,v $ Revision 1.3 2013-11-26 02:49:36+09 MacRat append keywords $Revision: 1.3 $
みたいになる。べんりー。
Logなんかは
/* * $Log$ */ # $Log$ とすると /* * $Log: test.txt,v $ * Revision 1.3 2013-11-26 02:53:38+09 MacRat * test * */ # $Log: test.txt,v $ # Revision 1.3 2013-11-26 02:53:38+09 MacRat # test #
とかなる。 なにこれ素敵。
キーワードの一覧はMan page of COにあります。
参考: