0

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

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

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

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

4

2 回答 2

3

首先,确保您的 Mac 防火墙没有阻止您。您可以通过ssh从另一个系统远程登录到您的系统吗?如果没有,请转到System Preferences,选择Security and Privacy首选项,然后选择Firewall。您需要单击高级...按钮。

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

一旦您允许ssh访问您的 Mac,您需要确保您已svn+ssh正确设置。尝试从您自己的 Mac 访问存储库,svn+ssh://而不是通过file://. 如果您不能这样做,则说明您没有svn+ssh正确设置。

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

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

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

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

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

从在线Subversion 手册中查看这些链接:

于 2012-05-13T03:32:06.677 回答
1

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

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

于 2012-05-14T00:02:05.273 回答