SVN常用方法

摘要:
选择冲突文件,右键单击->TortoiseSVN->resolve以打开冲突解决界面,选择要解决冲突的文件,然后单击OK。要清除保存的身份验证信息,请执行TortoiseSVN-->设置。打开设置界面,找到左侧的SavedData,然后单击Clearsvn Auto Start after Authenticationdata。要使用svn仓库,需要首先启动仓库服务。必须保持命令行窗口处于挂起状态。如果关闭窗口,仓库服务将停止。

使用svn的好处:

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

SVN执行流程:

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

服务端的使用:

创库指令:svnadmincreate '仓库目录地址'

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

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

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

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

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

客户端的使用:

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

提交文件:选中文件右键 TortoiseSVN add操作将文件添加到svn版本控制范围,将文件标记为已添加状态,再次选中文件右键svncommit打开提交页面,可以添加日志,和下方要提交的文件,点击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如果需要删除必须先停止)

结束~~~

免责声明:文章转载自《SVN常用方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android 4.0设计规范 优先导读 十大改变6.15下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

AndroidStudio技巧之copy工程

为了减少重复写代码,我们经常需要将一个已经写好的android工程拷贝成为一个新的工程,但是这个工程在运行时又会出现这样那样的问题: 比如: 原来的app文件会被覆盖掉 sd卡中旧的app文件目录被覆盖 解决: 1:修改包名,定义成你觉得与功能相对应的 2:在工程中找到GradleScripts文件夹下的build.gradle(Module:a...

Rust 包管理器 Cargo 入门

此文转载自:https://my.oschina.net/u/4701816/blog/4705244 大咖揭秘Java人都栽在了哪?点击免费领取《大厂面试清单》,攻克面试难关~>>> Rust 包管理器 Cargo 入门   了解 Rust 的软件包管理器和构建工具。 -- Gaurav Kamathe(作者) Rust ...

Jar包版本查看方法

原文:https://blog.csdn.net/u011287511/article/details/66973559 打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF目录, 这个目录下会有一些文件,其中必有一个MANIFEST.MF,这个文件描述了该Jar文件的很多信息,下面将详细介绍MANIFEST.MF文件的内 容,先来看s...

centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置

前言: 以前的项目上传的文件都是保存到本地或者是局域网内的共享文件夹下,由于数据量,服务器的负载均衡(分机的某些图片无法访问的问题处理)等因素的情况下,就想到用fastdfs来文件管理,花了几天时间硬着头皮去学习怎样安装配置,由于linux基础不好,安装配置起来感觉有点费力,不得不随时去查找一些资料,好在经过这几天的努力安装配置fastdfs最终还是搞定了...

树莓派上搭建arduino命令行开发环境

-------------还是博客园上面的格式看这舒服,不去新浪了------------- 为什么要在树莓派上开发arduino呢?总要把树莓派用起来嘛,不然老吃灰。 树莓派使用SSH时没有图形界面,不能使用IDE,那怎么做开发呢?可以使用命令行。 Arduino本身支持各种平台,IDE的界面也几乎是一模一样,使用起来相当方便,省去了跨平台时的摸索阶段。...

Delphi的保存文件对话框-TsaveDialog

TsaveDialog继承于TOpenDialog,只介绍以下几个内容: 1、TsaveDialog如何设定为保存的默认路径是当前程序所在的文件夹: 默认目录是当前程序所在目录应设置属性InitialDir: opendialog1.InitialDir := extractfilepath(application.ExeName); savedial...