SVN信息库停止与svn + ssh一起使用(但在服务器上本地工作) [英] Svn repository stopped working with svn+ssh (but works locally on the server)
问题描述
我有一个svn信息库,我曾经使用svn + ssh协议进行检出.其中包含一些EXTERNALS,它们使用svn + ssh URL进行引用.
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.
直到今天,我已经离开这个项目一段时间了.当我尝试访问svn + ssh url(几个月前曾经工作过)时,收到消息svn: No repository found in 'svn+ssh://my-correct.hostname.com/the/right/path/to/the/repository
.我仔细检查了一下,路径和主机名都是正确的.
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.
我尝试使用file://
URL在托管回购协议的计算机上将其检出,但它成功完成,直到必须检出EXTERNALS为止,并在其中失败并显示No repository
消息.我在本地和远程使用了同一用户.
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.
原来有一位同事在未通知的情况下修改了该文件.然而,找到问题的根源比理想的要困难得多.
It turns out a fellow colleague modified that file without notifying. Yet finding the cause of the problem was more difficult than ideal.
长话短说:即使我使用了svn+ssh://my-correct.hostname.com/the/right/path/to/the/repository
网址,在服务器上查找的真实路径也是/var/svn/the/right/path/to/the/repository
.确实是一条错误的道路.但是我认为我发现它的步骤可能对其他人有用,所以我将在这里报告.
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.
首先,我(在服务器上)将/usr/bin/svnserve移至/usr/bin/svnserve.orig,并用以下内容放置我自己的svnserve:
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
然后我再次运行结帐,然后服务器上的/tmp/svntrace
尾部有我排查该问题所需的所有信息.
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.
似乎在文件/var/svn/svnwrapper.sh
中,使用-r
选项设置了svn的新根目录.删除后,所有内容都像魅力一样.
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).
这篇关于SVN信息库停止与svn + ssh一起使用(但在服务器上本地工作)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!