SVN的基本使用
1.SVN介绍
SVN是Subversion的简称,是一个自由开源的版本控制系统。
SVN是一种集中式管理代码的版本控制系统,原理就是把代码都保存到一个固定的位置(仓库),每次从这个位置
拷贝更新代码,进行编辑;再把修改后的代码提交到该目录中。多人协作开发也是如此。
SVN将文件存放在仓库里,这个仓库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录
的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节。
如果某一次提交至仓库的代码有问题,可以借助SVN将其恢复到上次提交的版本。
1.1 基本原理
![image-20210118101718904](https://i-blog.csdnimg.cn/blog_migrate/b961555a37ebe10d339a9fe14b28d7ab.png)
问题:怎样让User1、User2和Use3即多个用户之间共享系统的数据,而不让他们因为意外而互相干扰。
解决方案:对此SVN提出了两种模式进行解决。
-
复制-修改-合并模式(SVN默认的模式)
在这种模型里,每一个用户读取项目配置库建立一个私有工作副本——版本库中文件和目录的本地映射。用户并行工作,修改各自的工作副本,最终,各个私有的工作副本复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。 -
锁定-修改-解锁模式
在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。 此模式不适合软件开发这种工作。
2.SVN相关软件的安装与配置
svn原理就是把代码都保存到一个固定的位置(仓库),每次从这个位置拷贝更新代码,进行编辑;再把修改后的代码提交到该目录中。多人协作开发也是如此。因此需要一个类似Oracle或者Mysql的服务器用于保存和管理库文件(要保存的代码等文件)的服务端。
每一个用户进行工作时也需要从仓库下载或上传源码。因此客户端也需要用户操作的软件用于提交更新代码
-
服务器端软件安装与配置
这里以 VisualSVN为例。如果只是想简单的使用下SVN这里可以不看。
1.下载
下载地址:https://www.visualsvn.com/server/download/
根据操作系统的位数选择合适的版本下载2.安装及创建仓库
安装时主要的就是选择安装路径和仓库了,安装完后打开图形化界面 安装完成后就开始创建仓库。
(1)创建工程目录 这里会让你选择存储数据的方式,选择FSFS的就好。然后一步下一步就OK了。
(2)创建用户并分配权限
设置用户名和密码
分配用户权限。选中创建的仓库右键然后 Properties…
-
客户端软件安装与使用
这里以TortoiseSVN为例。TortoiseSVN是一个基于windows系统的svn客户端图形化界面.
(1)下载安装
下载地址:https://tortoisesvn.net/downloads.htm,这个安装一步下一步就OK了,
3.SVN的基本使用
3.1 浏览仓库
该操作是浏览SVN服务器上有什么文件。
前提是知道仓库的url,这里先copy下创建的测试仓库的地址。
按图所示进行操作后,输入用户名和密码 即可浏览仓库
除了这种方式还可以在浏览器中浏览,直接在浏览器地址栏输入url后,再输入密码就可以了。
3.2 checkout
该操作是将SVN服务器上的东西下载到用户本地。
按图所示在文件夹下使用,然后没有出现红色的字就代表成功了。并且该文件夹下会自动创建出一个 .svn隐藏文件。
3.3 add
该操作是将创建的源码文件保存到本地仓库。
我们在上述文件夹(小吴)下创建一个文件,随便写点东西。
先按图所示将该文件添加到本地仓库。
3.4 commit
该操作是将本地仓库上的文件提交到SVN服务器上。
按下图所示再将本地仓库的内容添加到SVN服务器上
添加成功后如图所示,版本变为了 1
3.5 update
将之前创建的HelloWorld.java文件修改后再次进行提交 commit
然后按图所示将该文件的日志展现出来
我这里将版本三回退到版本二
成功后可见版本回退到了版本二
3.6 delete
删除操作相对简单,但是要注意的是只是删除了本地的,svn服务器上还有。要想实现真正意义上的删除还需要 commit一次。