アプリ版:「スタンプのみでお礼する」機能のリリースについて

linux(Ubuntu)でSubVersionサーバを構築したのですが、
初回コミットをしたところエラーが出てしまいました。

エラー--------
svn import /home/svn/snavi/ http://localhost:80/repos/snavi -m "test commit"
svn: PROPFIND リクエスト (相手: '/repos/snavi') が失敗しました
svn: PROPFIND (URL: '/repos/snavi'): 301 Moved Permanently (http://localhost)
--------------

この辺の記事(http://a98.jugem.jp/?eid=222)を参考に
色々試してみたのですが、解決できません。

apacheは起動しており、FireFoxからはテスト用HTML
http://localhost/repos/snavi/test.html
は参照出来ていますが、
http://localhost/repos/snavi/
へのチェックインが出来ないのです。

SVNのルート設定は以下で、

[svn設定]---
(/etc/apache2/mods-enabled/dav_svn.conf)

<Location /svn>
DAV svn
SVNParentPath /home/svn/
</Location>
-------------------------------------------

http://localhost:80/repos はSVNルートへのシンボリックリンクです。

[web(apache)設定]----------------
(ドキュメントルート)
http://localhost → /opt/lampp/htdocs

(シンボリックリンク)
$ls -la /opt/lampp/htdocs
lrwxrwxrwx 1 www-data www-data 9 2012-10-04 22:28 repos -> /home/svn

-------------------------------------------

SVNルート以下には

------------------------------------------
cd /home/svn/
svnadmin create snavi
------------------------------------------
のようにsnaviブランチを作成したのですが、
やはりhttp://localhost/repos/snavi/
へのチェックインが出来ません。

有識者の方、いらっしゃいましたらどうか
ご教授のほど宜しくお願い致します。

A 回答 (2件)

妙な構築の仕方していますねぇ……。



>$ls -la /opt/lampp/htdocs
>lrwxrwxrwx 1 www-data www-data 9 2012-10-04 22:28 repos -> /home/svn

で、/home/svnには…
>cd /home/svn/
>svnadmin create snavi
により「snaviリポジトリ」(ブランチではありません)があるんですよね?

で、その/home/svn/snaviの中身を
>svn import /home/svn/snavi/ http://localhost:80/repos/snavi -m "test commit"
でインポートしたい。と。

/home/svn/snaviにあるのがリポジトリに入れたい中身で、
http://localhost:80/repos/snaviに……(つまり/home/svn/snaviの中に)入れたい…と。
http://localhost:80/repos/snaviに入れると/home/svn/snaviの中が更新され、更新された内容をリポジトリに入れる処理を行うと結果として/home/svn/snaviが更新され、
その変更をリポジトリに適用すると結果として/home/svn/snaviが更新され、
さらにその変更をリポジトリに適用すると結果として/home/svn/snaviが更新され、
またまたさらにその変更をリポジトリに適用すると結果として/home/svn/snaviが更新され(以下略)って循環してませんか?

と、まぁ実際にはそういう動作はしませんかね。
SVNリポジトリとして動作できるのは
><Location /svn>
>DAV svn
>SVNParentPath /home/svn/
></Location>
により、localhost/svn/~の時だけです。
localhost/repos/snaviでアクセスできるのはリポジトリの「中身の管理用ファイルとディレクトリ」であって、リポジトリではありません。
そんなワケでsvnコマンドがHTTPプロトコルを利用して発行するコマンドに応答されませんので、SVNリポジトリとしては使えません。
それが…
>svn: PROPFIND リクエスト (相手: '/repos/snavi') が失敗しました
ってエラーです。


その上で……
・リポジトリ元のディレクトリはドコに置きたいのか。
・HTTPでリポジトリにアクセスする時のURLはどういう形式にしたいのか。
を決めないとならないでしょう。

ちなみに、今の設定でもhttp://localhost/svn/snaviでアクセスできるかと思われます。
svn info http://localhost/svn/snavi
でUUIDやリビジョン(0だと思いますが)は確認できるかと。
コミットはたぶんできませんけどね。
# 認証用の情報がありませんし。

インポート元のファイルがある場所とリポジトリのあるディレクトリをごっちゃにするのもよろしくありません。
# あと…チェックアウトしたワーキングコピーとインポート元・リポジトリのディレクトリをごっちゃにしないように。
    • good
    • 0

ああ、あとubuntuのバージョンは明記したほうがよいかと。



「ubuntu svn サーバ」で検索すると
http://d.hatena.ne.jp/kslash/20071122/1195741209
とか見つかります。
# dav_svn.confの編集内容見る限り、こちらを参照されたのかも知れませんが。
# 認証用のファイル無くてもフルアクセスできる…んですねぇ……。

>Subversionを使う上で、この辺のファイルを直接いじることはまずない。
とか書かれていますが、HTTPプロトコルでリポジトリにアセスする場合(とfile://でアクセスする場合)は編集不要ですが、
svnプロトコル(ssh+svnプロトコル)でアクセスする場合は編集が必要です。


>svn: PROPFIND (URL: '/repos/snavi'): 301 Moved Permanently (http://localhost)
に関しては、掲示されたURLにあるとおりですな。
SVNリポジトリのディレクトリは、普通のHTTPリクエストでたどれる場所(今回の場合は/repos/~でアクセスできちゃう)に置いてはダメ…ということです。


http://d.hatena.ne.jp/GreenTea2010/20110520/1305 …
どっちかというとこっちの方が参考になるかと思われます。
認証用のファイルの作成についても説明されていますし。
>sudo htpasswd -c /etc/apache2/dav_svn.passwd (ユーザー名)
は最初に作成するときだけで、ユーザを追加するときは「-c」は不要ですのでご注意を。
    • good
    • 0
この回答へのお礼

毎日向き合っていたのですが、諸々煮詰まってしまい更新が遅れてすみません。
ご指摘のように、やりたい事が迷走していたので整理してみました。

やりたいこと--------
[リポジトリ]/home/svn/repos
[ブランチ ]/home/svn/repos/snavi

として、http://localhost/svn/repos/snavi
へアクセスし、snaviブランチへのコミットを行いたい。
以下補足。
[webルート]/opt/lampp/htdocs/
[webサーバ]linux XAMPPパッケージに含まれるapache
[Ubuntu]8.04
[VirtualBox]4.18
----------------------

以上を踏まえ、決定的にエラー原因を要約すると、
「svnへアクセスするプロトコルが例えhttpであっても、SVNの制約でapacheのドキュメントルート配下にSVNルートを配置する事が出来ない。したがって、apacheのドキュメントルート以外のパスにSVNルートを配置して、"WEB-DAV"でSVNルートにアクセスする必要がある」

http://d.hatena.ne.jp/kslash/20071122/1195741209 を参考に導入を行ったが、SVNを外部へ公開するためのWEBサーバがXAMPPの様に参考URLとは別の場合には、WEB-DAVの設定を当該環境用に設定する必要がある。」

が今回のエラー原因であり、無事解決する事が出来ました!

※奇しくも後者のURLは他人の投稿ですがWr5さんのレスでしたね!

>どっちかというとこっちの方が参考になるかと思われます。
>http://d.hatena.ne.jp/GreenTea2010/20110520/1305 …

こちらのレスで誤りに気付くことが出来ました。
本当にありがとうございました!

お礼日時:2012/10/10 23:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!