[home]
[log in]
SVV
SVVとは?
- /etc/*などのファイルをバージョン管理するためのソフトウェアです。
- /etc/*などのファイルを、root権限なしに管理できます。
- ファイルのパーミッションなどの情報も保存されます。
ダウンロード
必要な物
- subversion
- python
- pysvn(1.5.2で動作確認)
準備
subversionの空のworking directoryが必要です。 環境変数SVV_WORKを、その空のdirectoryにしてください。
例
$ svn mkdir ~/work/newdir
$ svn commit ~/work/newdir
$ export SVV_WORK=~/work/newdir
例2
$ svnadmin create ~/newrepo
$ svn co file://.../newrepo ~/work
$ export SVV_WORK=~/work
使い方
ファイルをバージョン管理下に置く
$ svv add /etc/rc.conf
$ svv add /etc/X11/XF86Config
$ svv commit
ディレクトリを管理下に置く事はできません。
ファイルをアップデートする
(場合によっては、要root権限)
$ sudo svv update
$ sudo svv update -r 6 /etc/X11/XF86Config
差分をとる
$ svv diff
$ svv diff -r 7:8 /etc/rc.conf
ステータス表示
$ svv status
バージョン管理するのをやめる
$ svv remove /etc/rc.conf
$ svv commit
変更を破棄する
(場合によっては、要root権限)
$ sudo svv revert /etc/rc.conf
内部動作
subversion APIを使用しています。事あるごとに、/etc/*などのファイルをSVV_WORKにコピーし、そこに対してcommit, add, diffなどの処理を行っています。
例えば、/etc/rc.confをsvv addした場合、SVV_WORKには、以下の名称のファイルが作成されます。
$ ls $SVV_WORK
%2Fetc%2Frc.conf
%2Fetc%2Frc.conf.svv
".svv"ファイルには、ファイルののオーナー、パーミッションなどの情報が格納されています。
WORKDIRから/etc/などにファイルが書き戻されるのは、updateとrevertの時のみです。そのため、updateやrevertは、sudoするなどして実行してください。
ライセンス
New BSD Licenseです。
作った動機
CVSやsubversionで/etc/*を管理しようとすると、
- /etc/にCVSや.svnが作られるので、いちいち何をするにもrootになる必要がある。
- /etc/以下のほとんどのファイルは管理したくない。そのため、ignore指定すべきファイルが多量になる。
といった点がめんどくさかったのです。
バージョン
- 07/10/15 ver 0.1 作った。
Last Modified: 2007-10-15 Monday