SVN学习笔记

看过最详细的视频,一天就学会SVN视频教程(程序员入职必备技能,零基础快速入门)

1 SVN的作用

全称subversion,用于工程设计中的版本管理,可以记录所有历史版本及其改动,方便回滚以及对比不同版本差异;同时方便多人更新同一个工程时的冲突管理。每次提交都会生成一个新版本号,一个文件的修改会使整个库 repository的版本号更新,但未更改的文件版本号不更新。每次提交时最好填写一下log。

2 安装配置

分为服务器和客户端两种,所有版本文件存放在服务器上,服务器可搭建在某台电脑上统一管理工程。服务器创建库,并管理哪些用户有哪些访问权限、设置分组。客户端俗称"小乌龟"。

3 SVN使用

checkout:

把SVN库中的工程第一次拉到本地映射的空间中(本地原本没有该工程),两者建立映射关系。

import:

把本地工程第一次上传到SVN对应位置,无需先放到本地映射空间中再add+submit(此时的import等效于add+commit)。导入后本地文件和SVN版本库没有关联,若要后续版本控制操作,还需要重新checkout获取工作副本到映射目录中。

commit:

提交本地映射空间中已有并修改过的文件。若要添加一个新文件时,先add再commit。每次commit前先update更新。

update:

把SVN上的文件同步到本地。将当前工作目录(右击调用update目录)及所有子目录下的文件,更新到版本库的最新版本(HEAD版本)。

本地映射文件夹中的一个文件已经修改,但是未submit,此时执行update不会被替换为SVN上的旧文件,具体规则如下:

  • 若你本地修改的文件,服务器端该文件未被其他人修改过,执行svn update后,本地的修改内容会保留,不会被服务器的文件覆盖。
  • 若服务器端该文件已经被其他人修改过,执行svn update时会提示冲突,SVN会将服务器最新版文件、你本地修改的文件、发生分歧前的版本文件都保存到本地,你需要手动解决冲突后,再执行svn resolved命令标记冲突已解决,之后才能继续提交代码。

Update to revision:

更新文件到某一个不是最新的版本上,HEAD为最新,可以用show log查看并选择版本。

add:

本地映射目录中新增的文件/文件夹,需要先add进入待提交状态,再commit到SVN上。用undo add撤销。import不能替代add直接把本地文件导入SVN对应目录下,二者在功能定位、使用场景上有明确区别:

  • import‌:是将本地文件直接导入到SVN版本库中,导入后本地文件和SVN版本库没有关联,相当于一次性把文件"搬家"到版本库,之后如果要对这些文件进行版本控制操作,还需要重新checkout获取工作副本。
  • add‌:是将本地已有的文件或目录纳入SVN的版本控制管理,文件会进入待提交状态,之后通过commit操作就能将文件同步到SVN服务器,本地文件会和SVN版本库建立关联,后续的修改、更新等操作都能在本地工作副本中完成。

conflict:

当本地文件和SVN服务器上的文件同时被修改,且修改内容不兼容时,若执行commit就会产生冲突报错。此时需要手动解决冲突,对冲突内容进行确认选择生成新文件,标记resolved再次commit才会成功。

merge:

合并冲突的两个文件,在解决冲突时会自动弹出merge界面,呈现两个文件的不同处,以及合并修改后的编辑界面。

resolved:

手动解决冲突后,标记已解决才能成功commit。冲突后映射文件夹中会出现多个版本的文件,resolved后自动删除。

revert:

把本地映射空间已修改未提交的文件退回到SVN中的版本。

copy URL to clipboard

复制粘贴方便路径填写。

diff ...

比较指定两个文件,或者比较当前文件与其上一版本的区别。

4 IDEA中集成SVN

安装客户端时安装相关插件,可以在编辑器界面上浏览并操作SVN,不必每次都进入映射文件夹下操作。不同代码编辑软件需要确认是否支持SVN。

在UEStudio的设置-集成式应用-version control systems-Subversion下可以设置关联SVN。

5 其它

  • 图形界面的标记:!感叹号表示修改;+执行add;√与服务器版本同;
  • repo-browser:查看SVN目录的浏览器,不必把SVN上所有文件都checkout到本地。用浏览器查到想要的文件夹再checkout到本地映射空间。
  • 把多个文件压缩进一个压缩包提交SVN后,是以单个文件的形式管理压缩文件。
  • "fully recursive"指检出操作时的一种深度选项,表示递归地检出完整的目录树,包括所有文件、子目录及其内容。
  • 若一个工程只在SVN上有,想修改某个文件,要先把该文件checkout到本地映射目录,修改完成后再commit。
相关推荐
HuDie3401 小时前
黑马多模态AIGC课程笔记
笔记·aigc
毕设源码_廖学姐2 小时前
计算机毕业设计springboot古诗词学习App 基于SpringBoot的中华经典诗文数字化研习平台 SpringBoot框架下的传统诗词文化移动学习系统
spring boot·学习·课程设计
小陈phd2 小时前
多模态大模型学习笔记(十三)——transformer学习之位置编码
人工智能·笔记·transformer
探序基因2 小时前
使用TRUST4分析普通转录组数据的TCR/BCR
经验分享·笔记·学习方法
雾岛听蓝2 小时前
C文件操作与系统IO
linux·c语言·开发语言·经验分享·笔记·算法
跃龙客2 小时前
Visual Studio项目文件配置三方库笔记
ide·笔记·visual studio
盐焗西兰花3 小时前
鸿蒙学习实战之路-Share Kit系列(7/17)-自定义分享面板操作区
linux·学习·harmonyos
香水5只用六神3 小时前
【RTOS快速入门】07_同步互斥与通信概述
单片机·嵌入式硬件·学习·操作系统·freertos·rtos·嵌入式软件
OopspoO3 小时前
我的博客同步
笔记