SVN使用

来源:互联网 发布:apache curator 编辑:程序博客网 时间:2024/04/29 22:32

    • 服务端安装
    • 客户端安装
    • 创建多个SVN仓库存储代码
    • 启动仓库服务
    • 本地客户端码农与仓库建立连接
    • 给仓库开启匿名账户权限不推荐
    • 给svn仓库提交程序
    • 文件颜色标志
    • 新目录文件的提交
    • 同时运行多个SVN仓库服务
    • 修改SVN服务器地址
    • 断开与svn仓库连接
    • 冲突解决重点
    • 账号和权限
      • 给具体的用户设置权限
      • 给一个组设置权限
      • 开启只操作某个目录的权限
        • 给用户设置只操作shop目录的权限
    • 设置开机启动项服务
    • 通过svn查看组员工作情况和bug追踪

服务端安装

VisualSVN-Server-3.5.6-x64.msi

客户端安装

TortoiseSVN-1.9.5.27581-x64-svn-1.9.5.msi

LanguagePack_1.9.5.27581-x64-zh_CN.msi

创建多个SVN仓库(存储代码)

>svnadmin create h:/svnServer/app

启动仓库服务

  • DOC语法:svnserve -d(独立端口运行) -r(仓库地址) 仓库地址

    >svnserve -d -r h:/svnServer/app //启动app仓库服务

    需要注意的是: DOC窗口不要关,关了等于关闭服务

  • 该SVN服务端口号是:3690

本地客户端(码农)与仓库建立连接

  • 右键—> checkout

    1. svn://ip地址
    2. 本地工作空间

给仓库开启匿名账户权限(不推荐)

在svnServer/工程目录/conf/svnserver.conf文件的12行:anon-access = write

给svn仓库提交程序

步骤:

   a. 右键---->svn-->add(本地的svn对文件形成管理)   b. 右键---->Commit      (本地的文件提交给svn仓库,同时提交多个文件)

文件颜色标志

蓝色加号:本地的.svn对该文件开始管理绿色对号:本地文件、.svn管理的版本文件、仓库文件三者一致 表示:本地文件已提交到svn服务器红色叹号:本地文件与.svn和仓库文件不一致(用户可能修改了该文件)黄色叹号:表示该文件正在处于冲突状态蓝色问号:新建的文件,本地.svn和仓库都没有该文件记录

新目录文件的提交

新目录内部的文件不能直接提交,必须是目录本身已经提交给仓库了,该目录文件才可以单独进行commit提交

同时运行多个SVN仓库服务

把所有仓库的上级目录当成服务启动起来

> svnserve -d -r h:/svnServer/

修改SVN服务器地址

1. 先把.svn删除2. 重新checkout

断开与svn仓库连接

只需删除.svn即可

##文件版本的更新
TortoiseSVN—–>Update to revision…

冲突解决(重点)

  • 什么情况下会发生冲突?
    • 多个程序员对同一个文件进行修改,彼此代码文件出现覆盖的情况

解决方法
1. 令牌方式解决,给每一个文件设置令牌,谁获得令牌谁有权利开发该文件。
+ 该软件为:vss(Visual Source Safe)源代码控制管理软件
2. 通过版本号码进行控制,用户commit文件,本地文件版本仓库版本号必须一致才可以提交,否则禁止提交。
+ 本地与服务器版本号码不一致,一定是本地号码小于服务器版本号,SVN就是通过版本号解决冲突,
+ 修改代码不在同一处时
本地版本号与服务器版本号不一致时,提交失败,则需更新(合并代码)
+ 修改代码在同一处时

账号和权限

设置账户和密码时需要关闭匿名权限
修改 anon-access = none
不要加# 因为svn中有一个小bug(日志就不让查看了,日期都没了),操作为—->show log

给具体的用户设置权限

  • 在conf下

    • authz :设置用户权限
    • passwd:设置账号(用户名和密码)
    • svnserve.conf :主配置文件
    • 需要在主配置文件中引入两个辅助配置文件(authz和passwd)
    • 20行:去掉#和空格,保留password-db = passwd
    • 27行:去掉#和空格,保留authz-db = authz
    • 在passwd中
    • 配置形式:账户 = 密码
  • 账号设置权限

    • 配置形式:[shop:/]
      tom = rw
      mary = r
      *=
    • 具体权限:

      • r :read:可以update,不可以commit
      • w:write:可以commit

        1. 启动运行多个仓库服务:svnserve -d -r h:/svnServer/app/
    • [app:/] 表示我们要给多个仓库中的具体shop仓库设置访问权限,例如:[app:/] [car:/]
      1. 启动单一仓库服务 :svnserve -d -r h:/svnServer/app/shop
    • [/] 表示单一的给仓库账号设置访问权限

给一个组设置权限

+ 配置形式:                       [groups]                      java = java1,java2,java3,java4                        [app:/]                        @java = rw

开启只操作某个目录的权限

  • 配置形式:

给用户设置只操作shop目录的权限

[app:/shop]
user1 = rw
user2 = rw
*=

  • 举例:以外包团队为例
    1. 管理员先把该目录video给创建出来并交给svn仓库
    2. 给外部团队 设置账号 和 设置工作目录、和分支目录权限
    3. 外包团队 建立与仓库分支目录的联系(checkout)
    4. 外包团队给该目录提交文件
    5. 管理员执行update更新操作,把该分支目录从服务器更新下来即可查看外包团队工作情况。

设置开机启动项服务

  • 语法:doc中
    • > sc create 服务名称 binPath="安装目录/svnserve.exe -r 服务仓库地址目录 --service" start= auto
  • 应用:
    > sc create svnd binPath="d:/svnServer/server/bin/svnserve.exe -r d:/svnServer/app --service" start= auto
  • 注意
    binPath=空格 start=空格

最好生成.bat文件

通过svn查看组员工作情况和bug追踪

+ 操作:TortoiseSVN------>show log+ 查看之前需要清空缓存    + 如果信息不全的话,可能是权限的问题,例如(*=)的设置
  • 查看日志的时候对代码进行比较,查看bug

    • Compare revisions 比较

    通过SVN可以很容易看到一个程序中不同版本代码的差别

·

0 0
原创粉丝点击