前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >SVN使用指南【工作培训版】

SVN使用指南【工作培训版】

作者头像
Java帮帮
发布于 2018-03-15 09:17:24
发布于 2018-03-15 09:17:24
2.5K0
举报
为什么要使用配置管理

及时了解团队中其他成员的进度。

轻松比较不同版本间的细微差别;

记录每个文件成长的每步细节,利于成果的复用(reuse);

资料共享,避免以往靠邮件发送文件造成的版本混乱;

人人为我,我为人人。所有成员维护的实际是同一个版本库,无需专人维护所有文件的最新版本;

协同工作,大大提高团队工作效率,无论团队成员分布在天涯还是海角;


1、Subversion/TortoiseSVN的版本控制系统

Subversion:是一个开源的版本控制系统,拥有CVS的大部分特征,并在CVS的基础上有更强的扩展,用来代替 CVS 系统。

TortoiseSVN:SVN的客户端工具,和资源管理器完美集成,基于TortoiseCVS的代码开发,使用上与TortioseCVS极其相似;


2、配置库( Repository )

SVN的核心是配置库,储存所有的数据,配置库按照文件树形式储存数据-包括文件和目录,任意数量的客户端可以连接到配置库,读写这些文件。通过写数据,别人可以看到这些信息;通过读数据,可以看到别人的修改。

最特别的是 Subversion 会记录配置库中的每一次更改,不仅针对文件也包括目录本身,包括增加、删除和重新组织文件和目录。


3、工作副本(WorkSpace)

与位于中央配置库相对应的是每个人的工作空间,它是每个程序员工作的地方,程序员从配置库拿到源代码,放在本地作为工作副本,在工作副本上进行查看、修改、编译、运行、测试等操作,并把新版本的代码从这里提交回配置库库中。


SVN工作模式

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

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

锁定-修改-解锁方案

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

SVN安装

安装完毕后,在“资源管理器”里点击右键,会有如下菜单出现:

目录结构

SVN使用流程

SVN使用图标说明

一个新检出的工作副本使用绿色的对勾做重载。表示Subversion状态正常.

当我们开始编辑一个文件后,图标将变成红色感叹号。通过这种方式,可以很容易地看出我们对哪些文件进行了修改操作,但是还没有提交到版本库中;

如果在提交的过程中出现了冲突,图标将变成黄色感叹号。

如果我们拥有了一个文件的锁,并且Subversion状态是正常,这个重载图标将提醒我们:如果不使用该文件的话,请进行释放锁操作,允许其他成员提交对该文件的修改。

这个图标表示当前文件夹下的某些文件或文件夹已经被计划从版本控制中删除,或是该文件夹下某个受控的文件丢失了。

加号告诉我们有一个文件或是目录已经被计划加入版本控制。

SVN CheckOut检出

作用:将版本库中的内容检出到本地工作副本

步骤:

1.新建一个空文件夹; 比如:E:\Proj_trunk

2.在此目录中点击右键-> SVN Checkout...

SVN CheckOut检出注意事项

检出深度:

1.全递归(默认选择)

检出完整的目录树,包含所有的文件或子目录。

2.直接节点,包含目录

检出目录,包含其中的文件或子目录,但是不递归展开子目录。

3.仅文件子节点

检出指定目录,包含所有文件,但是不检出任何子目录。

4.仅此项。

只检出目录。不包含其中的文件或子目录。

省略外部引用:如果项目含有外部项目的引用,而这些引用我们不希望同时检出,请选中忽略外部项目复选框。如果选中了这个复选框,更新的时候要使用命令”更新至版本Update to Revision...”

SVN Update更新

作用:更新工作副本使其成为版本库中的最新版本

SVN将显示出更新的文件和更新的次数

SVN Commit提交

对工作副本进行编辑后提交到SVN

在右键菜单中点击SVN Commit

提交前写好信息,点击确定

SVN 权限控制

当进行提交文件操作的时候您将看到权限提示信息

输入您的用户名和密码

保存权限设置(见红圈) ,可以避免将来重复输入用户名和密码

