EclipseでSubversionを行う方法

EclipseでSubversionを行う方法


Eclipse+Subclipseを利用する。

Subclipseはウィンドウ→ソフトウェア更新→サイトの追加

http://subclipse.tigris.org/update

を登録。

これでインストール可能になる。


インストール後はパースペクティブに「SVNレポジトリ」が追加されるのを確認すること。


puTTYごった煮 インストール

TortoiseSVN インストール


puTTYのpuTTYgenで鍵を作成。公開鍵をSubversionのレポジトリがあるサーバーのログイン情報の

.ssh/authorized_keys

に記述。権限は600。


鍵を作ったら、必ずpuTTYで1回アクセスしてみること。

そうしないと正常にいかないと思われる。


SubcliseやTortoiseSVNで利用する場合、SSHのポートが違ったりするとうまくいかない。

これはSubversionのconfigでトンネルを新たに作ることで可能になる。


これは

C:\Documents and Settings\あなたのアカウント\Application Data\Subversion\config

で記述すればOK。


[tunnels]

の項目に


sakura1 = "C:\\Program Files\\TortoiseSVN\\bin\\TortoisePlink.exe" -ssh -l アカウント -P 22 -i "C:\\Documents and Settings\\あなたのアカウント\\My Documents\\svntest.ppk"


という風に書く。バックスラッシュは2つ入れないとどうもうまくいかない。


EclipseやTortoiseSVN上からSubversionのレポジトリにアクセスしようとすると、

毎回パスワードを聞かれるので、

puTTYごった煮版のpagentを起動し、鍵を登録しておけば、パスワードは聞かれなくなる。


Subversionサーバーがいくつか存在している場合は、その情報をtunnelsに登録しておけば大丈夫。


Eclipseにおいて、

SVNリポジトリ

で新規のリポジトリをインポートして、チェックアウトでプロジェクトを指定すれば、

プロジェクトとして編集することが可能になる。

commitする場合は、プロジェクト上で右クリックして

チーム→コミット

とすればよい。


Eclipseからのcommit後は、即サイトに反映した方が『一人で』開発している場合に楽。

その場合

/home/アカウント/svn/(レポジトリ)/hooks/post-commit



LANG=ja_JP.UTF=8

/usr/bin/svn update /home/アカウント/svnsite/* >> /dev/null 2>&1

というような記述をしてあげて、

/home/アカウント/svnsite/*

がすぐに反映されるようにする。

post-commitは実行権限を付与すること。



これだと、svn updateだけでは所有者が全て変わってしまうので


/home/アカウント/


svn/eccube

レポジトリ


svnsite/test

チェックアウトしたSubversion用ファイル群


test2

実際に公開されるサイト


というものを用意し、post-commitでは


#!/bin/sh

SVN_DIR=/home/アカウント/svnsite/test/

FROM_DIR=$SVN_DIR

TO_DIR=/home/アカウント/test2/


## svn update

cd $SVN_DIR

/usr/bin/svn update $SVN_DIR* >> /dev/null 2>&1

cd -


/usr/bin/rsync --dry-run --delete --checksum --archive --recursive --verbose --exclude '.svn' $FROM_DIR $TO_DIR


answer=$1


if [ "$answer" = "-y" ];

then

answer="y"

else

echo -n "rsync ok? [y/n]"

read answer

fi


if [ $answer = "y" ];

then


/usr/bin/rsync --checksum --recursive --verbose --exclude '.svn' $FROM_DIR $TO_DIR


fi


というスクリプトを実行させるようにする。

rsyncで--archiveをすると、svnsite/testの権限がコピーされてしまうので、これははずす。





コメントをどうぞ