
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/
へのチェックインが出来ません。
有識者の方、いらっしゃいましたらどうか
ご教授のほど宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
ああ、あと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」は不要ですのでご注意を。
毎日向き合っていたのですが、諸々煮詰まってしまい更新が遅れてすみません。
ご指摘のように、やりたい事が迷走していたので整理してみました。
やりたいこと--------
[リポジトリ]/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 …
こちらのレスで誤りに気付くことが出来ました。
本当にありがとうございました!
No.1
- 回答日時:
妙な構築の仕方していますねぇ……。
>$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だと思いますが)は確認できるかと。
コミットはたぶんできませんけどね。
# 認証用の情報がありませんし。
インポート元のファイルがある場所とリポジトリのあるディレクトリをごっちゃにするのもよろしくありません。
# あと…チェックアウトしたワーキングコピーとインポート元・リポジトリのディレクトリをごっちゃにしないように。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- その他(プログラミング・Web制作) python文字化けエラーが発生しているようです 3 2022/04/13 19:41
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
- サーバー 別サーバに構築したApache+Tomcatの連携について 2 2023/03/06 23:23
- UNIX・Linux Linux(fedora)でホスト名について 2 2022/06/21 14:24
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- その他(プログラミング・Web制作) pythonのhttp.serverでpostされた値を得る方法を教えてください。 1 2022/05/14 10:48
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- アプリ swiftでスマホアプリを開発した時の動作確認 1 2023/02/14 11:37
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
QGISの使い方について(ポリゴ...
-
インストールした覚えがないア...
-
macでDocuWorks を使うのは無理?
-
Windowsコマンドプロンプトのmo...
-
Windows10にSQL Server 2005を...
-
Solarisの文字コードについて
-
Virtual PC 2007に、Windows98...
-
ソフトをインストールできない...
-
ディスクユーティリティが見つ...
-
Windowsの古いゲーム(32bit OS...
-
Solaris for Intelでokプロンプ...
-
WinVNC ってなんですか???
-
プログラムの追加と削除にアイ...
-
HDDからSSDに変更したPCの工場...
-
リンクエラーの修正法を教えて...
-
Appleでソリマチ会計王使ってい...
-
Windows3.1とWindows95の最低動...
-
Ctrl+C と Ctrl+D の違い
-
Solaris10DVDブートせずインス...
-
ウインドウズ10インストール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TortoiseSVNがタイムアウトします
-
subversionのBASIC認証の回数に...
-
OpenLDAPの”uid”属性について質...
-
httpd.confでのsvn設定でAuthzS...
-
QGISの使い方について(ポリゴ...
-
ApacheとJBossの組み合わのプロ...
-
Subversionについて知りたい
-
ApacheとActiveDirectoryとを...
-
Subversionの使用方法
-
SVNコミットエラー
-
svnのインストール後、動きにつ...
-
svn のリビジョンを管理するツ...
-
LDAPの概要とメリットデメリッ...
-
LDAPのdnの指定方法について
-
【Apache】バーチャルホスト設...
-
インストールした覚えがないア...
-
Windows セキュリティ 検出済み...
-
Windowsコマンドプロンプトのmo...
-
学校配布のPCの初期化について
-
Windowsの古いゲーム(32bit OS...
おすすめ情報