私は、もともと/etc/namedbや自分のWeb PageのcontentsをCVSで管理していました。
CVSは、Network越しでデータが管理できるだけでなく、分散した管理人がデータ保守を
行うにも非常に便利なツールです。勿論source code revision contolにも非常に便利
です。
しかし、僕はどうやら生来の新しもの好きらしく、SVNが広がり始めたのを見て取りあ えずさわってみよう。ならば、折角サーバー環境を変えたわけだから、そこの管理にpwd SVNを使おうと考えたのが、このメモの発端です。
ssh Server-A su mkdir /var/db/svnroot mkdir /var/db/svnroot/server-A /var/db/svnroot/server-B svnadmin create /var/db/svnroot/server-A/namedb svnadmin create /var/db/svnroot/server-B/namedbで、今回はnamedbを管理するわけですから、/etc/namedbのデータをつくっておきましょう。 それが終わったら、インポートして、ついでにcheckoutしておきましょう。
cd /etc svn import /etc/namedb file:///var/db/svnroot/server-A/namedb -m "Initial Import" mv namedb namedb.orig svn co file:///var/db/svnroot/Server-A/namedb /etc/namedbここまでやったら、一応、中身が正しいかどうかを確認します。
diff -R namedb.orig namedbここで、.svnディレクトリー以外に差がなければOKです。これでsvnで管理できるようにな りましたので、BackUpは消します。
cd /etc rm -rf namedb.orig
ssh server-B su cd /etc svn import /etc/namedb svn+ssh://server-A/var/db/svnroot/server-A/namedb -m "Initial Import" mv namedb namedb.orig svn co svn+ssh://Server-A/var/db/svnroot/Server-A/namedb /etc/namedbここまでやったら、一応、中身が正しいかどうかを確認します。
diff -R namedb.orig namedbここで、.svnディレクトリー以外に差がなければOKです。これでsvnで管理できるようにな りましたので、BackUpは消します。
cd /etc rm -rf namedb.orig
cd any/where/server-A/namedb/bak svn propedit svn:ignore . --editor-cmd=vi (エディタ画面でアスタリスク(*)を入力する) svn ci -m "bak dir is needed without any file." svn commit svn update cd any/where/server-B/namedb/bak svn propedit svn:ignore . --editor-cmd=vi (エディタ画面でアスタリスク(*)を入力する) svn ci -m "bak dir is needed without any file." svn commit svn update ssh Server-A cd /etc/namedb svn update ssh Server-B cd /etc/namedb svn update
管理されているディレクトリの移動
CVSでは、Repositoryで管理されているディレクトリーを「管理記録を残したまま」移動することは、 構造上不可能ですが、SVNはこれが出来るようになっています。やり方は簡単です。
foo/bar +- .svn +- Dir-A +- Dir-B +- OLD + +- .svn | +- Dir-OA | +- Dir-OBと言うような構造になっているディレクトリのDir-BをOLD/Dir-OCにしたい場合には、以下のように します。Last modified: Fri May 29 01:05:02 JST 2009
- cd foo/bar
- svn update
- svn move DIR-B OLD/Dir-OC
- svn ci
- svn commit
- svn update