SVN 如何删除认证数据

步骤:点击右键 选择设置 以保存数据 清除认证数据

SVN Show log显示日志

SVN 日志信息填写规则

好的日志信息和糟糕的日志信息

日志信息主要记录的是每次的修改内容。建议把一些重要数据、关键操作写到日志信息中。

注:修改人和提交时间由软件自动记录,无需人工写入日志信息

SVN 如何得到历史版本

工作副本右键 显示日志 选择所需的版本号 保存版本至

SVN Revert(还原)

作用:撤销本地所有未提交的修改

注意:还没有执行Commit操作之前执行此命令才可以,否则无效

SVN Add添加

选中文件/文件夹(在新文件/文件夹所在父文件夹点击右键),

在菜单中选择“添加Add”命令。不需要受SVN控制的文件请取消打钩。

SVN Add to Ignore List (忽略文件)

添加忽略文件

右键一个单独的未进入版本控制文件TortoiseSVN (加入忽略列表)Add to Ignore List,会出现一个子菜单允许你仅选择该文件,或者所有具有相同后缀的文件。

删除忽略文件:

如果你想从忽略列表中移除一个或多个条目,右击这些条目,选择TortoiseSVN → 从忽略列表删除。

已进入版本控制的文件或目录不能够忽略

SVN 版本分支

这个版本历史分析图能够显示分支/标签从什么地方开始创建,以及什么时候删除。

版本分支图将显示以下内容:

(1)增加文件/文件夹(2) 已删除文件/文件夹

(3)分支最新版本 (4) 一般的文件/文件夹

SVN 如何创建分支

两种方式:

1.在版本库浏览器中创建分支

2.在工作副本创建分支

创建分支成功

SVN Switch切换

文件创建分支后,可通过Switch选择在主干工作或者在分支工作;

注意:

(1)切换操作起来就象更新,因为它没有丢弃我们在本地做的修改。

(2)在工作副本里,当我们进行切换的时候,任何没有提交过的修改都会被混合。

解决方法:

1)在切换前提交修改;

2)把工作副本恢复到一个已经提交过的版本(比如最新版本)。

SVN 合并

假设我们在分支上进行修改:添加一条输出语句:

System.out.println(“测试是否能将分支的修改合并到主干中!”) ;提交到配置库中,现在执行将分支合并到主干的操作

SVN 分支合并到主干

右键主干的文件 选择合并

SVN 合并时出现冲突

SVN 编辑冲突

SVN 冲突已解决

SVN 合并成功

SVN 什么是冲突

团队协同工作时,当多位团队成员同时修改同一个文件,造成本地文件与SVN系统中的文件版本不一致,而导致文件无法提交的情况

SVN 冲突产生原因

当团队协同工作的时候,多位团队成员同时操作一个文件。团队成员A操作完成后,将该文件提交到SVN上。此时,其他团队成员的本地文件与SVN上的文件版本不一致。当团队成员B操作完成并对文件进行提交操作时,就会产生冲突

SVN 冲突提示页面

提交时产出冲突

SVN 冲突解决方案

遇到冲突时,需要update该文件。我们将看到三个带问号的文件

 filename.mine

 filename.rOLDREV

 filename.rNEWREV

面对文件冲突,我们可以选择以下两种方式解决冲突

使用工具解决冲突

用revert放弃所做的修改

SVN 使用工具解决冲突

使用自带工具,如图所示

对比两个版本的文件,解决冲突

工具中会列出两个版本冲突的部分,并让我们选择使用哪个版本的内容

SVN 用revert放弃所做的修改

选择SVN还原(revert) 放弃自己所做的修改

SVN 解决冲突之后

通过上面所说的方法,解决冲突后要选择已解决的(resolved)

解决后,带问号的三个文件将自动删除

最后选择commit提交到SVN

SVN 关于冲突的建议

修改文件之前,先进行一次update操作

修改完成后,及时commit,不要在本地停留过长时间

在多位团队成员协作时,尽量修改自己撰写的部分,尽量不要修改不属于自己撰写的部分

