操作のセキュリティってーといまいちパッとしないけれど、更新履歴の管理の事です。更新履歴ってーと、何があるか、ざーっと上げると RCS CVS SVN GIT などなど。そして本書で取り上げているのはRCSとPuppet。調べてみると一番古いのがRCSのようですね。ってことでRCSを簡単に使ってみようと思います。
RCS
rcs_test.txt というテキストデータを作って色々やってみます。
$ mkdir RCS
$ cd RCS
$ vim rcs_test.txt
$ cat rcs_test.txt
いつまで続ける~?
$ ls -l rcs_test.txt
-rw-rw-r--. 1 take take 28 11月 1 19:26 2014 rcs_test.txt
ci というコマンドでチェックイン(登録)します。. だけの入力でコメント終了らしく sendmail みたい。
$ ci rcs_test.txt
rcs_test.txt,v <-- rcs_test.txt
enter description, terminated with single '.' or end of file:
NOTE: This is NOT the log message!
>> first
>> .
initial revision: 1.1
done
チェックインしたファイルはパーミッションが444となります。
編集したい時はチェックアウトしますが、-l オプションでロック。そうすると他のユーザーは編集ができないようにロックされるようです。
$ co -l rcs_test.txt,v
rcs_test.txt,v --> rcs_test.txt
revision 1.1 (locked)
done
では再びチェックイン。変更を加えたのでリビジョンがver 1.2 になっています。
$ ci rcs_test.txt
rcs_test.txt,v <-- rcs_test.txt
new revision: 1.2; previous revision: 1.1
enter log message, terminated with single '.' or end of file:
>> 更新
>> .
done
ではここでチェックイン時、チェックアウト時の主なオプションを
ciのオプション
| -f | 強制的にチェックインする |
| -l | 指定したリビジョンがロックされる |
| -r | 指定したリビジョンでチェックインする |
| -u | 編集したファイルを残しておきたい時に使う |
coのオプション
| -f | 強制的にチェックアウトする |
| -l | ロックしてチェックアウトする |
| -r | 指定したバージョン > 最新のリビジョンをチェックアウトする |
| -u | 同じユーザーに限ってロック解除 |
幾つか試してみましょう
-f 強制チェックアウトすると、444でした。
$ co -f rcs_test.txt,v
rcs_test.txt,v --> rcs_test.txt
revision 1.2
done
$ ls -l
合計 8
-r--r--r--. 1 take take 44 11月 1 19:53 2014 rcs_test.txt
-r--r--r--. 1 take take 335 11月 1 19:44 2014 rcs_test.txt,v
-l の場合は644です。
$ co -l rcs_test.txt
rcs_test.txt,v --> rcs_test.txt
revision 1.2 (locked)
done
$
$ ls -l
合計 8
-rw-r--r--. 1 take take 44 11月 1 19:55 2014 rcs_test.txt
-r--r--r--. 1 take take 345 11月 1 19:55 2014 rcs_test.txt,v
差分の確認。
$ rcsdiff -r rcs_test.txt
===================================================================
RCS file: rcs_test.txt,v
retrieving revision 1.3
diff -r1.3 rcs_test.txt
$ rcsdiff -r1.2 rcs_test.txt
===================================================================
RCS file: rcs_test.txt,v
retrieving revision 1.2
diff -r1.2 rcs_test.txt
2a3
> いつまでもー
$ rcsdiff -r1.1 rcs_test.txt
===================================================================
RCS file: rcs_test.txt,v
retrieving revision 1.1
diff -r1.1 rcs_test.txt
1a2,3
> 祝3周年。
> いつまでもー
RCSのオプション
| -b リビジョン | 分岐を作ります。指定したリビジョンを分岐の枝とします。b木のbかな。 |
| -i | 新しくRCSファイルを作成します。 |
| -l リビジョン | 指定してリビジョンロックします。 |
| -L | ファイルの所有者でもチェックインができなくなる。 |
| -U | RCSファイルの所有者はロックしなくても、チェックイン可能になる。 |
チェックイン、チェックアウトを何度か繰り返しやってると、感じが掴めてきた。
こんなとこでいいかなと思えてくる。
目的は資格ではなくて勉強することなのだ!
このままPuppetに入るとちょっと長くなりそうなので、今回はこれで終了にします。