Fork me on GitHub

SVN 入门

1. SVN 体系结构

2. 创建 SVN 的仓库

  1. 在任意目录下,手动创建文件夹,例如: /Users/xxx/Documents/Repositories

  2. 把 Repositories 文件夹当作仓库,在使用命令创建多个子文件夹,代表不同的项目:
    svnadmin create /Users/xxx/Documents/Repositories/crm

  3. 仓库目录结构:

    • conf:配置文件
      • svnserve.conf: SVN的配置文件;
      • passwd: 用户名和密码;
      • authz: 权限认证的文件;
    • db: 版本数据存储目录;
    • hooks: 存放版本库钩子目录;
    • locks: 存储库锁目录,用来跟踪库的访问者;
  4. 启动仓库

    • 启动仓库分为两种主要的形式
      • 单仓库启动(只启动其中的一个仓库)
      • 多仓库启动(启动所有的仓库)
    • 启动仓库的方式有三种
      • 命令行启动:
        • 单仓库启动: svnserve -d -r /Users/xxx/Documents/Repositories/crm
        • 多仓库启动: svnserve -d -r /Users/xxx/Documents/Repositories
      • 使用批处理文件的方式启动;
      • 在系统上注册服务的方式,以后只要电脑一开机就自动启动了;
  5. 访问本地仓库: svn://localhost:3690/crm

3.设置权限

  1. 打开目录: conf/snvserve.conf
  2. 修改配置文件:
    • anon-access = none: 表示匿名用户没有权限, 取值: none/read/write;
    • auth-access = write: 认证用户有读写权限;
    • password-db = passwd: 让 passwd 的文件生效;
    • authz-db = authz: 让 authz 的文件生效;
  3. 打开 passwd 文件,设置用户名和密码;
  4. 打开 authz 文件,设置用户的权限,
// 设置权限
[groups]
crmGroup=zhangsan,lisi,wangwu

[/]   // 表示根目录下
@crmGroup=rw   // 在 crmGroup 组里面的,有读和写的权限
* =            // 其他人没有权限

4. 代码冲突

  • A和B都修改了同一个文件,然后 A 先提交了,B 提交时,会产生冲突;
  • 默认规则: 提交代码之前,先更新,查看是否存在冲突;
    • 先 update,然后解决冲突;
    • 在重新提交;

5. 常用操作

  • svnadmin --version: 查看svn当前版本信息;

posted @ 2017-10-25 16:51  小a的软件思考  阅读(253)  评论(0编辑  收藏  举报