I had an svn repository that I used to checkout with the svn+ssh protocol. It has some EXTERNALS in it that refer to itself with the svn+ssh URL.
I was off this project for a while until today. When I try to access the svn+ssh url (that used to work some months ago) I get the message svn: No repository found in 'svn+ssh://my-correct.hostname.com/the/right/path/to/the/repository
. I double checked, and both the path and the hostname are correct.
I tried to check it out on the machine hosting the repo using a file://
URL, and it succeeded until it had to checkout the EXTERNALS, where it failed with the No repository
message. I used the same user locally and remotely.
Where should I look for logs/debug information to solve this issue?
I found my way through. I'm writing it here for future reference.
EDIT: It turns out a fellow colleague modified that file without notifying. Yet finding the cause of the problem was more difficult than ideal.
Long story short: even if I used the url svn+ssh://my-correct.hostname.com/the/right/path/to/the/repository
the real path looked up on the server was /var/svn/the/right/path/to/the/repository
. A wrong path indeed. But I think that the steps I did to find this might be useful to others, so I'll report them here.
First I moved (on the server) /usr/bin/svnserve to /usr/bin/svnserve.orig and put my own svnserve with these contents:
#!/bin/bash
strace -o /tmp/svntrace /usr/bin/svnserve.orig $@ | tee /tmp/svnserve-out
Then I run my checkout again, and after that /tmp/svntrace
on the server had in its tail all the info I needed to troubleshoot the problem.
It seems that in the file /var/svn/svnwrapper.sh
a new root for svn was set with the -r
option. After removing that all worked like a charm.
I still can't understand what happened (it used to work in the past and I'm almost sure I didn't change anything).