关于SVN路径选项的明确说明

时间:2012-05-12 20:47:06

标签: macos svn osx-lion svn-server

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

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

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

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

2 个答案:

答案 0 :(得分:3)

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

在那里,确保通过防火墙激活远程登录(SSH)

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

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

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

由于svn+ssh作为使用svnserve访问存储库的用户运行,因此在物理存储库目录中创建的每个目录和文件都将由该用户拥有。因此,您需要确保有权访问该存储库的所有用户位于同一主组中, Subversion存储库目录中的任何已创建文件或目录都可由该组读取/写入。 / p>

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

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

从在线Subversion manual看一下这些链接:

答案 1 :(得分:1)

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

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