SVN基本使用笔记——广州云科

简介

SVN是什么?
代码版本管理工具
它能记住你每次的修改

查看所有的修改记录

恢复到任何历史版本

恢复己经删除的文件


SVN跟Git比,有什么优势
使用简单,上手快
目录级权限控制,企业安全必备
子目录Checkout,减少不必要的文件检出


主要应用:
开发人员用来做代码的版本管理
用来存储一些重要的文件,比如合同
公司内部文件共享,并且能按目录划分权限


SVN仓库
推荐: svnbucket.com,sVN桶

现在最好用的SVN服务


安装sVN客户端
TortoisesvN   windows推荐

cornstone    mac推荐

svnbucket.com(sVN桶)官网如下:也有使用教程

svn使用教程 · SVN使用教程

下载安装svn客户端

可参考:svn客户端下载 · SVN使用教程

从而下载win的64位的TortoiseSVN客户端

官网下载太慢,也可找别的渠道下载,如【TortoiseSVN下载 中文版】TortoiseSVN 1.14.5-ZOL软件下载

下载后,点击安装直接next。

下载汉化包:还是找到上面官网svn客户端下载 · SVN使用教程

下载后运行安装,安装最后一步勾选配置TortoisesvN使用这个语言。即可。

sVN基本操作:
检出checkout

新增add
提交commit

更新update

历史记录

SVN基本操作

1、进入官网,注册登录后,项目列表点击加号创建一个项目,输入名称和描述,可先不勾选那个创建三个目录的按钮。

SVNBucket - SVN仓库,免费 SVN 代码托管服务器,不限私有,不限成员

2、点击这个项目,点击复制SVN地址如svn://svn.svnbucket.com/svn_3284514536/svnbucket/

3、桌面上创建一个目录,如workspace,点进去,点击右键,然后点击svn检出,再给他加一层目录后点击确定,输入svn的用户名和密码即可。

4、进入该目录C:\Users\kongdeyi\Desktop\workspace\svnbucket后,发现一个.svn文件夹,我们在这个C:\Users\kongdeyi\Desktop\workspace\svnbucket目录下从别的地方copy几个文件放进去。右键svn提交,然后第一个框中输入描述,第二个框中选择要提交的内容,也可点击全选全部选中,然后确定即可。

5、然后再是svnbucket网站中可看到提交的内容和记录等

6、我们修改一下pojo中的User实体类中的内容,然后再次在.svn文件夹所在的目录点右键svn提交,提交前可双击查看文件变更的内容差异:

确定没问题后,确定提交即可。

7、svnbucket网站上该文件查看发现是经过修改后的内容。

8、查看日志:在该C:\Users\kongdeyi\Desktop\workspace\svnbucket\文件夹或子文件夹中右键tortoiseSVN选择显示日志即可查看之前提交的内容。

在svn提交之前先右键的svn更新是一个比较好的习惯,可避免覆盖原文件。

撤销和回复

撤销和恢复:
撤销本地修改

撤销已提交内容

恢复到指定版不

第一种情况:比如我们修改了pojo下的User类将类名改成User666,只是在本地还未提交,我们想到这个是个错误的修改,我们可右键tortoiseSVN中选择还原,也可在svn提交的时候,检查一下修改的内容后,提交窗口中右击该文件选择svn还原。

第二种情况,当我们将修改成错误的内容文件提交上去了,提交完后发现该pojo下的user类刚刚修改成user666是有问题的。

可先在右键tortoiseSVN中日志中看到这次提交的文件,点开发现和之前修改的区别确实是改错了。我们可在下图位置右键,选择复原此版本做出的修改

然后现在只是本地恢复正常了,但我们还需要提交到仓库,右键svn提交即可

第三种情况是我们想恢复到一个比较早的版本,恢复到指定版本

右键tortoiseSVN中日志中,想要复原到的版本,右键复原到此版本

现在还是只是本地修改了,我们还需要svn提交。

添加忽略

忽略不想提交的文件:

C:\Users\kongdeyi\Desktop\workspace\svnbucket文件夹下的pojo我们不想pojo文件夹提交了,我们可右击这个pojo文件夹,tortoiseSVN->去除版本控制并增加到忽略列表,选择pojo即可。

然后,先svn更新后svn提交,就会将这些删除pojo目录的本地提交到远程仓库。

