• SVN常用方法


    使用svn的好处:

    多人协作开发解决代码合并覆盖问题
    版本回退(将一个或多个文件恢复到旧版本)
    查看修改历史(日志),方便领导把控开发进度

    SVN执行流程:

    搭建svn服务器:安装服务器端软件、创建项目仓库、启动仓库服务
    在个人开发电脑,安装svn客户端软件
    创建项目目录,通过checkout检出操作,与svn版本库建立连接,下载所有的代码。
    日常开发,通过commit提交操作,将本地的修改,提交到svn版本库
    其他人提交过代码,可以通过update更新操作,将版本库中最新的代码(被修改部分)更新到本地。
    (注: svn服务器的地址 svn://IP , 由服务器搭建者告知大家,或者互相告知

    服务端的使用:

    创库指令:svnadmin create '仓库目录地址'

    启动仓库服务:svnserve -d -r ‘仓库地址’  ,光标闪烁为挂起状态,表示svn仓库服务以启动,挂起状态不能关闭窗口

    svn默认使用匿名用户,只有读的权限,可以执行检出及更新操作

    需要手动设置匿名用户写权限,才能执行提交操作

    svn仓库目录中的conf目录是配置文件的目录,svnserve.conf 主配置文件,修改svnserve.conf ,anon-access=write 设置匿名用户写权限,注意:顶格写,后面不能加注释

    配置多仓库:在启动svn仓库服务时,仓库地址指向多个版本库的共同的上级目录。

    客户端的使用:

    检出操作:也就是把项目下载到目录里,在空白处checkout  设置svn仓库地址和要检出到的目录,点击ok 显示 At revisional:0代表检出成功,并且版本号为0,检出成功后目录会多一个.svn隐藏目录,这个是svn对当前目录下的文件进行版本控制的,相当于“管理员”,不要修改或者删除其中的内容

    提交文件:选中文件右键 TortoiseSVN  add 操作将文件添加到svn版本控制范围,将文件标记为已添加状态,再次选中文件 右键svn commit 打开提交页面,可以添加日志,和下方要提交的文件,点击ok进行提交,每提交一次版本号加1

    更新文件:Update 从版本库更新最新的文件,一般在上班后先执行一次,或者每次开发一个新的功能前执行一次。

    svn设置忽略文件:设置不希望提交的一些与项目代码无关的文件,设置方式:选中要忽略的文件 -> 右键 -> TortoiseSVN -> add to ignore list 添加到忽略列表

    其中四个选项:
    
    文件名.后缀  忽略当前目录中的指定文件
    
    *.后缀 忽略当前目录中的指定后缀的所有文件
    
    文件名.后缀(recursively)  忽略当前目录以及子目录中的指定文件
    
    *.后缀(recursively) 忽略当前目录以及子目录中的指定后缀的所有文件
    
     对某个文件设置为忽略文件后,其不会出现在提交列表中。
    
    设置为忽略文件之后,一般可以通过反向操作,取消忽略的设置
    
    选中要忽略的文件 -> 右键 -> TortoiseSVN -> remove from ignore list 从忽略列表移除

    查看日志:TortoiseSVN show log 查看日志

    版本回退: TortoiseSVN -> update to revision 

    可以直接输入版本号,或者点击show log去选中一个指定版本。
    
    注意:版本回退功能,只是将本地工作副本中的内容,更新到了一个指定版本,svn版本库中还是有最新的代码。
    
    版本回退功能,只用于获取某一个历史版本的代码,并且备份用于其他用途。
    
    不要在版本回退后的历史版本中直接进行开发。可以先通过svn update指令更新到最新的代码,再进行开发。 

    版本冲突:

    多个人同时对同一个文件做修改,并且修改在同一行。
    先后提交到版本库时,第一个人提交成功,版本号+1,
    其他人提交时,svn会提示必须先更新到最新版本再提交。
    如果其他人在本地工作副本进行更新,svn会提示发生了冲突。
    冲突的模拟:在本地检出两个工作副本,模拟两个人同时开发。两个工作副本先都更新最新的版本,然后先后更改代码并提交。
    两个表现:一是发生冲突的文件中,包含了多个版本的代码
            二是目录中发生冲突的文件多出来几个不同后缀版本的文件
    
    发生冲突后必须先解决冲突然后再提交到版本库。
    解决冲突方式:
    ①继续提交本地的修改,使用svn resolve操作
    修改发生冲突的文件中的代码,保留指定的代码(删除冲突标记行)。
    选中发生冲突的文件,右键-> TortoiseSVN -> resolve 解决 打开解决冲突界面
    选中要解决冲突的文件,点击ok。将指定的文件设置为已解决状态,因冲突产生的多余的文件都被自动删除。
    继续执行svn commit提交操作即可。
    ②放弃本地的修改,使用svn revert操作 将指定文件还原成最新版本
    选中发生冲突的文件,右键->TortoiseSVN -> revert 还原 打开还原界面
    选中要还原的文件,点击ok, 放弃本地的修改,并将指定文件变为最新版本。
    
    冲突是发生在本地的工作副本的,版本库中并没有冲突。

    权限控制:

    权限控制分为两部分:

    认证(Authentication)和授权(Authorization)

    认证文件:鉴别用户身份,可以设置用户名和密码(passwd)

    授权文件:判断用户是否具备某种操作(读写)的权限(authz)

    注意:版本库的配置文件,只对当前版本库生效,每个版本库都有自己的配置文件。

    权限控制设置步骤

    权限控制设置步骤:
    ①修改svnserve.conf,关闭匿名用户的访问权限
    ②修改svnserve.conf,开启认证文件,开启授权文件
    ③修改passwd文件,设置用户名和密码
    ③修改passwd文件,设置用户名和密码
    第一种方式:给指定用户直接授权
    第二种方式:对用户进行分组,对分组统一授权
    完成以上设置之后,重新在工作副本中,进行svn的相关操作,会提示需要先认证,填写正确的用户名和密码进行认证,可以选择记住认证信息,以后不需要进行重复认证,否则每一次都需要进行认证。

    清除保存的认证信息:TortoiseSVN -> settings设置 打开设置界面,在左侧找到Saved Data点击 Authentication data 后面的清除

    svn自启:使用svn仓库,需要先启动仓库服务,必须保持命令行窗口的挂起状态,如果关闭窗口,则仓库服务会停止。这种方式不太友好,更好的方式,将svn仓库服务设置为开机自启动的服务。

    创建自启:

    sc create svn binPath= "svn服务器端安装目录 -r 仓库地址 --service" start= auto
    
    --service 表示其为服务项目
    
    start= auto表示电脑开机就自动启动该服务

    1. 必须使用管理员身份打开命令行窗口

      2. 箭头位置必须放置一个空格,否则创建会失败。

    net start svn  启动svn服务

    net stop svn  停止svn服务

    sc delete svn  删除svn服务(记住:svn如果需要删除必须先停止)

    结束~~~

  • 相关阅读:
    爬取淘宝商品信息
    eclipse 搭建Robotium环境--apk 环境搭建
    android studio2.0 搭建Robotium环境--有被测源代码的情况下
    mysql 特殊语句
    电脑浏览器访问文件夹
    mindmanager 15 停止工作
    yum被lock Existing lock /var/run/yum.pid: another copy is running as pid 1580. Another app is currently holding the yum lock; waiting for it to exi
    jenkins安装及部署
    ant+jmeter
    charles抓包及篡改
  • 原文地址:https://www.cnblogs.com/bjphp/p/8491235.html
Copyright © 2020-2023  润新知