SVN基本介绍、工作原理、基本操作和其他说明

目录

 

SVN简介

SVN是什么

SVN客户端下载安装说明

关于汉化失败

关于Idea添加SVN报错

SVN工作原理

SVN提交流程图

SVN基本操作

SVN浏览

CheckOut(检出)

Update(更新)

Add(加入)

Commit(提交)

Revert(还原)

Add to ignore list(忽略文件)

Clean up(清理)

获取锁定与解除锁定

SVN其他说明

SVN的权限说明

SVN的提交控制

SVN的分支策略


SVN简介

SVN是什么

  • SVN的全称是Subversion,版本控制系统

        是一个开放源代码的版本控制系统,通过采用分支管理系统的高校管理,简而言之就是用于多人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

  • SVN采用客户端/服务器体系,数据不丢失,历史可追溯

        SVN是输入C/S服务类软件,有客户端和服务端,客户端用于操作,服务端用于数据保存,服务端会管理着随时间改变的所有数据,以提交版本记录每次操作内容。

  • SVN的客户端有基于WEB的webSVN和Tortoise SVN为代表的客户端软件

SVN客户端下载安装说明

下载地址:https://tortoisesvn.net/downloads.html

1.首先运行TortoiseSVN-*安装客户端

 

 

 

2.然后运行LanguagePack_*安装汉化包(注意版本要与客户端一致)

3.汉化包安装完成后可以直接在安装向导中选择Configure TortoiseSVN to use this language,使汉化生效,也可以通过鼠标右键TortoiseSVN->Settings->General->Language中选择中文简体

 

 

关于汉化失败

       汉化包和客户端版本不一致,通过鼠标右键TortoiseSVN->About查看客户端版本,我的是1.10.5,64 bit,到官网上找到对应的语言包版本下载下来,将TortoiseSVN根目录下的Language文件夹删除,重新运行汉化包即可(本人亲测不需要见汉化包放到TortoiseSVN根目录下执行)。

https://osdn.net/projects/tortoisesvn/storage/1.10.5/Language%20Packs/LanguagePack_1.10.5.28651-x64-zh_CN.msi/

关于Idea添加SVN报错

使用idea作为IDE开发工具的话,command line client在安装时是必须勾选的,没有勾选的话在使用idea添加SVN库的时候会报:Can't use Subversion command line client:svn 的错误

如果之前安装客户端的时候没有选择command line client tools,那么找到安装包TortoiseSVN-*重新运行,选择Modify之后会弹出上一幅图中的页面,再次选择command line client即可

 

 

SVN工作原理

SVN提交流程图

 

SVN基本操作

SVN浏览

已安装客户端,鼠标右键,选择TortoiseSVN->版本库浏览器(Repo-browser)

在弹出的框中输入SVN地址,点击OK

 

 

 

未安装客户端可以直接在网页中输入SVN地址打开

CheckOut(检出)

用于检出仓库中的文件到本地,生成工作副本(文件夹下有个隐藏的.svn文件夹,不要删除或者不明白的操作,会破坏副本)。

  • 输入仓库地址(URL of repository)
  •  配置检出的本地目录(Checkout directory),
  •  检出深度(Checkout Depth):默认全递归(Fully recursive),检出全部文件夹、子文件夹及文件夹下的文件,也可根据需要选择。
  • 省略外部(Omit externals):一般不勾选
  • 选择项(Choose items):可以选择要检出的该仓库地下的文件夹
  • 版本(Revision):一般选择最新版本(HEAD revision),也可以根据需要勾选版本(Revision)并输入要检出的版本号,版本号可以在显示日志(Show log)中查看历史的版本记录

与Export(导出)区别

Export(导出)操作参考Checkout(检出)

CheckOut(检出)会生成工作副本,副本会与SVN仓库关联,实现版本控制、提交、更新等等

Export(导出)不会生成工作副本(无.svn隐藏文件夹),会把仓库的资源复制到本地,不可以实现版本控制、提交、更新等等操作。

Update(更新)

用于更新工作副本到对应版本

方法:选择文件或目录鼠标右键

  • SVN更新(SVN Update):

        更新到最新

  • 更新至版本(Update to revision):

        最新版本(HEAD revision),也可以根据需要勾选版本(Revision)并输入要检出的版本号,版本号可以在显示日志(Show log)中查看历史的版本记录

 

 

 

Add(加入)

用于将文件或者目录加入到svn版本控制中

方法:选择文件或目录右键

 

注意:加入(Add)只是将文件加入到本地工作副本的版本控制中,并没有提交到SVN仓库

Commit(提交)

用于提交本地副本的文件到svn服务器

方法:选择工作副本右键SVN 提交(SVN Commit),然后选择要提交的文件、输入提交内容信息(Message),点击确定(OK)

注意:如果只读权限是不能提交的;本地不是最新的可能会出现冲突。

Revert(还原)

用于撤销本地未提交的修改

方法:选择工作副本右键TortoiseSVN->还原(Revert)->选择需要还原的文件或目录->确定(OK)

Show log(显示日志)

用于显示历史操作记录

方:1:选择工作副本文件或目录右键TortoiseSVN->显示日志(Show log)

 

方法2:选择SVN版本库浏览器(Repo-browser)路径中右键,显示日志(Show log)

 

Add to ignore list(忽略文件)

用于添加文件或目录不被svn版本控制