也可在svn提交的时候,在第二个框中,对某个文件或文件夹右键,选择增加到忽略列表也可。

又不想忽略这个pojo文件夹或其他已经被忽略的文件呢?

右击这个被忽略的文件或文件夹,tortoiseSVN选择加入,或选择从忽略列表中删除。然后svn提交即可。

解决冲突

什么情况容易发生冲突?
1多个人修改了同个文件的同一行

2无法进行合并的二进制文件
怎么避免冲突?
经常update同步下他人的代码

二进制文件不要多个人同时操作
冲突了怎么办?
解决冲突很简单,不用怕

版本冲突原因:

假设A、B两个用户都在版本号为100的时候,更新了kingtuns.txt这个文件,A用户在修改完成之后提交kingtuns.txt到服务器,这个时候提交成功,这个时候kingtuns.txt文件的版本号已经变成101了。同时B用户在版本号为100的kingtuns.txt文件上作修改,修改完成之后提交到服务器时,由于不是在当前最新的101版本上作的修改,所以导致提交失败。

别人修改了pojo下的User中类名改为User666并提交了,本机电脑没有update这个最新版本的,在上一个版本中也修改了User类的类名这一行的代码为public interface,然后svn更新,或只选中这个User类进行svn更新这一个文件,就会报冲突,会生成几个这个User文件,mine是本地的,r7和r9是版本7或9的,参考下图:

解决方法:

然后右击爆红的地方,可使用他的,丢弃我的,也可丢弃我的,使用它的。也可编辑冲突:

编辑冲突,可以在他的或我的冲突的这行右击这一行,使用某个正确的文本块,如下:

确定后,更新成功,本地恢复正常了,解决冲突了。

对于修改二进制文件,比如图片,用别的地方某个同名图片覆盖掉svn项目中的某个图片。然后svn更新,就会产生冲突。右击爆红的冲突这行,可选择使用他们的还是使用我的,或选择编辑冲突,选择要本地现在的副本的,还是上一个版本的,还是远程的。

分支

什么时候需要开分支?
隔离线上版本和开发版本
大功能开发,不想影响到其他人,自己独立开个分支去开发


sVN经典目录结构:
trunk    主干,开发中的文件 ,平时在主干上开发,开发后用那个版本可开一个分支存储到branch中。
branches   分支

tags    标签

1、可在vnbucket中创建项目的时候勾选那个创建分支接口的选框。

2、自己创建:

先创建这三个文件夹,然后将之前该svnbucket文件夹中的工作文件放到trunk目录中,svn提交,选择全部文件提交即可。        

开发就在主干上开发,开发完成要上线了,就可开一个分支。

1、右击trunk文件夹,ortoiseSVN选择分支/标记,选择至路径branches,加个onlinev1.0

填写信息,选择版本库中的最新版本

点击确定即可

2、更新一下C:\Users\kongdeyi\Desktop\workspace\svnbucket  svn更新,然后branches目录下就会有onlinev1.0文件夹,里面就有trunck分支下的所有内容复制了一份。

这样会有个问题,以后分支越来越多,要更新的内容也会越来越多,我们可将分支单独checkout一份出来:

右击这个文件夹,选择属性

选择subVersion,复制全部的url:

回到workspace,在这个目录右击,选择svn检出,也可改个名字,确认即可:

然后同理,sgvnbucket目录下的trunk目录也可属性复制url,在workspack目录下检出一份。这样svnbucket目录就可删除了,结果如下

这样在主干修改的内容提交不会影响分支,分支修改提交也不会影响主干。

合并分支 

分支上修改的内容怎么同步到主干上呢,如分支上修改bug,要同步到主干上:

workspace目录下右击这个svnbucket-onlinev1.0文件夹,ortoiseSVN选择显示日志。选中某个版本,合并版本到:

合并版本到,选择主干的文件夹:

 本地主干目录合并好了,我们在主干目录svn提交到远程仓库

分支切换 

再开一个分支:

右击workspace目录下的svnbucket-trunk目录,选择tortoisesvn,选择分支/标记,选择branches分支,起个名onlinev2.0,确认即可。

右击这个svnbucket-onlinev1.0, tortiosesvn,选择切换:

可下拉切换,或点右侧选择路径切换 

确定后,右击这个svnbucket-onlinev1.0属性,就看到切换成2.0了

当然,我们可以给这个文件夹改个名字:

