6

svn+sshプロトコルでチェックアウトするために使用したsvnリポジトリがありました。svn +sshURLでそれ自体を参照するいくつかのEXTERNALSが含まれています。

私は今日までしばらくこのプロジェクトをやめていました。svn + ssh url(数か月前に機能していた)にアクセスしようとすると、メッセージが表示されますsvn: No repository found in 'svn+ssh://my-correct.hostname.com/the/right/path/to/the/repository。再確認したところ、パスとホスト名の両方が正しいです。

URLを使用してリポジトリをホストしているマシンでチェックアウトしようとしましたがfile://、EXTERNALSをチェックアウトする必要があるまで成功し、No repositoryメッセージで失敗しました。同じユーザーをローカルとリモートで使用しました。

この問題を解決するには、ログ/デバッグ情報をどこで探す必要がありますか?

4

4 に答える 4

2

straceを紹介してくれてありがとう。straceを使用して、コマンドの理由をデバッグしました。

svn+ssh://HOSTNAME/path/to/svn/directory

〜/ .ssh /configでこの行を認識しません:

Host HOSTNAME

straceを使用するには、〜/ .subversion/configの[tunnels]セクションにあります。私はこれを変更しました:

ssh = ssh -o ControlMaster=no

これに:

ssh = strace -o tmp ssh -o ControlMaster=no

次に、次のコマンドを実行しました。

svn list svn+ssh://HOSTNAME/path/to/svn/directory

ファイル「tmp」に入ったstraceの出力を見ると、「HOSTNAME」が「hostname」としてsshコマンドに渡されたことがわかりました。簡単な修正は、〜/ .ssh/configのこの行を変更することでした。

Host HOSTNAME

これに:

Host HOSTNAME hostname

これにより、ホストの名前が「HOSTNAME」または「hostname」としてsshに渡されるかどうかに関係なく、ホスト固有の設定が適用されます。

于 2014-01-11T20:56:26.507 に答える
1

ログがどこにあるかわかりませんが、次のコマンドを使用して、そのディレクトリのexternalsプロパティを削除/変更できると思います。

svn propedit svn:externals path/to/dir

参照: http ://svnbook.red-bean.com/en/1.0/ch07s03.html

于 2011-03-14T12:42:54.613 に答える
1

私は自分の道を見つけました。将来の参考のためにここに書いています。

編集:同僚が通知せずにそのファイルを変更したことが判明しました。しかし、問題の原因を見つけることは理想よりも困難でした。

簡単に言うと、URLを使用したとしてもsvn+ssh://my-correct.hostname.com/the/right/path/to/the/repository、サーバーで検索された実際のパスはでした/var/svn/the/right/path/to/the/repository。確かに間違った道。しかし、これを見つけるために私が行った手順は他の人にも役立つかもしれないと思うので、ここで報告します。

まず、(サーバー上で)/ usr / bin / svnserveを/usr/bin/svnserve.origに移動し、次の内容で自分のsvnserveを配置しました。

#!/bin/bash
strace -o /tmp/svntrace /usr/bin/svnserve.orig $@ | tee /tmp/svnserve-out

次に、チェックアウトを再度実行します。その後/tmp/svntrace、サーバー上で、問題のトラブルシューティングに必要なすべての情報がサーバーに表示されました。

このファイルでは/var/svn/svnwrapper.sh、svnの新しいルートが-rオプションで設定されているようです。それを取り除いた後、すべてが魅力のように機能しました。

私はまだ何が起こったのか理解できません(以前は機能していましたが、何も変更しなかったとほぼ確信しています)。

于 2011-03-14T15:04:31.337 に答える
0

straceは問題の切り分けに役立ちました。私のリポジトリは/var/ svn / reposにありましたが、トレースは/ repos/formatを見つけることができなかったことを示していました。/var/svn/reposを指すシンボリックリンクを/reposに追加すると、再び機能し始めました。

于 2018-02-02T22:20:43.613 に答える