美文网首页
Tortoise-SVN版本控制系统

Tortoise-SVN版本控制系统

作者: 宸风如苏 | 来源:发表于2018-07-23 00:04 被阅读0次

    1、svn好处

    1:很好的解决了开发过程代码冲突问题,因为多个组员可能修改同一个文件,造成同一个文件同一个文件相同行代码进行整合的时候会产生冲突。

    2:很好的解决了代码找回(丢失)问题。

    2、svn软件的安装

    svn是c(client)/s(server)软件的架构,有服务端和客户端。

    服务端下载地址:  https://www.visualsvn.com/visualsvn/download/  
    客户端下载地址: https://tortoisesvn.net/downloads.html
    

    1、安装服务端

    一、双击安装程序点击next下一步。
    二、接受软件的相关协议,点击next。
    三、选择勾选最后一项,配置svn服务端的相关的命令到系统的环境变量,点击next下一步。
    四、选择标准版Standard Edition。
    五、选择一个安装目录,这里以安装到D:\svn\server为例。
    六、点击finish完成。
    七、在cmd窗口中出输入svn命令,出现Type 'svn help' for usage 说明svn服务端环境变量已生效。
    
    如果安装的时候勾选了环境变量,但是依然没有出现以上提示,有以下两种解决办法:
    ①重启电脑
    ②(推荐)点击环境变量path选项,直接点击确定即可,不需要修改,这样可以立即生效
    再次关闭黑窗口重新打开,输入svn命令进行测试即可。
    

    2、安装客户端

    安装客户端的时候,先检查自己电脑系统的位数,选择对应系统位数安装即可。查看系统位数:计算机。
    
    安装TortoiseSVN步骤:
    
    1、双击安装程序,点击next下一步。
    2、接受软件的相关协议,点击next。
    3、选择选项command line client tools-Will be installed on local hard driver
    4、点击TortoiseSVN,配置安装目录,目录自定义,这里以安装到D:\svn\client\为例,点击next。
    5、安装完成,点击finish.。
    6、测试是否安装成功,在桌面鼠标右键,多出两个选项svn Checkout和TortoiseSVN说明安装成功:
    7、如需汉化可安装系统对应位数的汉化包即可,安装一路next,会自动找到上面svn客户端的安装位置
    

    3、单仓库的布置

    第一步:建立项目目录,即创建文件夹
    
    第二步:把项目目录变为仓库
    
    svnadmin create 项目目录绝对路径
    
    第三步:开启监管仓库目录的服务
    
    svnserve -d -r 项目目录绝对路径
    -d 作为后台服务运行
    -r 监管的目录
    注:监管黑窗口不可关闭
    

    4、svn三大指令

    1、checkout   用于首次与仓库建立连接,获取代码到本地
    2、commit     提交本地代码到svn仓库
    3、update     更新仓库最新的代码到本地目录
    

    5、连接svn服务器

    第一步:在我们本地电脑中,建立一个项目检出目录,用于存储检出的代码
    
    具体操作:打开检出目录文件夹,右键,点击SVN checkout
    
    第二步:输入我们svn服务器的地址,指定一个检出代码的本地目录
    
        链接成功之后,会在检出目录多个一个.svn的隐藏文件夹,版本为0, 说明是一个新建立的仓库
    
        检出和版本库浏览器的区别:
        1:检出checkout:是把仓库所有的代码都进行检出到本地目录。
        2:版本库浏览器:可以浏览仓库中有哪些文件,有选择性的检出某些文件。
    

    6、上传代码到SVN仓库

    第一步:在检出的目录中,建立一些测试文件,鼠标右键选择commit提交指令
    第二步:【重要】填写提交的备注,主要是用于后面代码的版本回退(代码找回)
    第三步:提交。默认新创建的仓库,只能更新或检出,不能提交,需要修改此仓库配置文件,进行权限配置。
    

    7、单仓库的权限配置

    1:匿名用户提交

    每个仓库的conf目录中,都会有以下三个配置文件:

    svnserve.conf   当前仓库的核心配置文件,可以开启某些文件的功能
    passwd          给当前仓库的增加用户名和密码
    authz           给当前仓库的用户设置一些权限
    权限w           write可写可提交
    权限r           read 可更新不可提交
    

    设置匿名用户访问,仅需修改svnserve.conf配置文件即可,把其中anno- access=read前面的#号给去掉,且把read改为write。

    注:最前面要顶格写,即不要留空格。只要保存配置文件会立刻生效,不需要 重新监管服务。

    2:授权用户的权限配置

    第一步:修改svnserve.conf配置文件,开启passwd和authz文件的功能

    anon-access=none            代表匿名无访问权限
    auth-access=write           允许授权用户可更新也可提交
    password-db=passwd          代表开启passwd配置文件
    auth-db=authz               代表开启authz配置文件
    

    第二步,修改passwd文件,给当前仓库增加一些用户名和密码

    格式:用户名 = 密码(明文)
    

    第三步,修改authz文件,给当前仓库的用户名分配一些权限(rw)

    组名 = 组成员 (多个用逗号隔开)  例:cainiao_group=cainiao、
    [/]       对单仓库所有文件进行权限控制,也可以针对其中一个目录如[/core]
    @组名 = 权限(rw)         例:@cainiao_group=rw
    用户名 = 权限 (rw)       例:admin = rw
    * =                      其他人没有权限
    注:权限有r但未有w,只能更新代码但不能提交。权限目录后面不要加斜杠/。
    

    8、svn代码冲突问题的解决

    产生冲突的原因:不同用户对相同文件的相同行代码都进行了修改并且提交。

    解决:

    第一步: 选中有冲突的文件,鼠标右键选择SVN更新
    
    更新下来会多出三个辅助文件
    文件名(黄色标识):把服务器上面最新文件内容与即将提交的内容进行一个融合。
    文件名.mine: 当前用户即将要提交的文件内容。
    文件名.r(前版本):所有用户提交之前,即文件冲突之前,仓库上最新的文件内容。
    文件名.r(后版本):仓库上最新的文件内容。
    
    处理办法:把三个辅助文件都删除,与别人商量过后修改有黄色感叹号的文件,进行代码整合,再次提交。
    

    9、svn中的版本回退

    第一步:选中要回退的文件,右键,点击Tortoise,更新至版本
    第二步:点击显示日志,通过之前提交的日志来找回
    

    10、update更新注意点

    1:当本地文件检出目录无变动,svn服务器文件改动的时候,更新会从服务器取出所有文件覆盖当前文件。
    2:当本地文件有改动,服务器文件没有改动的话,更新的时候不会覆盖此文件。
    3:本地文件和服务器文件都有改动的话,改动部分不冲突,就合并文件到本地,有冲突,手动解决,再提交
    

    11、svn中部署多仓库

    第一步:建立多个项目文件夹(android、java)

    第二步:把上面的android和java变为项目仓库。

    svnadmin create 各个仓库目录
    

    第三步:监管各个仓库的父目录,这样才可以访问到其中的某个仓库项目代码

    svnserve -d -r 仓库父目录
    

    怎么访问多仓库中的某个项目仓库代码?

    访问形式:svn://ip/仓库名/目录
    
    注: svn://127.0.0.1 这种url访问形式只能对单仓库有效,多仓库的访问后面需加仓库名。
    

    12、多仓库的权限设置

    还是修改三个文件:svnserve.conf 、passwd、authz 
    1:svnserve.conf配置和之前单仓库配置一样
    2:passwd配置和之前单仓库配置一样
    3:只需要改变authz配置文件即可,看下面的注
    
    注:单仓库和多仓库的authz权限文件配置区别:
    单仓库:[/目录/子子孙孙目录] 
    多仓库:[当前仓库名:/目录/子子孙孙目录]
    

    13、SVN其他功能

    1:清除用户名和密码
    做法:鼠标右键TortoiseSVN-->Settings-->已保存数据-->清除全部-->确定
    
    2:export导出指令
    export指令:相当于拷贝项目,导出的代码不会含有隐藏文件.svn,即不受svn版本控制
    做法:鼠标右键TortoiseSVN->导出
    
    3:更改svn服务器地址
    做法:TortoiseSVN-->重新定位-->输入新的仓库地址即可
    

    14、svn监管服务注册成windows系统服务

    1、创建SVN监管服务

    快捷键win+r,输入cmd,以管理员的方式执行以下命令:
    sc create SVNService binpath= "D:\svn\server\bin\svnserve.exe --service -r D:\app" start= auto

    特别注意:
    binpath=后面、start=后面都有一个空格,其中SVNService 是服务的名称,可自定义,不重名即可。
    
    注:如果是以之前黑窗口的形式监管服务,就不可以在使用window服务的形式进行监管。
    
    2、服务相关控制指令

    1、关闭、开启、重启服务:

    net stop|start|restart 服务名(如开启svn服务:net start SVNService)
    

    2、删除服务:

    sc  delete  服务名 (如删除svn服务:sc  delete  SVNService)
    

    3、cmd命令的批处理

    将上述命令写在后缀名为bat的文件中,然后以管理员方式运行bat文件即可
    

    15、svn中的钩子程序

    用途:

    利用提交前的钩子让用户在提交代码前强制用户必须填写备注信息。

    利用提交后的钩子把svn仓库代码实时同步到网站web目录。

    钩子种类:

    每个仓库目录中都会有个hooks目录,其中包含了所有的钩子模板代码

    其中使用最多的有两个钩子:提交前的钩子(pre-commit.tmpl)、提交后的钩子(post-commit.tmpl)(重点,开发中使用较多)

    钩子实战:
    1:后钩子同步代码到web站点
    第一步:
      首先要确保web站点目录与要同步的仓库建立关联,在web站点目录检出一下就有了。
      后面只要向blog仓库成功提交代码,代码就会自动往web站点目录更新。
    第二步:
      打开blog仓库的hooks目录,把post-commit.tmpl文件复制一份,改名为post-commit.bat。
    post-commit.bat内容:
        SET SVN="D:\svn\server\bin\svn.exe"
        SET SVN="web站点目录"
        SVN update %DIR% --username 用户名 --password 密码
      或者:
        @echo off  
        SET REPOS=%1
        SET REV=%2
        SET DIR=%REPOS%/hooks
        SET PATH=%PATH%
        SET WEB_DIR=C:\Users\oj\Desktop\www.php15.con
        svn update %WEB_DIR%    --username admin --password admin123
    
    2:前钩子强制用户填写提交时备注信息
    第一步:
        打开blog仓库的hooks目录,把pre-commit.tmpl文件复制一份,改名为pre-commit.bat,
    pre-commit.bat修改内容如下:
        set svnlook="D:\svn\server\bin\svnlook.exe"  改为自己的安装路径
        找到findstr后面有几个点就代表最少输入几个字符
        找到echo. 1>&2 echo是客户端提示给用户的信息
        
        注:如需要中文提示,为防止乱码需要把pre-commit.bat文件的编码改为ANSI。英文提示则不需要
    

    相关文章

      网友评论

          本文标题:Tortoise-SVN版本控制系统

          本文链接:https://www.haomeiwen.com/subject/dzarmftx.html