- 追加された行はこの色です。
- 削除された行はこの色です。
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents
**複数のリポジトリを公開したい [#q672784a]
サーバ上に
/opt/svnroot1
/opt/svnroot2
というSVNのリポジトリ((つまりたとえば svnadmin create /opt/svnroot1 とかしたってこと))があるとします。
<Location "/svn">
DAV svn
SVNParentPath /opt
</Location>
とhttpd.confに書いておくことで、
http://[サーバ名]/svn/svnroot1/
http://[サーバ名]/svn/svnroot2/
というURLでそれぞれのリポジトリにアクセス可能です。
**ディレクトリごとにアクセス制御する [#xcfc021e]
あるサーバ内で複数のリポジトリやtrunk,branches,tagsなど複数のディレクトリをあつかっているときの、ディレクトリごとのアクセス制御方法です。
httpd.confで
<Location "/svn">
DAV svn
SVNParentPath /opt
AuthzSVNAccessFile /opt/hogehoge/dav_svn.authz
AuthName "Subversion repository"
AuthType Basic
Require valid-user
AuthUserFile /opt/hogehoge/.htpasswd
</Location>
などと書いておき、dav_svn.authz で
[groups]
developer = dev1
[/trunk]
@developer=r
としておきます。
そうすると
http://[サーバ名]/svn/svnroot/trunk/ :dev1で読み可能
http://[サーバ名]/svn/svnroot/branches/ :読み書き不可
http://[サーバ名]/svn/svnroot/tags/ :読み書き不可
となります。
[/trunk] はリポジトリ名指定もできます。
[svnroot1:/trunk]
@developer=r
などと書けば
http://[サーバ名]/svn/svnroot1/trunk/ :dev1で読み可能
http://[サーバ名]/svn/svnroot1/branches/ :読み書き不可
http://[サーバ名]/svn/svnroot1/tags/ :読み書き不可
http://[サーバ名]/svn/svnroot2/trunk/ :読み書き不可
http://[サーバ名]/svn/svnroot2/branches/ :読み書き不可
http://[サーバ名]/svn/svnroot2/tags/ :読み書き不可
となります。
たとえば
-全てのユーザはtrunk,branches,tagsを読み可能
-admin1は何でもできる
-dev1はtrunk,branchesに書き込みも可能(tagsにはコミットできない)
-tester1,tester2はコミット不可能
などとしたい場合は以下のようにしておきます。
[groups]
admin = admin1
developer = dev1
tester = tester1,tester2
#基本的に誰でも読みは可能
#adminは読み書き可能
[/]
* = r
@admin = rw
#さらにdeveloperはtrunkを読み書き可能
[/trunk]
@developer = rw
#さらにdeveloperはbranchesを読み書き可能
[/branches]
@developer = rw
-[[ディレクトリごとのアクセス制御>http://subversion.bluegate.org/doc/ch06s04.html#svn.serverconfig.httpd.authz.perdir]]
**subversionの".svn"を削除するワンライナー [#ad7e66e0]
[[uthorofotus iruc>http://flyfront.blog.shinobi.jp/Entry/6/]]というサイトに載ってました。
$ rm -rf `find ./ -type d -name .svn ! -regex \.svn/. -print`
なるほどー。
**Eclipseでブランチを作る [#t77ce514]
SVN管理しているEclipseプロジェクト上で「チーム >> ブランチ」を選択します。
#ref(eclipse.gif)
ブランチが作成されました。
#ref(viewvc.gif)
確かに作成されていますね。
**ブランチからマージする。 [#w72dd1d9]
Branchでいくらか開発が進捗して、その差分をTrunkにマージする方法です。考え方としては
-ブランチが作られた(枝分かれした)時点から直近まで、のブランチの変更内容を抽出し
-Trunkのワーキングコピーにその差分を反映
-Trunkにコミット
となります。
まずはTrunkをcheckoutしてきたEclipseプロジェクトで「チーム >> マージ」を選択します。
表示されるダイアログで、URLをブランチのURL、Start Revisionを枝わかれしたときのリビジョン、Stop RevisionをHeadにします。
#ref(merge.gif)
これでブランチを作成したときから今までのブランチの変更が、トランクのワーキングコピーに反映されました。後はコミットすればOKです。
**コマンドの覚書 [#le295af0]
***ファイルの追加 [#wed0f752]
svn add *
svn commit
***ファイルの更新 [#m63297ee]
svn update
cvsでいうcvs -q -n((確認だけ。更新しない)) はどうすんのかな??
***ファイルの削除 [#vda6b889]
svn delete classes
svn commit
----
この記事は
#vote(おもしろかった,そうでもない)
- SVNParentPath /opt としないで SVNPath /opt/svnrootなどとしてる場合も動きます。もちろん。 -- [[きの]] &new{2007-06-11 (月) 01:54:26};
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}