zoukankan      html  css  js  c++  java
  • SVN的学习

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于CVS,它采用了分支管理系统,它的设计目标就是取代CVS

    为什么需要SVN

    通常软件开发由多人协作开发,如果对代码文件、配置文件、文档等没有进行版本控制,将会出现很多问题:

    • 备份多个版本,占用磁盘空间大
    • 解决代码冲突困难
    • 容易引发BUG
    • 难于追溯问题代码的修改人和修改时间
    • 难于恢复至以前正确版本
    • 无法进行权限控制
    • 项目版本发布困难

    所以我们需要使用版本控制工具,SVN的作用正是在于多人协作,版本回退等等问题上。SVN的使用较为简单,而且可以跨平台使用,属于C/S结构的软件,需要客户端和服务器端,一般来说应该是一台服务器或电脑作为服务器端,我们在服务器端中建立仓库,但是为了学习方便我们在本机即模仿客户端又模仿服务器端。

    客户端下载地址:https://tortoisesvn.net/downloads.html

    服务器端下载地址:https://www.visualsvn.com/downloads/

    服务器端安装

    基本上和安装一般软件一样,一路next即可,但是需要注意以下几点:

    这个端口号默认使用443,也可以使用8443这个备用端口号

    如果两个端口都有冲突,我们可以找到端口是哪个程序,把程序进程停止

    在CMD中使用命令:

    找到占用端口的程序的PID : 

    我们在任务管理器,找到pid值,停止掉就行了

    我们的Tomcat也可以使用该方法解决8080占用的问题

    如何知道服务器端安装好了?

    如果安装好了,我们可以在系统 —> 服务中可以找到SVN  或者是在CMD中使用命令:

    svnadmin --version

    就会显示svn服务器的版本

    客户端的安装

    客户端的安装没什么值得说明的,一路next,需要说明的是该客户端有中文语言包哦,就在其下载页就可以找到。语言包的安装也是一路next,它会自动找到客户端的安装位置,不需要我们来指点,很简单,然后我们在客户单中setting选择中文即可:

    如何知道客户端安装好了?

    只要鼠标右键出现:

    使用命令操作SVN

    1. 首先我们需要建立仓库,在CMD中使用命令:

    svnadmin create 仓库位置

    如: svnadmin create D:webApp

    2. 还需要将SVN服务器关联到这个仓库,命令:

    svnserve -d -r 仓库地址

    -d 表示svn服务在后台运行, -r指明仓库地址,注意这是黑窗口的光标会移到下一行并不停的闪烁,就表示成功的开启SVN服务,我们不要关闭这个黑窗口哦

    注意:命令是svnserve

    接下来我们就可以开始同步仓库中的东西了,现在相当于同步空仓库中的东西,在另一个文件夹中,在使用同步工作吧

    同步仓库

    1. 默认SVN是不允许匿名用户访问仓库的,所以我们需要将这个仓库的conf/svnserve.conf 文件的第19行修改为write,一点要是19行

    2. 第一次同步需要先检出(checkout)

    在文件夹中右键检出,会出现需要我们输入仓库地址的地方:

    因为我们之前已经将仓库与SVN客户端关联,所以我们要使用: svn://localhost 这个地址即可,如果不再同一台机器上,把localhost改为ip地址

    检出成功之后,可以在这个文件夹中看到一个隐藏的.svn文件夹

    因为是一个空仓库,所以没有什么文件存在,我们可以新建一个文件,右键SVN提交

    提交的时候,需要我们填写一些提交信息和选中要提交的文件,其实提交信息写不写都可以,但是强烈推荐写上提交信息,因为正是这些信息帮助我们选择回退的版本。

    3. 其他同步该仓库的用户就需要SVN更新,更新之后就可以得到这个新建的文件

    注:SVN提交(commit) SVN更新(update)都是在文件夹的空白位置鼠标右键可以看到的

    SVN中的图标

    我们在使用SVN管理代码的时候,文件会出现一些图标,来认识一下常见的图标吧

    需要说明的是,但当发生代码冲突的时候,叹号图标并不会立即出现,存在延迟,所以我们还是以错误信息为准吧

    忽略某个文件或是某类文件

    我们在需要忽略的文件上右键,可以选择忽略,或者或略该文件类型的文件,或者对于文件夹可以递归的忽略

    回退版本

    回退版本的依据就是我们之前提交的提交信息,根据这些日志信息,我们可以准确的知道需要回退到哪个版本,所以还是建议每次提交都写上提交信息

    使用图形界面创建仓库和用户

    终于要使用图形界面了,我们安装的SVN服务器端支持图形界面的:

    创建仓库和用户都是很简单的,重点在于为用户分配权限:

    可以给不同用户分配读写权限

    我们还可以在浏览器中浏览我们仓库信息

    在Eclipse中配置SVN插件

    在Eclipse的安装目录中dropins下新建一个SVN文件夹,在里面放入SVN插件的文件,重启Eclipse即可

    检验是否安装成功

    出现SVN的视图就表示安装成功了

    发布项目到svn(add到svn)

    第一步 右键点击项目 team—share project

    第二步 选择使用版本控制工具

    第三步 创建仓库位置

    输入仓库路径

    第四步 点击finish进行把项目add到svn上

    (1)输入用户名和密码,可以把勾上,以后就不用每次都输入了

    (2)在项目上有图标变化,右键点击项目,点击team-提交

    点击ok

    图标变成圆柱的图标,表示发布完成

    从svn服务器下载项目(checkout)

    第一步 打开svn资源库,没打开的话,就在view中找到打开

    (1)添加svn资源库

    (2)输入仓库路径

    第二步 右键点击要下载项目,点击 检出为

    点击finish完成

    处理版本冲突

    冲突的表现为我们后修改的代码提交不上:

    版本冲突的问题难以避免,我们可以在选择统一的时间来提交,专门的人员来处理代码冲突。

    但是我们遇见了应该怎么办呢?

    1. 先备份我们写的代码

    2. 同步更新代码,也就是SVNupdate操作

    3.  将多余的.mine .r6 .r7(这两的文件不一定是这两个文件后缀) 删除,留下代码冲突文件再修改,之后再提交即可

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 一元三次方程
    Java实现 蓝桥杯VIP 算法训练 乘法表
    Java实现 蓝桥杯VIP 算法训练 矩阵加法
    Java实现 蓝桥杯VIP 算法训练 一元三次方程
    Java实现 蓝桥杯VIP 算法训练 平方计算
    Java实现 蓝桥杯VIP 算法训练 平方计算
    Java实现 蓝桥杯VIP 算法训练 平方计算
    Java实现 蓝桥杯VIP 算法训练 乘法表
    Java实现 蓝桥杯VIP 算法训练 乘法表
    监管只是压倒网盘业务的一根稻草,但不是主要原因(答案只有一个:成本!)
  • 原文地址:https://www.cnblogs.com/lz2017/p/7594068.html
Copyright © 2011-2022 走看看