紹介マニアMoinMoin

概要

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

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 : 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パッケージ出るまで手でコンパイルしてましたが、やめました。。

Win

SubversionWindowsInstall - OBOE-GAKI - Tracかなり詳細でわかりやすい

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 <REV>] <URL>[@<PEGREV>] [<パス>]
2. export [-r <REV>] <パス 1>[@<PEGREV>] [<パス 2>]

TortoiseSVNで変更のあったファイルだけexport

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://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

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

scplugin.tigris.org

http://rapidsvn.tigris.org/

Einhugur Software

La Chose Interactive - Subversion

subcommander.tigris.org

SmartSVN

参考サイト

http://www.xsteve.at/prg/vc_svn/svn.txt

Subversion: 公式ガイド

Subversion によるバージョン管理

Subversion-jpメーリングリスト

subversion不徹底入門

Subversionで管理せよ (draft)

Subversion - Saisse's Wiki

http://terai.s55.xrea.com/?Subversion

http://www.imasy.or.jp/~tai/wiki/index.php?UsingSubversion

subversion のインストールと設定

Subversionでバージョン管理

http://slashdot.jp/article.pl?sid=04/02/23/154210

Subversion メモ

Subversionコミット時メール送信とTracチケットの自動クローズ — Weboo! Returns.

marsのメモ trac-post-commit-hookが便利すぎる

FrontPage - Subversion-wiki

Mac OS Xでの利用関係

scplugin.tigris.org

svnX - La Chose Interactive

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))


CategoryProgramingTools

紹介マニアMoinMoin: Subversion (last edited 2010-04-19 00:04:38 by sakito)