我已经工作了一段时间,现在试图更好地理解SVN。我正在使用Mac OSX Lion服务器。我已经能够设置并在机器上运行SVN并使其能够检入和检出文档。但是,我希望通过互联网使其可以访问其他服务,所以当我和我的许多同事一起旅行时,我们仍然可以一起工作。我已转发端口3690(我相信这是SVN端口),ssh的端口是先前设置的。
我在/Library/Subversion/Repository/
安装了SVN存储库,我在服务器上有版本和终端进行测试。我可以使用file://
路径参数进行连接,但无法使用svn+ssh://username@localhost/MyProject
进行连接。
我知道我可以通过ssh连接,错误是“找不到存储库”。我猜我需要一条不同的路径,但我读过的所有Mac OS文章都告诉我如何在主机上设置它而不是通过LAN或外部使用。
非常感谢任何想法或想法。作为对我在下面采取的步骤的参考,我正在处理文章的一些链接。
答案 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>
为了确保这一点,您需要执行以下步骤:
ssh
命令确保存储库目录树的所有文件和目录拥有。chgrp
命令确保Subversion组可以读/写整个目录树。chmod
设置为umask
或002
,而不是默认0002
或022
。这样,当用户在存储库中创建新目录或文件时,它可以由组中的任何其他用户读取和写入。否则,一个用户将创建更改,但其他用户将无法进行修改。从在线Subversion manual看一下这些链接:
答案 1 :(得分:1)
是的,我正在添加另一个答案......
您可能想尝试第三方服务器,例如Assembla,而不是在Mac上试用它。这将使每个人都可以访问,而无需使您的个人计算机成为需要24/7/365全天候服务的服务器。