出现冲突很正常,可以通过前面的方法解决,不要相互覆盖

SVN 其他SVN的功能

Export(导出)

导出你需要的文件,导出后不在受SVN控制;而checkout检出的文件仍受SVN控制;

Import(导入)

将需要的文件导入到版本库中;

Relocated(重新定位)

服务器上的版本库目录已经改变,我们可以把工作复本重新定位;

CleanUp(清理)

递归的清理工作副本,删除锁定和保留的未完成操作,如果你得到工作副本已经锁定的错误,运行这个命令删除无用的锁定,并将工作副本恢复到可用的状态;

SVN Subclipse的安装步骤(Eclipse集成)

1. 帮助 > 软件更新 >查找并安装

2. 选择“要安装的新功能部件” 选项并点击Next。

3. 点击“新站点”并且创建一远程站点,

名字:Subclipse

URL:http://subclipse.tigris.org/update_1.2.x

4. 在结果安装窗口中,把"Subeclipse in the Features" 选择到安装列表中,并且通过向导来开始安装插件。

5. 完成这些之后,重新启动Eclipse

SVN 在Eclipse下使用的图标

受SVN控制的文件被标记为小黄桶;

修改过的文件都被标记上一个黑色星号;

未受版本控制的文件被标记为问号;

SVN Eclipse下使用的主要功能

将版本库导入到SVN资源库

将新建项目导入到版本库

Eclipse中小组的使用

比较对象

例如:

基本修订版

资源库中的最新内容

分支/标记

修订版

比较的对象是你选择的版本号对应的项目

本地历史记录

现修改的版本与本地修改的其他版本库进行比较

Eclipse中的替换为

注:与比较对象的应用一样,只是这是替换.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-12-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java帮帮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
svn安装及使用(身体功能手册)
官网下载址:https://www.visualsvn.com/visualsvn/download/tortoisesvn/
全栈程序员站长
2022/07/31
6900
svn安装及使用(身体功能手册)
SVN就是这么简单
什么是SVN SVN全称:Subversion,是一个开放源代码的版本控制系统 Svn是一种集中式文件版本管理系统。集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。 集中式文件版本控制器:将所有的文件都交由服务器来进行统一的管理。既然是有服务器的,那么就需要联网进行操作了。 为什么要使用SVN 我们写一个项目一般都是一个团队来写,如果我们没有用SVN的话,那么我们只能在团队中互相拷贝对方的代码来完成我们的项目。 SVN还有如下的好处: 轻松比
Java3y
2018/03/15
8360
SVN就是这么简单
SVN教程-SVN的基本使用
SVN(Apache Subversion)是一款强大的集中式版本控制系统,它在软件开发项目中扮演着至关重要的角色,用于有效地跟踪、记录和管理代码的演变过程。与分布式系统相比,SVN 的集中式架构使得团队能够更加协同地进行开发,通过对中央仓库的访问,成员们可以共享和同步彼此的工作。这种结构简化了版本控制的过程,使得代码的演进更加可控和透明。
Damon小智
2024/02/29
5680
SVN教程-SVN的基本使用
SVN版本控制
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
海仔
2019/10/22
1.4K0
SVN版本控制系统快速参考
一.SVN下载与安装     SVN属于集中式版本控制系统,需要使用服务器存储版本系统、实现团队协作。
星哥玩云
2022/07/03
8740
TortoiseSVN新人使用指南[通俗易懂]
首先安装SVN客户端,windows一般选择乌龟客户端https://tortoisesvn.net/downloads.html。 根据系统位数选择相应客户端进行安装。
全栈程序员站长
2022/08/18
2.9K0
TortoiseSVN新人使用指南[通俗易懂]
svn初步安装以及使用
下载网址:https://download.csdn.net/download/qq_38998213/10920144
zhangjiqun
2024/12/16
4500
svn初步安装以及使用
eclipseSVN的安装及使用
  它是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作。