方法1(较旧的版本):选择文件或目录右键TortoiseSVN->增加到忽略列表(Add to ignore list),可以选择只讲该文件添加到忽略列表,也可以选择将以txt为后缀(*.txt)的文件全部忽略。

方法2(较新的版本):在某个目录下右键TortoiseSVN->属性(Properties)

 

        新建(New)->其他(Other)

 

  • 属性(Property name)选择:svn:ignore或者svn:global-ignores
  • 取值(Property value)可以填写参考:

target

.idea

.settings

.project

*.iml

*.log

.logs

.classpath

log

logs

  • 递归应用属性(Apply property recursively):不勾选,只作用于当前目录,不对子目录中的文件生效;勾选可对子目录中的文件生效。

 

注意:在工作副本的目录中右键TortoiseSVN->属性(Properties),是可以看到当前目录生效的SVN忽略项(黑色),以及父级目录的SVN忽略项(灰色)。

 

方法3:在工作副本的目录中右键TortoiseSVN->设置(Settings)->常规设置(General)中Subversion的全局忽略样式(Global ignore pattern)里添加要忽略的文件后缀

这种方式没事试过,不清楚生效规则。

 

Clean up(清理)

用于清除锁定状态,也可以清理不受SVN版本控制的文件

(会将.svn清理一下)

方法:选择需要清理的目录右键TortoiseSVN->清理(Clean up)

什么时候需要用清理(Clean up)

        当我们需要提交修改时,会向.svn中写入一些信息,然后向SVN服务器发送信息,如果该信息没有正确的发送到SVN服务器(提交(SVN Commit)会同时失败),SVN服务器中的版本信息跟本地工作副本的版本信息不一致,再次提交会提示目录被锁定,这时需要清理(Clean up),如果清理之后还是不能提交,关机重启一下试试(T^T)

获取锁定与解除锁定

加锁用于防止文件被他人修改

获取锁定方法:选择需要加锁的文件或目录右键TortoiseSVN->获取锁定(Get lock)-输入锁定的原因(可选)->确定(ok)

注意:如果其他人已经加锁,此时获取锁定(Get lock)是不成功的。

解除锁定方法:选择需要加锁的文件或目录右键TortoiseSVN->解除锁定(Release lock)

SVN其他说明

SVN的权限说明

  • SVN可以按照文件和目录来配置权限

        SVN有一套完整的权限管理体系,可以给个人或者组分配权限,并且权限可以分配到文件级别,权限分“读”(只能查看)与“写”(可以修改)两种情况

  • 实际的项目中SVN权限要按需申请并以最小化原则开通

        需根据工作需要开通,对项目人员的不同角色开通不同的权限或者权限组,以最小化原则。

SVN的提交控制

  • SVN钩子脚本控制

        SVN有一套提交控制脚本,称为钩子脚本,通过钩子脚本可以对提交的文件类型,提交日志填写要求做控制,还可以通过脚本触发一些工具的执行。

  • SVN日志模板设置

        设置SVN提交时要填写的模板,并且提交时检查是否按照模板填写,未符合要求的会被禁止提交

  • SVN锁定提交

        对一些重要文档,为防止多人提交出现覆盖的情况,可以设置成需要锁定文件后才能提交

SVN的分支策略

  • SVN采用分支管理系统

        分为trunk-主干、branches-分支和tags-标签

        分支上所做的提交都只存于分支上,主线上的Update是看不到分支的修改的


后续有时间补充:Linux构建SVN服务器,权限配置,SVN 管理界面等

 

 

 

 

 

 

 

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4.1 SVN的特点 SVN(Subversion)是一个集中式版本控制系统,其特点包括: - 集中式控制:SVN使用集中式控制,即所有的代码都存储在中央服务器上,开发者通过客户端从中央服务器上获取代码进行开发。 - 可靠性:SVN提供了完善的错误处理和恢复机制,可以保证代码在传输、存储和管理过程中的可靠性。 - 简单易用:SVN的命令行和图形化界面都比较简单易用,容易上手。 - 多平台支持:SVN可以在Windows、Linux、Mac等多个平台上运行,且可以与其他版本控制系统兼容。 - 安全性:SVN提供了多种身份验证方式,可以确保代码的安全性。 4.2 SVN基本操作 SVN基本操作包括: - Checkout:从中央服务器上获取代码到本地电脑。 - Commit:将本地代码提交到中央服务器。 - Update:从中央服务器上获取其他人提交的代码更新到本地电脑。 - Revert:撤销本地的修改,恢复到之前的状态。 - Diff:对比本地代码和中央服务器上的代码差异。 - Merge:合并其他人提交的代码到本地电脑。 - Log:查看提交历史记录和日志信息。 4.3 SVN的分支管理 SVN支持分支管理,可以方便地进行代码的并行开发和维护。常见的分支管理方式包括: - 主干(trunk):主要用于稳定版本的开发和发布。 - 分支(branch):用于并行开发新功能或解决问题,可以随时将分支代码合并到主干上。 - 标签(tag):用于标记发布版本,一般不对标签代码进行修改。 4.4 SVN的协同工作 SVN的协同工作需要遵循以下原则: - 避免在同一个文件的同一行进行修改,避免代码冲突。 - 经常进行代码提交,避免代码丢失。 - 在进行代码提交前,先进行代码的更新与合并,避免代码冲突。 - 在进行代码合并时,仅将必要的修改合并到本地代码中,避免不必要的代码冲突。 - 对于大规模的代码修改,可以先在分支上进行测试和验证,确保代码的稳定性再合并到主干上。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值