也可点进C:\Users\kongdeyi\Desktop\workspace\svnbucket-online,右击后 tortiosesvn点击版本库浏览器,查看结构        

代码暂存

有什么用?
1.代码改了很多,突然需要紧急修复一个bug,但是代码还没写完,不能提交。

2.代码重构了很多,突然需要发布新版本,但是代码还跑不起来,不能提交。

C:\Users\kongdeyi\Desktop\workspace\svnbucket-trunk\pojo中的User类,我们修改了一些代码,带还没改完,不应该提交。我们右击后Tortoise中选择汉化翻译的贮藏

上面两个按钮,一个不保留修改,一个保留修改。 

取出暂存,我们右击后Tortoise中选择汉化翻译的取消贮藏,选择暂存的文件来取出暂存

 复杂代码合并

上面分支部分学了在日志中选择某个版本合并到另外一个分支上去。

情况:
主千开发新功能,改了很多
分支是线上版本,修复了很多bug
两个分支的代码时间久了差异很大,无法直接分支合并或者指定提交记录合并代码


使用BeyondCompare

下载:下载 | Beyond Compare 中文官方网站

安装后使用

选择文件比较,选择将路径分别粘贴到左右:

选中右键比较内容,直接点开始,

上方选择差别菜单,也可选择全部。

点开这个User.java文件:

点左边这个,将右边替换,点击右边这个将左边替换。然后修改完后,再ctrl+s可保存。

然后就可按需合并修改了。然后再把代码提交上即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/73232.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开机性能-如何抓取开机systrace

一、理论 1.背景 抓取开机 trace 需要使用 userdebug 版本,而我们测试开机性能问题时都要求使用 user 版本,否则会有性能损耗问题。因此想要在抓取开机性能trace 时,需要在 user 版本上打开 atrace 功能之后才能抓取 trace,默认 …

CRM软件系统能否监控手机的使用

CRM可以监控手机吗?答案是不可以。CRM是一款帮助企业优化业务流程,提高销售效率的工具。例如Zoho CRM,最多也就是听一下销售的通话录音,却不可以监控手机,毕竟CRM不是一款监控软件。 CRM的主要作用有以下几点&#xf…

【Linux】工具GCC G++编译器轻度使用(C++)

目录 一、关联知识背景 二、GCC如何的编译过程 【2.1】预处理(进行宏替换) 【2.2】编译(生成汇编) 【2.3】连接(生成可执行文件或库文件) 三、GCC命令的常用选项 四、动静态链接 一、关联知识背景 gcc 与 g 分别是 gnu 的 c & c 编译器 gcc/g 在执行编译工作的时候…

重建与发展:数字资产借贷行业朝着可持续发展迈进!

纵观历史,贷款和货币一样古老,无论哪种形式的货币都需要有其借贷市场。现在,比特币以其分散和透明的性质,在加密领域占据龙头地位。 就像之前的货币一样,比特币要真正蓬勃发展,也需要一个强大的借贷市场。然…

javaee spring aop实现事务 项目结构

spring配置文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:context"http://www.springframewo…

基于AERMOD模型在大气环境影响评价中的实践技术应用

随着我国经济快速发展&#xff0c;我国面临着日益严重的大气污染问题。近年来&#xff0c;严重的大气污染问题已经明显影响国计民生&#xff0c;引起政府、学界和人们越来越多的关注。大气污染是工农业生产、生活、交通、城市化等方面人为活动的综合结果&#xff0c;同时气象因…

数学建模--退火算法求解最值的Python实现

