// 下階層用テンプレート #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です。 ---- この記事は #vote(おもしろかった,そうでもない) - SVNParentPath /opt としないで SVNPath /opt/svnrootなどとしてる場合も動きます。もちろん。 -- [[きの]] &new{2007-06-11 (月) 01:54:26}; #comment #topicpath SIZE(10){現在のアクセス:&counter;}