svn +存储库位置
我将要设置一个可以通过svn + ssh访问的Subversion服务器。我想知道默认存储库位置在哪里(在Unix框上)。
你放进去了吗
/opt/svn
或者
/home/svn
或者
/usr/subversion
甚至
/svn
或者别的地方?
我正在寻找的地方,大多数人都把它放在了那里。有约定吗?
编辑:
绝对有可能从用户"隐藏"实际的存储库位置。例如(在我的情况下),通过将svnserve可执行文件以一种称为的方式进行包装:
svnserve -r /var/svn/repos
解决方案
我通常将存储库放在/ var
下的某个位置,通常放在/ var / lib / svn
中。我试图遵循文件系统层次结构标准,该标准说明了/ var的用途:
这里指定/ var
以便可以挂载/ usr
只读。一旦进入系统操作期间写入到/ usr的所有内容(与安装和软件维护相对)都必须在/ var中。
这里的/ home / svn
,主要是因为我认为在某个时候我可能需要svn
用户。
它绝对应该在/ var中。我把我放在/ var / lib / svn中。 / opt对于保留我们可能不一定要作为系统一部分的应用程序很有用,例如:Firefox或者MySql。存储库不是应用程序,因此将其保留在/ opt中是没有意义的。
就像上面的评论一样,我们可以参考FHS
基于新的FHS,我们应该将"此系统提供的服务数据"放入/ srv目录。 FHS除了将服务的所有数据(例如http等)放在该目录中之外,没有其他指导。我建议使用/ srv / svn /。
就存储库的路径而言,我喜欢在其上分区并安装一个名为" repository"的目录;)
/repository
这样,我可以轻松地使用" df"检查尺寸
Is it possible to hide the absolute path from the users?
要回答这个问题,是的,但前提是他们没有对该盒的完全访问权限。我们使用一个帐户设置它们,并让它们生成一个公共/专用密钥进行登录,但是我们从未给他们提供密码。
然后,将其密钥放入/home/<_user>/.ssh/authorized_keys中,然后编辑设置,以便使用该密钥登录将启动svn-serve。
command="/usr/local/bin/svnserve -t -r /repository/"
现在在存储库中创建一个项目:
svnadmin create /repository/proj1
使用SVN,我们必须授予用户对项目目录的读/写访问权限。然后他们可以签出类似的代码:
svn co svn+ssh://host/proj1
用户永远不会看到或者不知道存储库的绝对路径。