1. SVN 体系结构
2. 创建 SVN 的仓库
-
在任意目录下,手动创建文件夹,例如:
/Users/xxx/Documents/Repositories
-
把 Repositories 文件夹当作仓库,在使用命令创建多个子文件夹,代表不同的项目:
svnadmin create /Users/xxx/Documents/Repositories/crm
-
仓库目录结构:
conf
:配置文件svnserve.conf
: SVN的配置文件;passwd
: 用户名和密码;authz
: 权限认证的文件;
db
: 版本数据存储目录;hooks
: 存放版本库钩子目录;locks
: 存储库锁目录,用来跟踪库的访问者;
-
启动仓库
- 启动仓库分为两种主要的形式
- 单仓库启动(只启动其中的一个仓库)
- 多仓库启动(启动所有的仓库)
- 启动仓库的方式有三种
- 命令行启动:
- 单仓库启动:
svnserve -d -r /Users/xxx/Documents/Repositories/crm
- 多仓库启动:
svnserve -d -r /Users/xxx/Documents/Repositories
- 单仓库启动:
- 使用批处理文件的方式启动;
- 在系统上注册服务的方式,以后只要电脑一开机就自动启动了;
- 命令行启动:
- 启动仓库分为两种主要的形式
-
访问本地仓库:
svn://localhost:3690/crm
3.设置权限
- 打开目录:
conf/snvserve.conf
- 修改配置文件:
anon-access = none
: 表示匿名用户没有权限, 取值: none/read/write;auth-access = write
: 认证用户有读写权限;password-db = passwd
: 让 passwd 的文件生效;authz-db = authz
: 让 authz 的文件生效;
- 打开
passwd
文件,设置用户名和密码; - 打开
authz
文件,设置用户的权限,
// 设置权限
[groups]
crmGroup=zhangsan,lisi,wangwu
[/] // 表示根目录下
@crmGroup=rw // 在 crmGroup 组里面的,有读和写的权限
* = // 其他人没有权限
4. 代码冲突
- A和B都修改了同一个文件,然后 A 先提交了,B 提交时,会产生冲突;
- 默认规则: 提交代码之前,先更新,查看是否存在冲突;
- 先 update,然后解决冲突;
- 在重新提交;
5. 常用操作
svnadmin --version
: 查看svn当前版本信息;