* 文字コード [#z0cba055]
-メタデータ(ファイル名やログの中身など)については Unicodeで扱い、クライアント側で必要に応じて文字コードの変換を行う
-リポジトリ内のファイル
--改行コードはクライアント側の環境に応じて変換する(text扱いのもののみ)
--eol-style属性を指定した場合のみ(デフォルトはバイナリ扱いらしい)
--文字コードは一切変換しない
* インストール [#se20e37e]
-[[Subversionの導入と使用:http://rogiken.org/wiki/index.php?Subversion%A4%CE%C6%B3%C6%FE%A4%C8%BB%C8%CD%D1]]
-[[Subversionのインストール:http://smdn.invisiblefulmoon.net/index.php?cmd=read&page=Linux%2FFedora%20Core%2FSubversion]]
** 必要なもの [#j2804e7b]
-[[Subversion:http://subversion.tigris.org/]]
-[[Berkeley DB:http://www.oracle.com/technology/software/products/berkeley-db/db/index.html]]
-Python(2.0以上)
** svnserve を xinetd 経由で起動 [#i1a1e16b]
(1) /etc/xinet.d/svnserve を作成
service svnserve
{
disable = no
socket_type = stream
wait = no
user = svn
server = /usr/local/bin/svnserve
server_args = -i -r /var/svn
log_on_failure += USERID
only_from = 192.168.255.0/24 127.0.0.1
}
(2) /etc/hosts.allow を編集
svnserve : 192.168.0. 127.0.0.1
(3) /etc/services を編集
#svn 3690/tcp # Subversion
#svn 3690/udp # Subversion
svnserve 3690/tcp # Subversion
svnserve 3690/udp # Subversion
(4) サービス起動
$ chkconfig --add svnserve
$ chkconfig --list svnserve
「svnserve: on」と表示されるのを確認
$ service xinetd restart
** リポジトリの作成 [#u0eae334]
-リポジトリのオーナー:svn
-リポジトリのルート:/var/svn
として説明
(1) 作成
$ su - svn
$ svnadmin create /var/svn/[Repository Name]
$ svn mkdir file://localhost/var/svn/[Repository Name]/trunk -m "trunk"
$ svn mkdir file://localhost/var/svn/[Repository Name]/tags -m "tags"
$ svn mkdir file://localhost/var/svn/[Repository Name]/branches -m "branches"
(2) /var/svn/[Repository Name]/conf/svnserve.conf の編集
[general]
# 匿名アクセスに対して読み書きの権限を与えます。
anon-access = none
# 認証を通過したアクセスに対しては読み書きの権限を与えます。
auth-access = write
# パスワードファイルの場所を相対パスで示します。
password-db = passwd
# 認証ルールファイルの場所を相対パスで示します。
#authz-db = authz ※使わないのでコメントアウト
# リポジトリの説明を記載
realm = [Description]
*** 参考:リポジトリ作成シェルスクリプト [#n15cedf7]
#!/bin/sh
if [ $# -ne 1 ]
then
echo "Usage: makeRepository.sh RepositoryName"
exit 0
fi
if [ -d /var/svn/$1 ]
then
echo "'$1' already exists."
exit 0
fi
echo "Please select Database Type."
echo " [1] fsfs"
echo " [2] Berkeley DB"
read -n 1 -p " > " DB_NO
echo
echo
case $DB_NO in
1 )
echo "Generate Repository: $1 (fsfs)"
svnadmin create --fs-type fsfs /var/svn/$1
;;
2 )
echo "Generate Repository: $1 (Berkeley DB)"
svnadmin create --fs-type bdb /var/svn/$1
;;
* )
echo "Please input 1 or 2."
exit 0
;;
esac
echo
echo "Add trunk to $1."
svn mkdir file://localhost/var/svn/$1/trunk -m "trunk"
echo
echo "Add tags to $1."
svn mkdir file://localhost/var/svn/$1/tags -m "tags"
echo
echo "Add branches to $1."
svn mkdir file://localhost/var/svn/$1/branches -m "branches"
echo
echo "You have to edit /var/svn/$1/conf/svnserve.conf and passwd"
echo
* Eclipse + Subversion [#b7c1512b]
-[[Subclipse プラグイン:http://eclipsewiki.net/eclipse/?Subclipse%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3]]
-[[Subclipseのインストール方法:http://server.seasar.org/manual/install_subclipse.html]]
-[[eclipse3.2にsubclipseをインストールするときのトラブル解決メモ:http://kamiwarashi.blogspot.com/2007/02/eclipse32subclipse.html]]
-[[Eclipse Mylarってなに? - 基礎編 体験してみる? タスク指向UI:http://journal.mycom.co.jp/articles/2007/01/10/eclipsemylar1/]]
* TortoiseSVN [#z2f26464]
-[[TortoiseSVN でファイルのバージョン管理をしてみる (1) :http://hiromasa.zone.ne.jp/blog/archives/454/]]
-[[TortoiseSVN でファイルのバージョン管理をしてみる (2) :http://hiromasa.zone.ne.jp/blog/archives/455/]]
-[[TortoiseSVN でファイルのバージョン管理をしてみる (3) :http://hiromasa.zone.ne.jp/blog/archives/463/]]
-[[TortoiseSVN ユーザガイド:http://tortoisesvn.bluegate.org/Help/dailyuseguide.html]]
* Visual Studio + Subversion [#g51b8580]
-[[Visual StudioをSubversionリポジトリと連携する:http://feedtailor.jp/oishi/2007/03/visual_studiosubversion_1.html]]
-[[AnkhSVN:http://ankhsvn.tigris.org/]] ... Apache License
-[[VisualSVN:http://www.visualsvn.com/]]
** Ankhの使い方 [#t8abcaea]
1. プロジェクトを開き、ソリューション 'xxx' を右クリック~
2. Ankh => Add solution to Subversion repository を選択~
3. LocationのURL欄にリポジトリのURL(svn://svnserver/projectA/trunk など)を入力し、OKを押す~
4. Authenticateダイアログでユーザ/パスワードを入力し、OKを押す~
5. Commitダイアログを適当に編集し、Commitを押す
* ASP.NET、Webサービスのプロジェクトを管理する場合の注意点 [#vb4aa3cb]
** .svn / _svn [#yb8e454e]
subversionで管理を開始するときに、TortoiseSVNを利用したりするが、「.svn」が、
各階層に作成される。
その対象が、IISで仮想ディレクトリとしてパスを通しておくと、実際にVisual Studio .NETで、.slnファイルを開こうとし、「プロジェクトの更新に失敗しました。フォルダ情報をサーバから取得できません」というエラーメッセージが表示される。これの回避策は以下の通り。
【回避策】~
1. TortoiseSVNの設定にある「「.svn」から「_svn」に変更する」にチェックを入れ、_svn を使用するようにする~
2. PCを再起動~
3. 既存のワーキングコピーの全ての .svn を _svn にリネーム~
4. 各ワーキングコピーで update を行う~
この回避策を行うと環境変数に
変数:SVN_ASP_DOT_NET_HACK
値:*
が追加されます。
** ASP.NET、Webサービスのプロジェクト作成 [#za64fb3e]
【この方法は現在実験中!!】~
Visual Studio .NETでASP.NET、Webサービスのプロジェクトを作成すると C:?Inetput?wwwroot 配下にファイルが作られるため、Ankhだとソリューションファイルしか管理できない。~
これを回避する方法として以下の裏技がある。~
~
1. IISマネージャで既定のWebサイトを右クリックし、新規作成 => 仮想ディレクトリ を選択~
2. エイリアス:<プロジェクト名> を入力~
3. パス:<VisualStudioのプロジェクトのルートフォルダ>/<プロジェクト名>/www を入力~
※ 予め上記フォルダを作成しておく~
4. 上記を行ってから通常通りプロジェクトを作ると <VisualStudioのプロジェクトのルートフォルダ>/<プロジェクト名>/www にファイルが作成されて、全部のファイルを管理することができる
* All-In-One Trac [#rebc5b0c]
-[[All-In-One Tracのコマンド:http://d.hatena.ne.jp/uk-studio/20070216]]
-[[TRAC使ったので使い方載せておく:http://kamezo.cc/blog/entry/9758]]
** 使い方 [#c3a8897b]
-ソリューションエクスプローラで「ソリューション 'xxx'」を右クリック
-Ankh => Add solution to Subversion repository を選択
-リポジトリ名を入力
svn://<サーバ名>/<プロジェクト名> (/trunk)
http://<サーバ名>:<ポート>/svn/<プロジェクト名> (/trunk)
file:///<ドライブ>:/<フォルダ> (/trunk)
-これでソリューションエクスプローラ上でTortoiseSVNのように使えるようになる
* Tips [#bba36ed1]
-[[TortoiseSVN でオフィスドキュメントの差分をチェック:http://espion.just-size.jp/archives/05/175212026.html]]