SVN服务器配置
1. 安装 Subversion,您只需要简单的运行:
$ sudo apt-get install subversion
$ sudo apt-get install libapache2-svn
2. 创建 SVN 仓库
执行下面的命令:
$ sudo groupadd subversion // 添加组
将“www-data”(Apache 用户)用户添加到subversion组中
$ sudo usermod -G subversion www-data
添加www-data是为通过apache(http协议)访问文件仓库是有相应的权限
$ sudo useradd -m svnuser -g subversion // -m表示创建用户时同时创建用户主目录
添加新用户,然后以这个用户登录系统
我们假设您的 Subversion 文件仓库放在 /home/svnuser/svn,并且你的项目名称是简单的"myproject"
现在执行下面的命令
$ sudo mkdir /home/svnuser/svn
$ cd /home/svnuser/svn
$ sudo mkdir myproject
$ sudo chmod -R g+rws myproject
最后的一条命令赋予组成员对所有新加入文件仓库的文件拥有相应的权限
说明:最后一条命令中的s位,表示set UID或set GID。位于user或group权限组的第三位置。如果在user权限组中设置了s位,则当文件被执行时,该文件是以文件所有者UID而不是用户UID执行程序。如果在group权限组中设置了s位,当文件被执行时,该文件是以文件所有者GID而不是用户GID执行程序
下面的命令用于创建 SVN 文件仓库:
$ svnadmin create /home/svnuser/svn/myproject 创建库,创建库后会在myproject目录下生成一些文件
下面的命令用于将项目导入到SVN 文件仓库:
$ svn import -m "import myproject" /home/svnuser/src/hrqsys file:///home/svnuser/svn/hrqsys
一定要注明导入信息
3. 用户权限
当创建了 SVN 文件仓库,您可以修改 /home/svnuser/svn/myproject/conf/svnserve.conf 来配置其访问控制。
编辑svnserve.conf文件,把如下两行取消注释
password-db = /home/svnuser/etc/passwd
authz-db = /home/svnuser/etc/authz
这里为了方便管理,把所有项目的用户账号和用户权限统一放在/home/svnuser/etc目录下,可以方便新增项目时的管理操作
编辑/home/svnuser/etc/passwd如下
[users]
test = 123456
test1 = 123456
test2 = 123456
编辑/home/svnuser/etc/authz如下
[groups]
g_admin = test,test1
g_test = test2
[/]
@g_admin=rw
*=r
这里设置了三个用户test,test1,test2密码都是123456
其中test和test1属于g_admin组,有读和写的权限,test2属于g_test组只有读的权限
在导入数据之后,你会发现原先的目录树并没有纳入版本控制,为了开始工作,
你还是要在工作目录运行svn checkout得到一个干净的目录树工作拷贝。
例如:svn checkout svn://localhost/myproject --username lxy --password 123456 /var/www/myproject
svnserve -d -r /home/svn 起动SVN服务
-d 表示svnserver以“守护”进程模式运行
-r 指定文件系统的根位置(版本库的根目录),这样客户端不用输入全路径,就可以访问版本库
例如:可以用 svn://192.168.1.13/myproject访问了
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 「EF Core」框架是如何识别实体类的属性和主键的
· 独立开发,这条路可行吗?
· 我在厂里搞 wine 的日子
· 如何通过向量化技术比较两段文本是否相似?
· 35+程序员的转型之路:经济寒冬中的希望与策略
· 推荐 5 款实用的 Docker 可视化管理工具,工作效率翻倍!
· 瞧瞧别人家的接口重试,那叫一个优雅!
· 独立开发第二周:构建、执行、规划
· 【EF Core】框架是如何识别实体类的属性和主键的
· MySQL 13 为什么表数据删掉一半,表文件大小不变?