Subversion の使い方

というか, 主に psvn でジタバタ.

導入

Debian 4.0(etch) の subversion 付属の psvn.el は, hide 状態の時に一行ずれる. 詳しくは psvn.el で hide 状態の時にマークすると表示が崩れる にて. Rev 19618 にて修正されているらしい.

とりあえず patch 当てて適当にパッケージ再構築.

psvn の設定

;; 読み込み
(require 'psvn)
;; dired にて V を押すと svn-status へ.
(add-hook 'dired-mode-hook
          '(lambda ()
             (require 'dired-x)
             ;;(define-key dired-mode-map "V" 'cvs-examine)
             (define-key dired-mode-map "V" 'svn-status)
             (turn-on-font-lock)
             ))
;; 変更の無いファイルは status で表示しない
(setq svn-status-hide-unmodified t)
;; 日本語ログ. UTF-8 で.
(setq process-coding-system-alist
      (cons '("svn" . utf-8) process-coding-system-alist))

日本語ログを使用する際には, 適切なエンコーディングになるように svn に wrapper を噛ませる. PATH の読み込みが早い方に

#!/bin/sh

unset LC_ALL
LANG=ja_JP.UTF-8
LC_TIME=C
LANGUAGE=C
export LC_TIME LANG LANGUAGE
exec /usr/bin/svn "$@"

みたいに. エンコーディングは適宜.

プロジェクトの開始

とりあえず, svn+ssh でアクセスすることに.

repository の作成

server 側で,

$ svnadmin create /directory/to/repos

すると repository が作成される. とりあえず ~/work/svn_repos に作成.

import と checkout

client 側で

svn import project svn+ssh://user@server/directorey/to/repos/trunk/project \
  -m "initial import"
svn co svn+ssh://user@server/directory/to/repos/trunk/project project

みたいにして.

Tips

propset svn:ignore の時に, ファイルを複数指定することはコマンドラインでは...ちょっと面倒. 改行区切りでファイルを記述するので, エディタで記述する, もしくは svn-status で P-i で記述してコミットすれば良い.

参考

... すげーしっかり書いてるなぁ, とか思ったら高木さんとこだった.