svn +存储库位置

时间:2020-03-06 14:54:51  来源:igfitidea点击:

我将要设置一个可以通过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

用户永远不会看到或者不知道存储库的绝对路径。