目录 1.算法流程简介 2.算法核心代码 3.算法效果展示 1.算法流程简介 """ 1.设定退火算法的基础参数 2.设定需要优化的函数,求解该函数的最小值/最大值 3.进行退火过程&#xff0c;随机产生退火解并且纠正,直到冷却 4.绘制可视化图片进行了解退火整体过程 &…

C# OpenVino Yolov8 Seg 分割

效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp;namespace OpenVino_Yolov8_Demo {public…

web请求cookie中expires总结

用意 cookie 有失效日期 "expires"&#xff0c;如果还没有过失效期&#xff0c;即使重新启动电脑&#xff0c;cookie 仍然不会丢失 注意&#xff1a;如果没有指定 expires 值&#xff0c;那么在关闭浏览器时&#xff0c;cookie 即失效。 设置 如果cookie存储时间大…

RHCE——十七、文本搜索工具-grep、正则表达式

RHCE 一、文本搜索工具--grep1、作用2、格式3、参数4、注意5、示例5.1 操作对象文件&#xff1a;/etc/passwd5.2 grep过滤命令示例 二、正则表达式1、概念2、基本正则表达式2.1 常见元字符2.2 POSIX字符类2.3 示例 3、扩展正则表达式3.1 概念3.2 示例 三、作业1、作业一2、作业…

华为云云耀云服务器L实例评测|用docker搭建frp服务测试

华为云云耀云服务器L实例评测&#xff5c;用docker搭建frp服务测试 0. 环境 华为云耀云L实例EulerOS 1. 安装docker 检查yum源&#xff0c;本EulerOS的源在这里&#xff1a; cd /etc/yum.repos.d 更新源 yum makecache 安装 yum install -y docker-engine 运行测试 d…

ATFX汇市:美初请失业金人数21.6万人,连降四期,劳动力供需偏紧

ATFX汇市&#xff1a;9月7日&#xff0c;美国劳工部数据显示&#xff1a;美国至9月2日当周初请失业金人数最新值21.6万人&#xff0c;低于前值22.9万人&#xff08;修正前22.8万人&#xff09;&#xff0c;低于预期值23.4万人。回顾历史数据&#xff0c;美国初请失业率人数从25…

LabVIEW检测润滑油中的水分和铁颗粒

LabVIEW检测润滑油中的水分和铁颗粒 润滑油广泛应用于现代机械设备&#xff0c;由于工作环境日益恶劣&#xff0c;润滑油经常被水分乳化&#xff0c;加速对机械设备的腐蚀。此外&#xff0c;润滑油还受到机械零件摩擦中产生的Fe颗粒的污染&#xff0c;削弱了其机械润滑效果。润…

操作视频的开始与暂停

调用 ref.current.play() 方法来播放视频&#xff1b; 如果视频需要暂停&#xff0c;我们调用 ref.current.pause() 方法来暂停视频。 通过 useRef 创建的 ref 操作视频的开始与暂停 当用户点击按钮时&#xff0c;根据当前视频的状态&#xff0c;我们会开始或暂停视频&…

图解 LeetCode 算法汇总——链表

本文首发公众号&#xff1a;小码A梦 一般数据主要存储的形式主要有两种&#xff0c;一种是数组&#xff0c;一种是链表。数组是用来存储固定大小的同类型元素&#xff0c;存储在内存中是一片连续的空间。而链表就不同于数组。链表中的元素不是存储在内存中可以是不连续的空间。…

redis核心数据结构

redis下载地址&#xff1a;Download | Redis linux进入redis目录首先使用make命令进行c的编译&#xff0c;修改redis.conf文件&#xff1a; daemonize yes #后台启动 protected-mode no #关闭保护模式&#xff0c;开启的 # 需要注释掉bind #bind 127.0.0.1&#xff08;bind…

2023-简单点-编译是什么?gcc是什么?

编译目的 把一种 程序 变成 另一种更接近机器指令 编译的术语 “接近专家的最快方法第一步&#xff0c;直接了解100行业黑话” 那么来了解一下&#xff0c;编译过程中的黑话&#xff1a; 词法分析语法分析中间代码目标代码代码优化出错管理表格管理 gcc是个什么? 一种编译…

MySQL5.7 在Window平台安装

一、下载 在MySQL的官网下载安装包 MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/ 这里我选择的是x64的ZIP安装包&#xff1b;点击Download下载 这里我选择的是直接开始下载 二、解压与初始化 将下载好的安装包解压&#xff0c;这里我解…

Qt应用开发(基础篇)——向导对话框 QWizard

一、前言 QWizard类继承于QDialog&#xff0c;为有向导界面需求的应用环境提供了一个框架。 对话框窗口 QDialog QWizard向导对话框是一个拥有队列界面的特殊对话框&#xff0c;向导的目的是引导用户一步一步的完成预设的流程。向导常用于软件安装界面向导、硬件线路安装向导、…

安全运营中心(SOC)技术框架

2018年曾经画过一个安全运营体系框架&#xff0c;基本思路是在基础单点技术防护体系基础上&#xff0c;围绕着动态防御、深度分析、实时检测&#xff0c;建立安全运营大数据分析平台&#xff0c;可以算作是解决方案产品的思路。 依据这个体系框架&#xff0c;当时写了《基于主动…