SVN使用随记

本文介绍了ApacheSubversion(SVN)的基本概念、安装步骤、常规操作(如创建版本库、权限管理、Eclipse集成)以及查看历史信息的方法,展示了SVN作为一个集中式版本控制系统的核心功能和使用流程。
摘要由CSDN通过智能技术生成

1、SVN简介

    Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统,Subversion 在 2000 年由 CollabNet Inc 开发,现在发展成为 Apache 软件基金会的一个项目,同样是一个丰富的开发者和用户社区的一部分。SVN相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上免费的版本控制服务多基于Subversion。

SVN 官网:Apache Subversion

2、SVN常规概念

  • repository(源代码库):源代码统一存放的地方。版本库相当于一个集中的空间,用于存放开发者所有的工作成果。版本库不仅能存放文件,还包括了每次修改的历史,即每个文件的变动历史。Create 操作是用来创建一个新的版本库。大多数情况下这个操作只会执行一次。当你创建一个新的版本库的时候,你的版本控制系统会让你提供一些信息来标识版本库,例如创建的位置和版本库的名字。
  • Checkout(提取):当你手上没有源代码的时候,你需要从 repository checkout 一份
  • Commit(提交):当你已经修改了代码,你就需要Commit到repository
  • Update (更新):当你已经 checkout 了一份源代码, update 一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更

3、SVN安装

  • Windows下直接双击安装.msi的文件,安装完成后把svn安装目录里的bin目录添加到path路径中,在命令行窗口中输入 svn --version ,查看安装正常与否。

  • 大多数 GNU/Linux 发行版系统自带了Subversion ,所以它很有可能已经安装在你的系统上了。可以使用svn --version检查是否安装了。如果 Subversion 客户端没有安装,可以使用 yum install subversion 命令进行安装。


以下操作以Windows版本作为演示 

4、SVN使用

4.1 SVN 创建版本库

利用svn命令创建版本库:

svnadmin create D:\\svn

其中D:\svn为版本库路径,

4.2 启动svn服务

  1. 命令行方式

    svnserve -d -r D:\\svn

  2. 注册系统方式

    以管理员方式运行cmd

    sc create 服务名 binpath="D:\Subversion\bin\svnserve.exe --service -r D:\\svn" start=auto depend=Tcpip

    其中D:\Subversion\bin\svnserve.exe为svnserve所在路径

    启动服务: sc start 服务名

    关闭服务: sc stop 服务名

    删除服务: sc delete 服务名

4.3 SVN配置用户及权限

进入 /svn/conf 目录,修改默认配置文件配置,包括 svnserve.conf、passwd、authz 配置相关用户和权限

1、svn 服务配置文件 svnserve.conf

svn 服务配置文件为版本库目录中的文件 conf/svnserve.conf。

anon-access = none

auth-access = write

password-db = /svn/passwd

authz-db = /svn/authz

  • anon-access: 控制非鉴权用户访问版本库的权限,取值范围为 "write"、"read" 和 "none"。 即 "write" 为可读可写,"read" 为只读,"none" 表示无访问权限,默认值:read。

  • auth-access: 控制鉴权用户访问版本库的权限。取值范围为 "write"、"read" 和 "none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限,默认值:write。

  • authz-db: 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径,默认值:authz。

2、用户名口令文件 passwd

用户名口令文件由 svnserve.conf 的配置项 password-db 指定,默认为 conf 目录中的 passwd。该文件仅由一个 [users] 配置段组成。

[users] 配置段的配置行格式如下:

<用户名> = <口令>

例:[users]

admin = admin

3、权限配置文件

权限配置文件由 svnserve.conf 的配置项 authz-db 指定,默认为 conf 目录中的 authz。该配置文件由一个 [groups] 配置段和若干个版本库路径权限段组成。

[groups]配置段中配置行格式如下:

<用户组> = <用户列表>

版本库路径权限段的段名格式如下:

[<版本库名>:<路径>]

[groups]

g_admin = admin

[admintools:/]

@g_admin = rw

*=

4.4 Eclipse中使用SVN

  1. 在eclipse中安装svn插件

    1. 离线方式
      将eclipse_svn_site.zip 包解压到 eclipse安装目录下的dropins文件夹下即可

    2. 在线方式
      在eclipse目录下help->Eclipse Marketplace 搜:subversion /subeclipse

  2. 日常使用:

    • 项目组长:发布项目

      右键要发布的项目-team- share project - svn - ....输入发布的地址 svn://ip地址 ... 真正的发布/提交项目

    • 组员:检出项目(check out\下载)

      file-import-搜svn

      • 更新:右键待更新的文件/项目: team-更新

      • 提交:右键待提交的文件/项目: team-提交

  3. 信息提示:

    黄色圆柱:本地无未提交代码 */灰色箭头: 本地有未提交的代码 红色叹号:冲突

    蓝色箭头:服务端有最新代码,本地还没有更新

  4. 修改svn用户名密码:
    删除C:\Users\用户名\AppData\Roaming\Subversion\auth

  5. 冲突解决:

    右键项目-与资源库同步 选中 有红色标识的文件,右键-编辑冲突 ->修改->右键->team->编辑为解决

    冲突:更新时或提交时 发现冲突->右键编辑冲突-> 更新提交

  6. 恢复/查看历史版本

    选中需要恢复/查看的文件- team- 如果要恢复成历史版本 (获取内容),如果此操作报错,解决方法:svnserve.conf 文件中的 anon-access=none

备注:日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) -->作出自己的修改并调试成功 --> Commit(大家就可以看到你的修改了) 。

如果两个程序员同时修改了同一个文件呢, SVN 可以合并这两个程序员的改动,实际上 SVN 管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN 都会自动合并两种修改。如果是同一行,SVN 会提示文件 Conflict, 冲突,需要手动确认。

5、SVN 查看历史信息

通过svn命令可以根据时间或修订号去除过去的版本,或者某一版本所做的具体的修改。以下四个命令可以用来查看svn 的历史:

  • svn log: 用来展示svn 的版本作者、日期、路径等等。

  • svn diff: 用来显示特定修改的行级详细信息。

  • svn cat: 取得在特定版本的某文件显示在当前屏幕。

  • svn list: 显示一个目录或某一版本存在的文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值