zoukankan      html  css  js  c++  java
  • SVN 快速入门

    一、SVN 简介

    (1) SVN 是 Subversion 的缩写,是一个开源的版本控制系统
    (2) SVN 基于 C/S 架构,有一台中央服务器,多台客户端通过网络从中央服务器拉取或提交代码,以此达到多人协作开发
    (3) SVN 是集中式的开源版本控制系统,集中式核心在于中央服务器,开发者需要先从服务器上拉取/提交代码,一旦离开了服务器,基本无法工作,这是缺点之一
    (4) SVN 客户端需要通过网络从中央服务器拉取或提交代码,特别依赖网络,因此一旦网络出现问题,也就无法拉取或提交代码,这也是缺点之一

    二、SVN 服务端安装

    [root@localhost ~]$ yum install -y subversion    # 安装SVN
    [root@localhost ~]$ mkdir -p /data/svn           # 我们使用/data/svn目录作为版本库,先创建该目录
    [root@localhost ~]$ svnadmin create /data/svn    # 创建版本库,使得客户端能够从这里拉取/提交代码
    [root@localhost ~]$ ll /data/svn
    total 24
    drwxr-xr-x 2 root root 4096 Jan 18 22:53 conf          # SVN服务端配置文件目录
    drwxr-sr-x 6 root root 4096 Jan 18 22:53 db            # SVN版本数据存储目录
    -r--r--r-- 1 root root    2 Jan 18 22:53 format        # 存储一个整数的文件,此整数代表库层次结构版本
    drwxr-xr-x 2 root root 4096 Jan 18 22:53 hooks         # 存放版本库钩子的目录
    drwxr-xr-x 2 root root 4096 Jan 18 22:53 locks         # 存储库锁目录,用来跟踪库的访问者
    -rw-r--r-- 1 root root  229 Jan 18 22:53 README.txt    # 说明文件
    [root@localhost ~]$ ll /data/svn/conf
    total 12
    -rw-r--r-- 1 root root 1080 Jan 18 22:53 authz            # SVN用户权限配置文件
    -rw-r--r-- 1 root root  309 Jan 18 22:53 passwd           # 密码文件,用于客户端登录服务端时的用户名密码验证
    -rw-r--r-- 1 root root 3090 Jan 18 22:53 svnserve.conf    # SVN版本库的配置文件
    [root@localhost ~]$ vim /data/svn/conf/authz    # 用户权限配置文件
    [groups]
    db = user1, user2     # groups 用于定义用户组,把功能相同的用户分成一个组,以便管理
    web = user3, user4
    
    [/]             # 定义为哪个目录进行权限分配,/表示当前版本库目录,这里我刚开始写成/data/svn ,后面实验的时候报错了svn: E170001: Authorization failed
    user1 = rw      # 可以对单个用户进行权限分配,rw表示可读可写
    @web = rw       # 可以对某个组的用户进行权限分配,写法是:@组名
    * = r           # 表示对剩下的所有用户进行权限分配
    [root@localhost ~]$ cat /data/svn/conf/passwd    # 配置用户密码
    [users]
    user1 = jiDTUlneBGSQEad5
    user2 = tz0ETMlNjPEILhqK
    user3 = vsXJ6pn0FxWRqZg6
    user4 = rz7Hq7ZuAb5LvfVS
    [root@localhost ~]$ cat /data/svn/conf/svnserve.conf    # 配置版本库
    [general]               # 通用配置
    anon-access = none      # 表示匿名用户没有任何权限
    auth-access = write     # 表示通过认证的用户拥有写的权限
    password-db = passwd    # 指定用户密码文件的路径,这里是相对路径
    authz-db = authz        # 指定用户权限配置文件的路径,这里是相对路径
    realm = /data/svn       # 表示上面的配置对哪个svn目录生效
    [root@localhost ~]$ svnserve -d -r /data/svn    # 启动SVN服务端,-d 表示以daemon形式运行,-r 用于指定svn版本库目录的路径


    三、Linux 客户端使用 SVN

    [root@localhost ~]$ yum install -y subversion     # 安装SVN,以便使用svn这个命令
    [root@localhost ~]$ svn checkout svn://139.199.177.89 --username=user1     # 第一次使用要检出代码,并指定使用哪个认证用户
    [root@localhost ~]$ touch 1.txt                       # 创建一个文件做实验
    [root@localhost ~]$ svn add 1.txt                     # 添加到版本控制中心
    [root@localhost ~]$ svn commit -m 'add file' 1.txt    # 提交到版本库
    [root@localhost ~]$ svn delete 1.txt                  # 如果想要删除版本库中的文件,需要先通过delete删除本地文件
    [root@localhost ~]$ svn commit -m 'delete file'       # 再提交到版本库
    [root@localhost ~]$ svn update                        # 从版本库更新文件到本地
    [root@localhost ~]$ svn log                           # 查看变更日志


    四、Windows 客户端使用 SVN

    (1) Windows 上的操作基本与 Linux 上的操作一致
    (2) 先去官网 https://tortoisesvn.net/index.zh.html 下载 TortoiseSVN ( 一个客户端软件 ) 并安装
    (3) 如何检出文件:创建一个目录,右键点击 SVN Checkout 检出服务端代码到这个目录
    (4) 如何上传文件:创建一个文件 ---> SVN Add ---> SVN Commit
    (4) 如何删除文件:选中这个文件,右键点击 SVN Delete ---> SVN Commit

        

  • 相关阅读:
    关于项目架构设计的一些规范
    Repository 返回 IQueryable?还是 IEnumerable?
    EntityFramework DbContext 线程安全
    ASP.NET 页面禁止被 iframe 框架引用
    2015-写给明年现在的自己
    RESTful API URI 设计: 查询(Query)和标识(Identify)
    深入探讨:标签(Tag)的各种设计方案
    RESTful API URI 设计: 判断资源是否存在?
    iPhone 6/plus iOS Safari fieldset border 边框消失
    追根溯源:EntityFramework 实体的状态变化
  • 原文地址:https://www.cnblogs.com/pzk7788/p/10290175.html
Copyright © 2011-2022 走看看