CodingFirst

C言語、Perl、JavaScript、最近はPythonも。出来上がったものより、プログラムを書くことが好き。あと、スイーツ。

スポンサーサイト

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

svnserve をちょっと使ってみる

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2

svnserveを使ってみた。Subversionリポジトリをちょっといじりたいときに、面倒な設定なしで行うのに丁度よさそうだったので。

環境は OSX 10.8.1 Mountain Lion。
svn は xcode についてたやつだったかな。1.6系で最新ではなく安定板ってとこかな。

$ svn --version
svn, version 1.6.18 (r1303927)
   compiled Jun 15 2012, 19:07:58
...

では、svnリポジトリを作成する。これは1行。

$ svnadmin create sample.svn

svnリポジトリにアクセスしてみる。file://のほうで。

$ svn info file://$PWD/sample.svn
Path: sample.svn
URL: file:///path/to/repos/sample.svn
Repository Root: file:///path/to/repos/sample.svn
Repository UUID: 3cb042f2-8d83-434c-bc21-ada7f8441fee
Revision: 0
Node Kind: directory
Last Changed Rev: 0
Last Changed Date: 2012-09-26 23:19:54 +0900 (水, 26  9 2012)

これを svnserve でもやってみる。
svnserve の立ち上げは、daemon と inetd が選択できるらしいが、簡単そうな daemon にする。あと、面倒を避けるため予めファイアーウォールを開けとく。
「システム環境設定」→「ファイアーウォール」から「ファイアーウォールを切にする」を選ぶ。

$ svnserve -d --foreground -r test.svn

-d はdaemon、あと、--foreground 付けといて用が済んだら Ctrl-C で終われるようにする。

さてと、svnserve にアクセスしてみる。

$ svn info svn://localhost/
Path: localhost
URL: svn://localhost
Repository Root: svn://localhost
Repository UUID: 3cb042f2-8d83-434c-bc21-ada7f8441fee
Revision: 0
Node Kind: directory
Last Changed Rev: 0
Last Changed Date: 2012-09-26 23:19:54 +0900 (水, 26  9 2012)

アクセスできた。内容は URLは違うくらいで file:// と同じ。

あと、hook-script も試してみよう。

$ cd sample.svn/hooks/
$ cp post-commit.tmpl post-commit
$ chmod u+x post-commit

post-commit に以下の行を追加する。

echo "$REPOS $REV" > post-commit.log

あと、conf/svnserve.conf  の [general] 節に下記行を追加する。

anon-access = write

svnserve で動作確認してみる。

$ svn co http://localhost/ sample-svnserve
$ cd sample-svnserve
$ echo 'hello' > hello
$ svn add hello
A         hello
$ svn ci -m '1st'
Adding         hello
Transmitting file data .
Committed revision 1.
$ cat ../post-commit.log
/path/to/repository/sample.svn 1

これを file:// のほうでも試してみる。post-commit 動くのかな...

$ svn co file://$PWD/sample.svn sample-file
A    sample-file/hello
Checked out revision 1.
$ cd sample-file
$ echo 'world' > hello
$ svn ci -m '2nd'
Sending        hello
Transmitting file data .
Committed revision 2.
$ cat post-commit.log 
/path/to/repository/sample.svn 2

post-commit は、svnserve でも file:// でも動いた。
file://の方で動くのは意外だった。これなら hook のテストはわざわざ svnserve にするまでもなく、file:// の方でいいな。

あと、post-commit の出力先が面白い。file:// の方はコミット時のディレクトリ、post-commit は daemonの起動ディレクトリに出力されてたので、実行時のディレクトリがワーキングディレクトリなのだろう。注意せねば。

スポンサーサイト

 | HOME |  »

Search

Recent Entries

Foot Print



Categories

Monthly

Recent Comments

Recent Trackbacks

Profile

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。