TortoiseSVN 错误:无法连接到 URL 处的存储库

TortoiseSVN 错误:无法连接到 URL 处的存储库

我正在使用 TortoiseSVN 连接到我的 RHEL 服务器上新创建的存储库。我svnadmin create reponame以 root 身份创建了存储库。我只是想使用 TortoiseSVN 签出存储库,以便可以向其中添加文件。

我安装了 mod_dav_svn,现在可以连接并签出存储库。在我的本地机器上,我将文件添加到目录并尝试提交。然而,TortoiseSVN 现在给出

Can't open file '/subversion/langantiques/db/txn-current-lock': Permission
denied

我该如何纠正这个问题?

答案1

如果你以 root 身份创建了 repo(顺便说一下,使用了 umask),然后尝试以本地用户身份使用 file:/// 协议通过 W 操作访问 repo(所有提到的部分在句子中重要的) 你有普通权限问题:运行 svn 进程的用户必须具有足够的权限才能使用 repo。根据需要,更改 repo 目录的 chown 或 chmod 或 chgrp 目录(我不是巫师,无法看到您的 FS)

如果你的仓库由 Apache 提供服务 - httpd 进程必须对仓库具有 +r+w 权限

答案2

您需要一些东西来将存储库提供给远程节点。有三个主要选项;

  1. svnserve

    这是一项在端口 3690 上运行的简单服务,允许访问您的存储库。它非常基础;它可以强制执行权限设置,但其网络流量(包括密码)没有加密。您可以运行该服务(可能已安装在您的服务器上),然后使用 URL 运行签出svn://

  2. WebDAV

    此选项需要 Web 服务器 - 可能是带有 mod_dav_svn 模块的 Apache。您可以在 Web 服务器中配置安全性(身份验证和加密)以及访问控制;出于这个原因,这可能是最灵活的选项。您可以使用http://https://URL 来检查这一点。

  3. SSH

    此选项使用您可能已经配置好的 SSH 设置;这样它就可以获得良好的身份验证和加密。但是,由于它使用的是 Linux 用户,因此您需要完成一些工作来锁定您希望拥有 SVN 访问权限但没有 shell 访问权限的任何用户。这还需要一些争论才能使 SSH 连接正常工作 - 上次我弄乱它时,它涉及将文件plink.exe油灰。您可以通过 URL 访问它svn+ssh://

答案3

这里有几个问题——有些相当复杂的证书/PVT 密钥操作虽然对于 plink/pageant 来说完全可以接受,但可能会出问题。服务器上的 SVN 可以完全正常且可行,但 TortoiseSVN 连接却出问题了。

理论上,如果 puTTY ssh 配置正常工作,您应该能够通过在设置->网络->SSH Shell 条目中的 TortoisePlink 命令行中添加“load”来连接。请注意“should”这个词。

我尝试了所有 HowTo/FAQ/TortoiseSVN 简介中的每个步骤(除了一些需要服务器上的 root 权限才能篡改 /etc/svnserver 参数的步骤),但到目前为止,什么都不起作用。经过大约 2-1/2 周的努力,最终结果是出现消息“无法连接到 URL 上的存储库...”。然而,SVN 环境运行良好,plink 和 putty 运行完美,我直接从 svn 信息行提取了 SVN 根路径(减去多余的 file:/// 前缀)。

我确信一定有什么错误是如此明显,以至于没有人想到在文献中提及它。

相关内容