全栈程序员站长
2022/08/04
1.2K0
eclipseSVN的安装及使用
【SVN-TortoiseSVN】SVN 的简介与TortoiseSVN 安装使用教程
TortoiseSVN 是一个客户端,允许开发人员直接从 Windows 的文件浏览器中操作,提供“点击右键并按下(point-and-click)”的使用环境。
SarPro
2024/05/12
1.3K0
【SVN-TortoiseSVN】SVN 的简介与TortoiseSVN 安装使用教程
史上最全SVN使用总结,建议先收藏后观看
最近在公司又开始玩SVN啦,这里给大家总结一下,基本上在公司不是用git就是用SVN进行代码管理,作为程序员,这些工具的使用还是需要熟悉了解一下的,本期孙叫兽给大家分享一下SVN相关的知识点,做到会用即可。不懂得可以查查相关文档。
孙叫兽
2021/07/29
2.7K1
史上最全SVN使用总结,建议先收藏后观看
SVN
SVN是Subversion的简称,是一个自由开源的版本控制系统。 Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节 早期版本控制使用的是CVS,后来SVN替代了CVS,随着android兴起,出现Git版本控制工具
暴躁的程序猿
2022/03/24
1.4K0
SVN
03.SVN检出/解决冲突/提交
SVN 检出操作 ---- 上一章中,我们创建了版本库runoob01,URL为svn://192.168.0.1/runoob01,svn用户user01有读写权限。 我们就可以通过这个URL在客户
Java帮帮
2018/03/15
2K0
03.SVN检出/解决冲突/提交
SVN常用命令
SVN(Subversion)是一个自由、开源的项目源代码版本控制工具。目前,绝大多数开源软件和企业代码管理,都使用SVN作为代码版本管理软件。
阳光岛主
2019/02/19
2.9K0
SVN入门安装配置与适用
[toc] 0x00 快速入门 什么是SVN? 答:Apache Subversion 通常被缩写成 SVN,是一个开源的中心服务器版本控制系統,Subversion 在 2000 年由 Collab
全栈工程师修炼指南
2020/10/23
7940
SVN入门安装配置与适用
SVN 基础记录
毕业后在 mz 版本控制一直用 git, 这段时间换到 tx, 使用的 svn,开始还是有些不习惯。 所以整理记录下 svn 的一些基本使用,方便工作。
orientlu
2018/09/13
7190
SVN之于GIT的理论优势
SVN(SubVersion)是Apache下一个开源的中心化版本控制系统,采用客户端/服务器架构存放项目仓库(仓库 = 代码 + 历史)。和分布式的Git相比,中心化的SVN有以下的诸多特点:
Jean
2020/09/25
1.3K0
SVN之于GIT的理论优势
Windows安装TortoiseSVN客户端结合Cpolar实现公网提交文件到本地服务器
TortoiseSVN是一个开源的版本控制系统,它与Apache Subversion(SVN)集成在一起,提供了一个用户友好的界面,方便用户进行版本控制和团队协作,广泛应用于软件开发和项目管理领域。
YY的秘密代码小屋
2024/04/02
1380
Windows安装TortoiseSVN客户端结合Cpolar实现公网提交文件到本地服务器
aicoder实习svn内部培训教程
都已经用了git,为什么还要介绍svn呢?为了让aicoder.com的学员能够掌握多种的源代码管理工具的使用方法,更快的融入到项目开发中,特整理此文档。
老马
2019/05/25
7920
版本控制软件SVN的使用
只要进行团队软件开发,就会涉及源代码的合并共享以及带来的相关问题 1、 代码如何合并(手工合并几乎不可能) 2、 历史版本的保存(各个版本间有大量重复,多大变化算一个版本) 3、跟踪哪些代码是谁修改(每个代码都写上注释说明作者?故意写成别人呢)
时间静止不是简史
2020/07/27
1.1K0
Web-第二十七天 SVN使用【悟空教程】
为保障团队开发过程中人员沟通各方面成本的降低,必须使用一种有效的方式减少沟通环节,提高开发效率,对资源的共享进行管理。
Java帮帮
2018/08/06
1K0
Web-第二十七天 SVN使用【悟空教程】
相关推荐
svn安装及使用(身体功能手册)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档