SVN常用操作

  • 通常软件开发由多人协作开发,如果对代码文件、配置文件、文档等没有进行版本控制,将会出现很多问题
  • 版本控制(Revision control)是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。

SVN(Subversion)是前几年来崛起的版本管理工具。Subversion 项目的初衷是为了替换当年开源社区最为流行的版本控制软件CVS,在CVS的功能的基础上有很多的提升同时也能较好的解决CVS 系统的一些不足

  • svn是基于客户/服务器模式:

  • 复制-修改-合并方案(Subversion默认的模式)

在这种模型里,每一个客户读取项目配置库建立一个私有工作副本——版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。

  • 锁定-修改-解锁方案

在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。此模式不适合软件开发这种工作。

svn服务器的工作方式

独立服务器方式:

               svnserve

借助Apache方式:

               mod_dav_svn

SVN版本数据存储方式

BDB (Berkeley DB)

               数据库方式

FSFS

               文件方式(推荐)

svn服务器安装和配置

  • 官方安装包

官方网站:http://subversion.apache.org/

下载:http://subversion.apache.org/download.cgi

官方提供的服务端安装包,安装后需要通过命令行操作,适用于专业配置管理员使用。

图形化服务端

Visual SVN Server下载地址:https://www.visualsvn.com/downloads/

安装过程简介:

查看子程序菜单

查看服务,VisualSVN成功启动,应该默认开机自启动。

基本操作

通过开始菜单进入VisualSVN Server Manager

①新建仓库

选择文件的存储方式

创建一个空的仓库

设置用户访问仓库权限:

仓库创建成功:

仓库地址为https://ip地址或计算机名/svn/仓库名称

②创建工程目录

创建成功:

trunk:项目开发代码的主体,是从项目开始直到当前都处于活动的状态,从这里可以获得项目最新的源代码以及几乎所有的变更历史信息

branch:从trunk的某个点分离出来的代码拷贝,通常可以在不影响主干的前提下在这里进行重大bug的修改,或者做实验性的开发,以及定制功能开发等。如果分支达到了预期的目的,通常可以被合并(Mgerge)到主干中。

tag:用来表示trunk和branch的某个点的状态,以代表项目的某个稳定状态,通常为最终发布状态

工程目录创建完成,查看它的svn地址

拷贝svn地址

 

TortoiseSVN客户端

  • 使用Subversion提供的客户端命令

使用方式:在命令行下输入命令操作。

  • 使用Torotise图形化界面操作(推荐)
  • 使用Eclipse等开发工具插件操作(推荐)

TortoiseSVN是Subversion版本控制系统的一个免费开源客户端,不需要为使用它而付费。

               TortoiseSVN是Subversion 的Windows 扩展。它使你避免接触Subversion 枯燥而且不方便的Command Line。它完全嵌入Windows Explorer,使用时只需在正常的窗口里右键操作就可以了

下载:http://tortoisesvn.net/downloads.html   提供 32位和64位不同版本,安装tortoiseSVN需要修改客户端电脑右键菜单,安装后需要重启电脑

使用Tortoise浏览svn服务端的仓库的内容:

权限管理

在企业开发中会为每位程序员、测试人员等相关人员分配一个账号,用户通过使用svn客户端连接svn服务时需要输入账号和密码,svn服务对账号和密码进行校验,输入正确可以继续访问,当用户访问仓库下某个目录时,svn服务对用户进行授权,如果用户拥有该目录的访问权限方可访问。

         判断账号和密码输入是否正确的过程即认证过程

         判断用户是否拥有目录的读/写权限时即授权过程

    创建用户

查看已创建的用户:

修改用户:

创建组:理解上有点像 用户-角色-权限 中的角色,是基本权限的集合方便配置,但是这里的权限较少,所以用于用户的分组

查看创建的组:

修改组:

分配权限

删除系统安装后默认权,如果没有删除库的默认权限,项目将会默认继承,导致无法删除everyone:

举个栗子,开发人员具有项目的读写权限

添加组或用户:

分配权限:

这时候客户端进行访问就需要登录了

问题:在服务端创建了一个用户,并指定给了一个仓库,授权可读可写,但是客户端就是无法登录。。。

解决:TortoiseSVN-> Settings -> Saved Data 然后clear,主要是最后一个(Authentication data)缓存问题

1、本地使用多个账号登陆,每次输入的账号和密码都不一样

2、当账号密码修改后(建议清理)

理解:可以创建一些用户、可以对用户进行一些分组、对指定的资源绑定指定的用户或组和权限,需要注意的就是上边的那点。。

日常使用

①客户端浏览仓库信息

Repo-browser:浏览仓库中的资源信息

②导入导出

  • Export :导出项目,和checkout区别(checkout检出后文件,含有.svn隐藏文件夹,会和SVN仓库交互, export导出,没有.svn隐藏文件夹)

  • import 将本地资源导入到svn服务器

③Checkout:检出项目,复制项目的副本到本地。

在检索出的目录中添加文件,进行修改操作

图标:这是一个新文件

  • Add to ignore list :添加到忽略列表(标记该文件不需要版本控制)

  • Add :标记这个文件添加到服务器

 

其实就是对那些要上传和那些不要上传进行标记

已经标记要添加到版本库

④commit

当检出目录或子目录中内容有修改,目录图标变为:

提交Commit 提交本地修改至svn服务器:

提交后目录中的内容与svn服务同步,目录图标变为:

⑤ udpate:更新仓库的文件到本地,和提交时相反的操作,通过这样的操作可以让本地的文件更新到最新版本。

⑥更新到指定的版本

⑦delete:删除版本库文件,并将本地文件删除,标记删除后需要提交。

⑧ 在检出目录或子目录操作会记录操作日志,提交前可以回滚操作。

在要回滚的检出目录或子目录中右键:

⑨冲突处理:两个客户端同时修改同一个文件,改动同一个位置,发生冲突情况

         如果当commit 遇到文件已经过时,说明另一个人可能改动过 ----- update

理解:有点像数据库中得事务操作,修改别人已修改的操作,可能覆盖别人的修改。即冲突

手动Merge 后,需要将编辑后冲突文件,标记为已经解决,再进行commit

补充:创建本地仓库

  • 修改conf目录中的配置文件
[general]
anon-access = none    匿名用户的访问权限
auth-access = write    经过认证的拥有的权限:写的权限包含了读
password-db = passwd  启用passwd文件
authz-db = authz    授权文件
[sasl]
  • 修改passwd文件:
[users]
xiaohei = 123
xiaobai = 456
  • 修改authz文件:
[aliases]
[groups]
group1 = zhangsan,lisi    定义了一个组passwd中真实存在的

[/]    目录下所有文件
xiaohei = rw    该用户具有可读可写的权限
xiaobai = r
@group1 = r    对组进行权限设置
  • 启动svn服务(创建一个bat文件,将启动的命令写到文件中)
svnserve -d -r d:\...\svn
  • 将本地代码共享到svn仓库

输入资源库位置信息

输入文件夹名

提交

Eclipse中SVN插件的使用

下载Subversion的eclipse插件

http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA

指定插件 site-1.10.11.zip 的位置

出现提示,选择继续安装

安装完成,查看STS视图有SVN选项说明安装成功:

①将项目共享到SVN

共享项目到SVN

②从SVN检出

③解决冲突

手动merge后,标记为解决

重置用户名密码

删除C:\Users(用户)\"你的用户名"\AppData\Roaming\Subversion\auth\下的所有文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值