Meadow から Subversion を使ってみる
Subversionのごくごく基本は掴めたので、
ついでにpsvn.elというElispを使って
MeadowからSubversionを使ってみることにした。
psvn.elを使うにはpsvn.elをsite-lisp以下に置いて、
以下を.emcasに追加すればOK。
;;; psvn の設定 ;; EmacsからSubversionを使う (require 'psvn)
で、早速使ってみたんだけど、
いやー・・・これが全然分からない( ´・ω・`)
とりあえず今回分かったことをメモしておく。
以下、全ての操作はMeadow上で行う。
リポジトリの作成
まずSVNで使うリポジトリ用のディレクトリを用意する。
C-x f /svn/で、/svn/をdiredで開き、+ を入力してディレクトリの作成。
ディレクトリ名はjinro。
(人狼のプロジェクトなのです。)
次にリポジトリの作成。
M-x svn-admin-create がそのものずばりなコマンドっぽいけど、
うまくリポジトリができてるのか不安なので、
eshellから以下を入力する方が安心。
> svnadmin create /svn/jinro/
インポート
リポジトリにバージョン管理するファイルとディレクトリをインポートするため、
C-x f ~/ruby/jinro/ で移動。
+ で3つのディレクトリ trunk、tags、branches を作る。
そして、元々 ~/ruby/jinro/ にあったファイルとディレクトリを、
丸ごと trunk 以下に移動させる。
ファイルとディレクトリの上で m を押せば * マークがつき、
C を入力するとマークしたものをまとめて移動できる。
psvnでのインポートは、たぶんきっと M-x svn-admin-start-import
から行うのだろうけど、これがほんとによく分からないので、
やっぱりeshellから以下のようにインポートする。
C:\home\gan2\ruby\jinro> svn import . file:///c:/svn/jinro/
リビジョン1をコミットしました。
というメッセージが出ればOK。
インポート(psvn)
M-x svn-admin-start-create をすると、
ローカルにリポジトリを作るか?と聞かれるがこれは n と答えておく。
リポジトリのURLは file:///c:/svn/jinro/。
ちなみに、y と答えておいて、
/svn/jinro/と入力すると、
file://c:/svn/jinro/ は間違ったURLですみたいなことを言われる。
うん間違ってるね。file:/// のところ / 1つ足りないよ。
だから y とはしないで n とすること。
それでなんか、diredっぽいバッファが開くんだけど、
ここで何をどうしたらインポートしたことになるのかが分からない・・・。
チェックアウト
チェックアウトも、M-x svn-checkout を使うと、
できたようなできてないようなよく分からないことになるので、
やっぱりeshellでやる*1。
だけどその前に、このままだとチェックアウトができないので、
.svn以外のファイルとディレクトリを一旦全部消す。
diredなら、d を入力したところに、 D マークがつく。
まとめてマークをつけて、x で一括削除。
チェックアウトは以下のコマンドでOK。
C:\home\gan2\ruby\jinro> svn checkout file:///c:/svn/jinro/ .
これで、リビジョン1をチェックアウトしましたって出る。
ここから psvn の出番
ここからは分かる。
M-x svn-status で dired チックなバッファが表示され、
バージョン管理されているファイルやディレクトリと、
そのリビジョンを確認することができる。
ファイルを編集すればその頭に M がつく。
コミットしたいファイルの上で c を入力すれば、
コメント用のバッファが開く。
コメントを入力して(しなくてもいいけどした方がいい。)、
C-c C-c でコミットされる。
アップデートは U を押せばできる。Add は A。
参考
- http://www-aos.eps.s.u-tokyo.ac.jp/~takagi/SubversionMemo.html
- Subversionのよくまとまった解説。psvnの紹介は下の方にある。
- psvn
- psvn.elのコメントの和訳(ちょっと古い。)
- http://viz.is-a-geek.com/~viz/cw/index.php?psvn
- よく使うコマンドが表でまとめられている。
- pcl-cvs
- psvnはpcl-cvsとほぼ使い方が同じようなので、ここも参考になる。