SVN 服务端与客户端 安装汉化使用教程
SVN简介:
为什么要使用SVN?
程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本。
Subversion是什么?
它是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作。
下载地址: 服务端 https://www.visualsvn.com/server/download/
客户端 https://www.visualsvn.com/visualsvn/download/tortoisesvn/
一:SVN服务器搭建和使用。
1.首先来下载SVN服务器安装包,进入网址后看到如下截图:
2.VisualSVN server 服务端安装
Location是指VisualSVN Server的安装目录,Repositorys是指定你的版本库目录.Server Port指定一个端口,Use secure connection勾山表示使用安全连接
注意:安装路径不能出现中文,空格,中文字符
安装完成,运行服务端
3.VisualSVN server 服务端使用
-- 创建仓库
--至此服务器搭建完成,但是还没有用户,需要创建用户,并且需要分配权限。
(1)在VisualSVN Server Manager窗口的左侧右键单击用户组,选择Create User或者新建->User,如图:
点击User后,进入如下图:
填写Username和password后,点击ok按钮后,进入如下图:
点击OK新建用户成功(如果有多个用户,操作一样)。
(2) 然后我们建立用户组,在VisualSVN Server Manager窗口的左侧右键单击用户组,选择Create Group或者新建->Group,如图:
输入组名,add用户user
点击OK
接下来我们需要给用户组设置权限,在MyRepository上单击右键,选择属性,如图:
在弹出的对话框中,选择Security选项卡, 点击add =》 Groups =》Developers,选中Developers,然后添加进来,权限设置为Read/Write,如下图:
点击【应用】【确定】按钮即可。
(3) 拷贝访问路径
--用户访问
二:客户端SVN安装与使用。
1.首先我们需要下载 ”svn小乌龟”。
2.下载后双击开始傻瓜式安装
--如果在桌面空白处右击出现以下情况说明安装成功
使这些操作生效需要重启电脑
三:客户端SVN汉化。
到官网下载对应版本的汉化包:汉化包下载地址
版本号查看:在电脑桌面右键点击 TortoiseSVN ---》关于 ,查看SVN版本号
步骤一:找到如下图中内容,即中文语言安装包。这里我们选择的是对应的64位操作系统 。
步骤二:运行点击安装刚刚下载好的中文语言包。一直点击下一步即可。
步骤三:鼠标右键,打开svn中setting设置项,可以发现有个语言选项。这里我们就可以选择中文,点击应用。
步骤四:当我们再打开svn中的设置项就可以发现,svn界面呈现中文描述了。
四:客户端SVN使用详解。
1.Checkout检出代码
使用场景:一般第一次当你从SVN服务器上下载内容时需要这么操作
操作步骤:
1、新建或进入目录下(比如E盘)
2、右键 → SVN Checkout,之后填写如下信息:
a、在URL of repository 填写仓库路径即可
b、在Revision处,“HEAD revision”是指最新版,也可以指定Revision为任意一个版本
2.Update更新代码
使用场景:此操作一般是在SVN服务器上的文件有了更新变动之后,你想要获取最新的时候进行
操作步骤:
1、选中要被更新的文件,右键选择“SVN Update”项
2、点击“SVN Update”后会弹出窗口进行更新,稍等片刻之后就好了
3.Commit提交代码
使用场景:此操作一般是在对从SVN服务器上下载下来的文件,你修改之后想再次提交到SVN服务器(如果是新增的不能用这个操作,得使用“Add”)
在提交代码前我们应该update
下代码,这是个好习惯,可以避免覆盖别人的代码和代码冲突。
操作步骤:
1、务必在提交更新之前线执行SVN update
2、在修改文件上击右键,出现菜单,选择“SVN Commit...”
3、然后填写关于本次更新的日志(log message),这是必填项,否则commit会失败
4.Add新增
使用场景:如果你是新增了文件要提交到SVN服务器就进行此操作
操作步骤:
1、新增的文件必须位于SVN Checkout出来的那个目录里
2、鼠标选中新文件右键选择“Tortoise SVN”的“Add”项
3、再次选中新增的那个文件,右键选择“SVN Commit...”
5.Delete删除
使用场景:删除
操作步骤:
1、选中要被删除的文件,右键选择“Tortoise SVN”的“Delete”项
2、再次选中要删除的文件,右键选择“SVN Commit...”项进行提交
6.Rename重命名
使用场景:重命名
操作步骤:
1、选中需要重命名的文件或文件夹,然后右键“Tortoise SVN”的“Rename”
2、再次选中要修改名字的文件,右键选择“SVN Commit...”项进行提交
7. add ignore忽略文件
使用场景:有时候某些目录或者文件我们不想提交到 SVN 服务器,这时我们可以忽略这些文件。
操作步骤:下面演示忽略 temp 目录和 *.map 文件
忽略成功
8.remove ignore撤销忽略
使用场景:撤销忽略
文件的操作方式步骤是一样的,目录的有点不一样,请看下面演示
五:SVN仓库目录和开发建议
建议每个仓库的根目录都创建trunk、branches、tags目录,这是经典的 SVN 目录结构,方便开发和维护
1.创建分支
以上面的目录结构为例子,我们从当前主干创建一个分支出去,表示1.0版本,操作步骤如下:
- 右键 trunk 目录 => 右键TortoiseSVN => Branch/tag
- 填写分支路径
/branches/online1.0
,填写注释,选择最用最新的版本开分支,如下:
2.合并代码
假设我们在分支上修复了一个线上的BUG,需要把代码那个代码合并到主干来,操作步骤:
- 在分支的跟目录点击
show log
- 选中需要合并过去主干的提交记录(可以多选)
- 点击
merge revision to ...
- 选择主干的跟目录,点击确定,就合并过去了。
- 在主干上提交这次合并的内容
SVN 的这个指定提交记录合并功能非常的方便,我们日常中经常会遇到线上出问题需要修复,修复后把代码合并到主干的情况。
注意:你在分支上的什么目录点击合并,那就需要定位到主干的对应目录合并,不然会出错。
3.切换分支
右键TortoiseSVN => Switch => 选择需要切换的分支,点击确定就可以了
4.修改仓库地址
右键点击仓库根目录 => TortoiseSVN => relocate,修改仓库地址,点击确定后就修改好了
5.版本回退
使用场景:退回到某个版本
选择更新至哪一版:可以根据版本号更新 也可以根据更新日志更新
选择根据日志更新,出现如下页面,单击需要回退那一版,确定即可
5.版本冲突
使用场景:实际项目中,两个人同时修改某一个文件,后一个人就会对前一个人文件有覆盖/删除等冲突操作
模拟演示:
- 早上9:00上班,旺财和小强都更新数据到本地电脑
- 旺财开始修改login.java文件.并在9:30时提交了该文件
- 小强也对login.java文件作出修改,并在10:00提交该文件
提交失败,版本冲突:
解决版本冲突:
1.合理分配项目开发时间
2.合理分配项目模块
3.使用svn提供方法解决冲突:
1)更新服务端数据到本地,出现版本冲突后发现本地文件夹中文件多出几个
- login.java 旺财和小强整合后的文件
- login.java.mine 我们自己(小强)修改后的文件
- login.java.r5 这个文件在旺财和小强更新前的状态 (起始状态文件)
- login.java.r6 之前提交的(旺财修改后提交的)文件
2)删除除login.java 文件之外的所有文件
3)自行修改整合的login.java文件
4)重新提交,(提交成功)
六:SVN的状态图标的含义
1、“常规”:绿色圈带白色对勾,主要是表示自己电脑上的文件或者文件夹与SVN服务器上对应的文件一致,在自己电脑没有进行任何修改。
2、“修改”:红色圈带白色感叹号,当你开始编辑一个文件,这个文件的状态就会变成修改状态,图标也会变成红色圆圈带白色感叹号。通过这种状态的变化,你就可以知道自己修改过哪些文件,需要提交哪些文件。
3、“冲突”:黄色三角形带黑色感叹号,是指出现了冲突,一般在同时编辑一个文件时容易出现这种冲突的现象。
4、“只读”:灰色圈带白色对勾,这是设置只读属性后才会出现的标识,直到你获得文件锁才能取消只读。只读文件用这个重载图标来表示你必须在编辑之前先得到一个锁。
5、“已删除”:红色叉,表示相应文件或文件夹被计划删除,或者表示文件缺失。
6、“增加”:蓝色加号,表示文件或文件夹已经被计划加入到版本控制之下。通常是新建的文件或文件夹会有这个标识。
7、“忽略”:灰色圈带白色横线,表示已经不受版本控制了。
8、“无版本控制”:蓝色圈带白色问号,表示暂时还没有版本的控制,但没有被忽略。
9、“锁定”:一把黄色的锁,表示文件被锁定,必须先释放锁才能让别人的修改提交。
更新编辑中.....
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结