日常のsubversion
やりたいことは,自宅と職場のFreeBSDマシンで,シームレスにプログラミングを継続したいということなんです.そこで,こんなことをやってます.
- まずどちらかのマシン(私の場合は職場のマシン)でsubversionサーバをたて,開発ディレクトリをインポートとチェックアウトをする.例えば
# svnadmin create /var/svn/develop
# svn import ~/develop file:///var/svn/develop
# cd ~/project
# svn checkout file:///var/svn/develop
- プログラミング中の画面も継続させるためにscreenを使う.
# screen -s develop -T develop
# ssh -l tullio -L 8022:subversionサーバ:22 職場のproxyサーバ
(あらかじめ~/.subversion/configのtunnelセクションで,
ssh=$SVN_SSH ssh -p 8022
を設定しておく)
# svn checkout svn+ssh://localhost/var/svn/develop
# screen -s develop -T develop
一度設定が終われば,あとは
です.ただしファイアーウォールの外では,ポートフォワードが必要です.
あと,ファイルはsvn updateで同期がとれるのですが,emacsの中のバッファには前のファイルが入っています.だからsvn updateしたあと,エディタで編集作業に入ると,
foo.cc changed on disk; really edit the buffer? (y, n, r or C-h)
って聞かれます.これが面倒なので,emacsに(多分デフォルトで付いてくる)auto-revert-modeを使うのがラクだと思います.
M-x auto-revert-mode
試しにemacsのバッファで編集中のファイルを,あえて別にもう一度開いて編集して保存すると,元のバッファの内容がにょきっと編集されたものに変わります.
これで開発環境はいつもシームレス.