#pragma section-numbers off [[TableOfContents]] = 概要 = Subversion は CVSに換る事、および最近の状況を組み込む事を目標としたバージョン管理システム。 subversion 1.0.1 を元に記述する。またApacheと連携とかは後まわしにして、個人環境で利用する方法を主にメモする。 とにかく楽に利用しようというのが基本です。 = URL = http://subversion.tigris.org/ http://www.contactor.se/~dast/svnusers/ http://arch.bluegate.org/mailman/listinfo/subversion-jp = インストール = == dmg == パッケージが存在します。 [http://metissian.com/projects/macosx/subversion/ Metissian - Projects - Mac OS X Packages - Subversion] [http://www.codingmonkeys.de/mbo/ Martin Ott] [http://www.codingmonkeys.de/mbo/articles/tag/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いれてないと出るはずです) https://connect.apple.com/ いって 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 == [http://www.strikeout.jp/oboe-gaki/wiki/SubversionWindowsInstall SubversionWindowsInstall - OBOE-GAKI - Trac]かなり詳細でわかりやすい [http://terai.xrea.jp/Subversion.html Subversion - てんぷらメモ] = 設定 = == 環境変数 == {{{ 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 ] [@] [<パス>] 2. export [-r ] <パス 1>[@] [<パス 2>] }}} TortoiseSVNで変更のあったファイルだけexport * ログを開く * 2つのrevisionを選択する * 右クリック->"compare revisions" * リストのすべてのファイルを選択する * 右クリック->"export to..." = Apache との連携 = 通常は不要です。svnserverを利用するのが楽。 httpd.confに設定 {{{ DAV svn SVNPath /home/svn/sample }}} 複数レポジトリ対応するなら {{{SVNParentPath}}} パス認証するなら以下のように設定 {{{ DAV svn SVNPath /usr/subversion/rep AuthType Basic AuthName "Subversion Repository" AuthUserFile /usr/local/svn/svn-auth-file Require valid-user }}} = svk = 分散環境を作成できる http://svk.elixus.org/ 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 [http://gomimemo.g.hatena.ne.jp/koyachi/20060514/1147589956 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 == [http://scplugin.tigris.org/ scplugin.tigris.org] http://rapidsvn.tigris.org/ [http://www.einhugur.com/iSvn/index.html Einhugur Software] [http://www.lachoseinteractive.net/en/community/subversion/svnx/features/ La Chose Interactive - Subversion] [http://subcommander.tigris.org/ subcommander.tigris.org] [http://www.smartcvs.com/smartsvn/ SmartSVN] = 参考サイト = http://www.xsteve.at/prg/vc_svn/svn.txt [http://shiba.zive.net/ Subversion: 公式ガイド] [http://subversion.bluegate.org/ Subversion によるバージョン管理] [http://arch.bluegate.org/mailman/listinfo/subversion-jp Subversion-jpメーリングリスト] [http://ukai.jp/debuan/2002w/subversion.txt subversion不徹底入門] [http://ukai.jp/Articles/2003/uu-svn/ Subversionで管理せよ (draft)] [http://www.saisse.jp/pukiwiki/pukiwiki.php?Subversion Subversion - Saisse's Wiki] [http://terai.s55.xrea.com/?Subversion] http://www.imasy.or.jp/~tai/wiki/index.php?UsingSubversion [http://www.yamaizumi.org/subversion.html subversion のインストールと設定] [http://www.02.246.ne.jp/~torutk/subversion/intro.html Subversionでバージョン管理] http://slashdot.jp/article.pl?sid=04/02/23/154210 [http://www-aos.eps.s.u-tokyo.ac.jp/~takagi/SubversionMemo.html Subversion メモ] [http://yamashita.dyndns.org/blog/247 Subversionコミット時メール送信とTracチケットの自動クローズ — Weboo! Returns.] [http://d.hatena.ne.jp/masanobuimai/20060512#1147445105 marsのメモ trac-post-commit-hookが便利すぎる] [http://wiki.machband.org/svn/ FrontPage - Subversion-wiki] = Mac OS Xでの利用関係 = [http://scplugin.tigris.org/ scplugin.tigris.org] [http://www.lachoseinteractive.net/en/community/subversion/svnx/features/ svnX - La Chose Interactive] http://www.pycs.net/bbum/2004/2/24/#200402241 http://www.pycs.net/bbum/2004/2/28/#200402281 = .emacs = {{{ #!/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)) }}} ---- CategoryProgramingTools