在linux开发机器上设置subversion存储库的最佳实践是什么?外部用户需要能够访问特定的存储库,但机器上没有其他任何东西.我知道一个答案是建立一个专用的存储库,但我正在寻找一个单一的机器解决方案:存储库,帐户,备份程序的位置.
最佳答案
我在IT运营基础设施自动化公司工作;我们一直这样做.
存储库的位置:默认情况下,我们使用“/ srv / svn”存储所有SVN存储库,除非客户有特定要求,例如现有存储库可能存储在ReadyNAS共享文件系统中.
帐户:我们所有的客户都使用LDAP. OpenLDAP服务器在主主机上运行,但有时是Active Directory,因为有些客户在他们的办公室中有一个Windows域,我们也可以配置它.开发人员可以访问“SCM”组(通常是svn,git或devel)和“部署”组.这些组仅具有登录和执行SCM相关活动的权限(即,基于组所有权写入对repo的提交),或者将应用程序部署到生产中.
备份程序:我们使用svnadmin hotcopy,除非客户已经有了某些东西(通常是svnadmin dump,呵呵).
svnadmin hotcopy /srv/svn /srv/svn_backups/$(date +%Y%m%d)
要访问repo,它通常是简单的svn ssh.一些客户已经有Apache设置,但并不多.我推荐SSH.开发人员推出他们的公共ssh密钥,一切都很顺利. LDAP用户管理几乎没有维护(唯一的方法).