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如果需要删除必须先停止)

结束~~~

 

posted @ 2018-03-02 00:56  不知名程序猿  阅读(348)  评论(0编辑  收藏  举报