Contents
概要
Subversion は CVSに換る事、および最近の状況を組み込む事を目標としたバージョン管理システム。
subversion 1.0.1 を元に記述する。またApacheと連携とかは後まわしにして、個人環境で利用する方法を主にメモする。
とにかく楽に利用しようというのが基本です。
URL
http://www.contactor.se/~dast/svnusers/
http://arch.bluegate.org/mailman/listinfo/subversion-jp
svn st -u svn diff svn log --stop-on-copy svn copy svn move svn merge --dry-run svn diff --diff-cmd /usr/bin/diff -x -BbwEu svn ci svn up
インストール
dmg
パッケージが存在します。
Metissian - Projects - Mac OS X Packages - Subversion
Martin Ott : Martin Ott - tag subversion
Finkの利用
Fink でインストールするのが楽
http://fink.sourceforge.net/pdb/package.php/svn
http://fink.sourceforge.net/pdb/package.php/svn-ssl
もしネットワーク越しに利用するならsvn-sslが良い。
fink selfupdate-rsync fink install svn-ssl fink install svn-client-ssl
パッケージの選択によっては、いろんな物がインストールされます。
Can't resolve dependency "system-java14-dev"
といわれるかもしれない。(BuildDependsの記述あるのでJavaが1.4.2なのにDev Pacageいれてないと出るはずです)
いって Java 1.4.2 Developer Packageを取得してください。これないとだめです。
ソースインストール
ソースからインストールする場合は
http://subversion.tigris.org/project_packages.html
からtarballを取得します。
以下の物が必要です。Finkパッケージ出るまで手でコンパイルしてましたが、やめました。。
Neon library 0.24.4 (http://www.webdav.org/neon/)
Berkeley DB 4.X (http://www.sleepycat.com/download/db/index.shtml)
Apache Portable Runtime 0.9.5 (http://apr.apache.org/)
Win
SubversionWindowsInstall - OBOE-GAKI - Tracかなり詳細でわかりやすい
設定
環境変数
svn --help
してみてください。
当然PATHが設定されていないと起動しません。あと、まったく設定しないで起動すると以下のエラーがでると思います。
svn: error: cannot set LC_CTYPE locale svn: error: environment variable LC_ALL is en
このエラーがでてるってことはfinkでもPerlのエラーがでてると思います。
とりあえず以下に設定してください。
export LC_CTYPE=C export LC_ALL=C
だたしこの設定だと日本語コメント等が書けません。日本語の問題はsvnコマンドにencodingオプションの付加、またはconfigのlog-encodingを付加して回避します。
利用方法
ここでは devproject がレポジトリ名です。通常はプロジェクト単位でレポジトリを作成するのがおすすめです。しかし、個人で利用するなら自分の開発する物をすべて単一プロジェクトとしてしまうってもかまいません。
/Users/sakito は ホームディレクトリです。適時読み変えてください。
$ mkdir -p ~/var/svn/ $ svnadmin create /Users/sakito/var/svn/devproject --fs-type fsfs $ svn mkdir -m "initial setup" file:///Users/sakito/var/svn/devproject/trunk $ svn mkdir -m "initial setup" file:///Users/sakito/var/svn/devproject/tags $ svn mkdir -m "initial setup" file:///Users/sakito/var/svn/devproject/branches $ cd ~/dev $ ls python java scheme <略>... $ svn co file:///Users/sakito/var/svn/devproject/trunk . $ svn add python java scheme $ svn ci -m "start loading it in"
上記は ~/dev 内の物を登録しています。これはdev内の物すべてを管理化に置きたくなかったためにやっています。通常は以下のようにします。
$ svn import -m "initial setup" /Users/sakito/dev file:///Users/sakito/var/svn/devproject/trunk
無視パターンの設定
.classとか.pycとかを管理化におきたくないという要求がある場合に設定します。
config
$HOME/.subversion/configを設定します。
[miscellany] global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store *.class *.pyc
tag
svn copy -m 'tag applescript-mode-0.0' file:///Users/sakito/var/svn/devproject/trunk/applescript-mode/ \ file:///Users/sakito/var/svn/devproject/tags/applescript-mode-0.0
確認
svn ls file:///Users/sakito/var/svn/devproject/tags/
バックアップ
svnadmin dump Users/sakito/var/svn/devproject/tags/ | gzip -9 > `date "+devproject%Y-%m-%d_%H:%M:%S.gz"`
リリース物の作成( cvs release )
.svnを含まない状態にしたい場合は export をおこないます。cvs releaseと似ていますが結構いろいろできます。
1. export [-r <REV>] <URL>[@<PEGREV>] [<パス>] 2. export [-r <REV>] <パス 1>[@<PEGREV>] [<パス 2>]
TortoiseSVNで変更のあったファイルだけexport
- ログを開く
- 2つのrevisionを選択する
右クリック->"compare revisions"
- リストのすべてのファイルを選択する
右クリック->"export to..."
Apache との連携
通常は不要です。svnserverを利用するのが楽。
httpd.confに設定
<Location /svn> DAV svn SVNPath /home/svn/sample </Location>
複数レポジトリ対応するなら SVNParentPath
パス認証するなら以下のように設定
<Location /svn> DAV svn SVNPath /usr/subversion/rep AuthType Basic AuthName "Subversion Repository" AuthUserFile /usr/local/svn/svn-auth-file Require valid-user </Location>
svk
分散環境を作成できる
http://svn.elixus.org/svnweb/repos/browse/member/clkao/svk/
http://www.contactor.se/~dast/svnusers/archive-2004-06/0463.shtml
http://www.contactor.se/~dast/svnusers/archive-2004-06/0474.shtml
gomimemoグループ - koyachiの53memo - svk操作流れ
トラブルシュート
Can't recode stringが出る
localeを適切に設定してください。
Mac OS Xで利用可能なlocaleは/usr/share/locale/以下を参照してください。
unable to convert to/from UTF-8が出る
入力のエンコーディングが不正です。
Tools
svnservice
Winでサービスとしてsvnサーバを構築するためのツール
http://dark.clansoft.dk/~mbn/svnservice/
GUI Client
La Chose Interactive - Subversion
参考サイト
http://www.xsteve.at/prg/vc_svn/svn.txt
http://terai.s55.xrea.com/?Subversion
http://www.imasy.or.jp/~tai/wiki/index.php?UsingSubversion
http://slashdot.jp/article.pl?sid=04/02/23/154210
Subversionコミット時メール送信とTracチケットの自動クローズ — Weboo! Returns.
marsのメモ trac-post-commit-hookが便利すぎる
Mac OS Xでの利用関係
http://www.pycs.net/bbum/2004/2/24/#200402241
http://www.pycs.net/bbum/2004/2/28/#200402281
.emacs
http://www.xsteve.at/prg/emacs/psvn.el
#!/bin/sh unset LC_ALL LANG=ja_JP.UTF-8 LC_TIME=C LANGUAGE=C export LC_TIME LANG LANGUAGE exec /usr/local/svn/bin/svn "$@"
(require 'psvn) (setq svn-status-hide-unmodified t) (setq process-coding-system-alist (cons '("svn" . utf-8) process-coding-system-alist))