svn版本管理软件——初始化配置 小咪咪 2022-06-09 08:51 357阅读 0赞 # 文件版本说明 # <table> <thead> <tr> <th>版本</th> <th>颁布日期</th> <th>修订章节</th> <th>作者</th> </tr> </thead> <tbody> <tr> <td>0.1.1</td> <td>2016.12.18</td> <td>添加svn版本库的创建</td> <td>钟鑫</td> </tr> <tr> <td>0.1.2</td> <td>2016.12.15</td> <td>svn服务器搭建</td> <td>钟鑫</td> </tr> <tr> <td>0.2.1</td> <td>2016.12.31</td> <td>svn windows端添加日常管理代码</td> <td>钟鑫</td> </tr> <tr> <td>0.3.0</td> <td>2017.01.02</td> <td>添加svn windows端打补丁</td> <td>钟鑫</td> </tr> <tr> <td>0.3.1</td> <td>2017.01.08</td> <td>补充svn windows端日常管理代码内容</td> <td>钟鑫</td> </tr> <tr> <td>0.4.0</td> <td>2017.01.15</td> <td>添加svn windows端分支管理</td> <td>钟鑫</td> </tr> <tr> <td>0.4.1</td> <td>2017.01.16</td> <td>补充svn windows端初始化配置</td> <td>钟鑫</td> </tr> <tr> <td>0.4.2</td> <td>2017.01.21</td> <td>补充完成svn windows端内容</td> <td>钟鑫</td> </tr> <tr> <td>0.5.0</td> <td>2017.01.21</td> <td>svn搭建Linux端服务器</td> <td>钟鑫</td> </tr> <tr> <td>0.5.1</td> <td>2017.01.25</td> <td>补充搭建Linux的svn服务器</td> <td>钟鑫</td> </tr> <tr> <td>0.6.0</td> <td>2017.08.22</td> <td>补充svn版本库迁移</td> <td>钟鑫</td> </tr> </tbody> </table> # 版本管理系统 # 版本管理系统是代码开发的必要工具,是管理整个代码工程的一个很好的辅助,有了版本管理系统,开发线路就会轻松很多,特别是代码多了以后,几十万的代码量可以通过版本管理轻松修改差异。 ## 集中式版本控制系统 代表:svn ## 集中式版本管理系统是将代码统一管理到一个服务器上,用户需要远程登录这台服务器去修改代码。集中式管理的好处是方便、统一的管理代码的开发进度,但缺点是要依赖互联网或局域网,如果成员中有一个登录不上,那么该成员就无法登录到服务器上去修改代码,或者中央的代码管理服务器出了问题,则整个项目的成员就无法修改代码。集中式的查看修改,创建分支,提交修改等操作都要处处链接服务器。 ## SVN版本管理简介 ## 此次使用svn工具在Windows的环境下有很好的支持,安装软件有中文包。同时svn也有在Linux下的命令行版本,此次介绍的svn分为Windows下的鼠标操作模式和Linux下的命令行模式,svn的另外优势就是可以对用户进行授权控制,哪些代码可以下载修改上传,哪些代码只可以读取,哪些代码不能读也不能下载,同样git也可以做到,但git为分布式管理版本系统,并且本身就提倡开源共享,限制用户不是主流,相反每个人都是代码的master。 Windows安装同样到官网下载,官网有中文补丁,甚至还有中文版的基本使用指南《TortoiseSVN-1.9.4-zh_CN.pdf》 svn有两个版本 Subversion:服务器端软件,不是必要的软件,个人开发可以完全不用下载。 TortoiseSVN:客户端软件,本次个人版本库搭建介绍以这个版本为准。 Ubuntu安装svn工具输入以下命令即可 命令:sudo apt install subversion Windows下安装完svn之后会将svn的命令添加到鼠标右键菜单中,如下图所示 ![svn菜单][svn] 该菜单在有svn管理的版本库与未加入svn的版本库(其他地方右键菜单)有所不同。 本次介绍以个人构建svn版本为主,不涉及多用户管理。 ### svn工作概念 ### svn是集中式版本管理与git不同,svn所涉及的每一步操作都需要与服务器关联,不能像git那样做到完全离线管理,并且svn没有暂存区的概念,修改完代码之后提交就直接提交到远程版本库上,没有本地仓库。如果电脑未联网,未连接到版本库服务器上,svn代码的日常管理就无法正常展开,包括对比差异,提交代码,切换分支,这是集中式版本管理的特点,代码管理统一由服务器管理。 ### 工作区 ### 即日常修改代码的地方,工作区中可以修改代码,提交代码和还原代码。这些操作都要连接版本库。在工作区,Windows下的svn重新定义了文件图标,方便直观地看到代码修改的变化。 在Windows下的svn工具可以看到该变化,如下图所示 ![工作区][SouthEast] ### 版本库 ### svn集中式版本管理的核心就是版本库,用户单独使用的话可以只安装svn的客户端版本TortoiseSVN也可以创建版本库以及管理个人代码,版本库的右键菜单与工作区的代码也有所不同。代码围绕着版本库而建立,一旦版本库受影响(损坏,网络故障等)整个代码开发过程都会受到影响。 git的使用可以不依赖版本库,但svn建立项目一定要有版本库。 版本库的检出与导出不同,检出的代码受svn版本管理,可以看到历史修改记录,还可以提交代码,但导出仅仅是将版本库里面的文件导出来而已。 # svn初始化配置 # 在检出了svn代码库后,需要对svn进行一些简单的配置。 ## 过滤掉一些不必要的文件 ## svn在默认的全局设置中有过滤掉的文件后缀名如下图所示。 ![设置菜单][SouthEast 1] ![svn忽略属性][svn 1] svn默认忽略的文件为: *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo __pycache__ *.rej *~ #*# .#* .*.swp .DS_Store [Tt]humbs.db 如果要过滤的文件或文件夹没有包含在内,可以手动添加,格式和git一样,在svn功能菜单中选择属性,在属性选项框中选新建——其他。如下图所示。 ![菜单][SouthEast 2] ![忽略类型][SouthEast 3] 也可以选择需要忽略的文件或文件夹,在svn功能菜单中选择添加到忽略列表,如下图所示,后面两个选项是添加到全局,第一个选项是仅仅忽略当前选中的文件。 ![过滤][SouthEast 4] 配置好后提交svn的属性修改即可,如下图所示 ![上传][SouthEast 5] ## 日志提交模板 ## 创建一个日志提交的模板,方便以后统一管理和追溯问题。 在svn功能菜单中选择属性,在属性选项框中选新建——其他。如下图所示。 ![日志模板][SouthEast 6] 在属性一栏中选择tsvn:logtemplate,在取值一栏中写入提交日志模板,选择递归应用该属性,单击确定。 选择好后将库的改变提交到库上,同时模板会起作用,如下图所示。 ![上传日志模板][SouthEast 7] [svn]: /images/20220609/c82e469d5b3a47e5a0d0177fc41fbfb7.png [SouthEast]: /images/20220609/758acafbdf614eafa9d8f607737efd17.png [SouthEast 1]: /images/20220609/113b26eef22345a2be8afef100039f2d.png [svn 1]: /images/20220609/fccc03f871024d528717283f37353329.png [SouthEast 2]: /images/20220609/38a719c09fc5447db1bb947273d255e6.png [SouthEast 3]: /images/20220609/da37df5357dc45eab9d778aa3fa4071a.png [SouthEast 4]: /images/20220609/9f735c01ca9a4cb890f3a3b534ab9a1c.png [SouthEast 5]: /images/20220609/55b63afa055742d4adc8566f855bcaf5.png [SouthEast 6]: /images/20220609/23c7311ffbab47ddaad50799174e1048.png [SouthEast 7]: /images/20220609/d52a21a5af7549e0bfdea87539b528e1.png
还没有评论,来说两句吧...