【问题标题】:Clear Instruction about SVN Path Options清除SVN路径选项说明
【发布时间】:2012-05-12 20:47:05
【问题描述】:

我已经工作了一段时间,试图更好地理解 SVN。我正在使用 Mac OSX Lion 服务器。我已经能够设置并在机器上运行 SVN 并制作它,以便我可以签入和签出文档。但是,我希望通过 Internet 访问其他服务,因此当我和我的许多同事在旅行时,我们仍然可以一起工作。我已经转发了 3690 端口(我相信那是 SVN 端口),并且之前设置了 ssh 的端口。

我在/Library/Subversion/Repository/ 安装了 SVN 存储库,并且我在服务器上有版本和终端可供测试。我可以使用file:// 路径参数进行连接,但我无法使用svn+ssh://username@localhost/MyProject 进行连接。

我知道我可以通过 ssh 连接并且错误是“未找到存储库”。我猜我需要一条不同的路径,但我读过的所有 Mac OS 文章都只讲述了如何在主机上设置它,而不是通过 LAN 或外部使用。

非常感谢任何想法或想法。作为参考我在下面采取的步骤是我正在处理的文章的一些链接。

【问题讨论】:

  • 先尝试手动登录 ssh username@localhost 。然后您应该能够使用 url /Library/Subversion/Repository/MyProject 查看存储库
  • 是的,如果我首先通过 ssh 使用终端登录并使用命令行工具或版本直接访问服务器上的文件,它可以正常工作,但如果我按照上述操作,我会收到错误“未找到存储库”,为什么会这样?
  • 我了解 ssh 可以正常工作,并且文件位于该路径中。我的意思是当你 svn co 时你必须使用完整的本地路径。

标签: macos svn osx-lion svn-server


【解决方案1】:

首先,确保您的 Mac 防火墙没有阻止您。您可以通过ssh 从另一个系统远程登录到您的系统吗?如果没有,请转到系统偏好设置,选择安全和隐私偏好设置,然后选择防火墙。您需要点击高级...按钮。

在那里,确保 远程登录 (SSH) 通过防火墙处于活动状态。

在您允许 ssh 访问您的 Mac 后,您需要确保您的 svn+ssh 设置正确。尝试在您自己的 Mac 上通过 svn+ssh:// 而不是通过 file:// 访问存储库。如果你不能这样做,你没有正确设置svn+ssh

设置 Subversion 以使用 svn+ssh 是访问 Subversion 存储库的四种方法中最棘手的一种。与svn://http:// 不同,存储库服务器在用户登录到您的系统之前不会运行。

当用户连接到svn+ssh 时,他们会立即启动svnserve 以访问Subversion 存储库(这是svn+sshsvn 部分)。

因为svnserve 以使用ssh 访问存储库的用户身份运行,所以在物理存储库目录中创建的每个目录和文件都将归该用户所有。因此,您需要确保有权访问该存储库的所有用户都在同一个主组中,并且在 Subversion 存储库目录中创建的任何文件或目录都可由该组读取/写入。

为了确保这一点,您需要采取以下步骤:

  • 确保有权访问您的 Subversion 存储库的所有 Mac 用户都具有相同的主要组。您可以使用 Users and Groups 首选项面板在 Mac 中创建一个组。在创建新用户时单击 +,但从下拉列表中选择 Group。将所有要登录的人都放到这个组中。
  • 创建 Subversion 存储库时
    • 确保存储库目录树中的所有文件和目录都拥有由 Subversion 组通过chgrp 命令。
    • 使用chmod 命令确保该Subversion 组可以读取/写入整个目录树。
  • 您需要将每个用户的umask 设置为0020002,而不是默认的0220022。这样,当用户在存储库中创建新目录或文件时,该组中的任何其他用户都可以对其进行读写。否则,一位用户将创建更改,但其他用户将无法进行修改。

看看这些来自在线Subversion manual的链接:

【讨论】:

  • OP:带有 ssl 和 svn 模块的 Apache 更容易运行恕我直言。但我找不到适用于 Mac OS 的好的说明。尝试一种针对 Linux 的方法。
  • @JohanLundberg Subversion 和 SSL 模块已经在 Mac OS X 上的 Apache 中。您只需按照 svnbook.com 手册进行配置。其实很简单。守护进程在/usr/sbin/httpd,配置文件在/private/etc/apache2,模块在/usr/libexec/apache2
  • 您说的是 4 种方法中最棘手的一种,但在我的搜索和教程中我只听说过两种方法,svn+ssh 和 apache with modules,那么其他两种方法是什么?
  • @ars265 按照从最简单到最难设置的顺序:有file://(这真的不应该计算,因为它后面没有服务器。)有svn://,有http://和@ 987654352@,还有svn+ssh://
【解决方案2】:

是的,我正在添加另一个答案...

您可能想尝试使用像 Assembla 这样的第三方服务器,而不是在您的 Mac 上尝试。这将使每个人都可以访问,而无需让您的个人计算机成为需要 24/7/365 全天候运行的服务器。

【讨论】:

  • 我曾将其作为替代方案,但我们真的希望让我们自己的服务器启动并运行 svn,尽管我怀疑它是否应该是我们进行所有开发测试的同一台服务器开。
猜你喜欢
  • 2011-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-06
  • 2018-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多