【SVN】01 概述

什么是SVN?

全称 Apache Subversion,是一个开源的版本控制系统

就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库(repository) 中。

这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。

这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。

 

一些概念:

repository(源代码库):

  源代码统一存放的地方

Checkout(提取):

  当你手上没有源代码的时候,你需要从repository checkout一份

Commit(提交):

  当你已经修改了代码,你就需要Commit到repository

Update (更新):

  当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,

  你手上的代码就会有最新的变更,日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):

  Update(获得最新的代码) -->作出自己的修改并调试成功 --> Commit(大家就可以看到你的修改了) 。

  如果两个程序员同时修改了同一个文件呢, SVN 可以合并这两个程序员的改动,

  实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。

  如果是同一行,SVN 会提示文件 Conflict, 冲突,需要手动确认。

 

安装:SVN in CentOS

先检查是否存在SVN,有可能已经安装了

svn --version

也可能没有,像我这样

 

使用yum直接安装

yum install svn -y

再次输入

 

创建版本仓库

svnadmin create 必须存在的路径

- svn要求必须要有此目录存在才可以执行创建

 

初始化之后产生的一些文件

 

创建一个SVN仓库的目录

mkdir /svn-repo

把目录初始化成为SVN仓库:

svnadmin create /svn-repo

仓库是允许创建多个的,可以又各种各样的项目SVN目录

 

启动SVN仓库服务:

svnserve -d -r /svn-repo

发现并没有像视频中的那样是占用终端命令的,SVN默认端口3690

那么如果不放心,我们可以查看端口占用状态来检查SVN是否真的再运行:

可以看到端口是监听状态的

 

检出目录:

svn checkout svn://localhost/

这个概念好绕口啊,就是在你当前所在的工作目录下执行的这个命令

SVN仓库创建一个副本在这个当前目录中

然后这个目录下面会生成一个.svn目录,类似.git目录,存储了关于和SVN交互的信息文件

注意,如果是多个SVN库的话,命令的URL参数需要指明你是属于哪一个目录的仓库

例如上面的: svn checkout svn://localhost/svn-repo 

我们对副本目录提交的文件就会被上传到的SVN仓库中

 

创建一个文件并编写内容:

touch file.txt
vim file.txt
- - - - - - - - - - - - - -
hello svn!!!
- - - - - - - - - - - - - -

然后添加到版本控制

svn add *

添加指定文件是使用: svn add file.txt 

提交到SVN仓库:

svn commit -m "first svn commit"

结果发现认证失败

需要开启匿名权限访问?

编辑SVN仓库的配置信息:

vim /svn-repo/conf/svnserve.conf

把下面这些配置项全部开启:

authz-db = authz
password-db = passwd
anon-access = read
auth-access = write
realm = /svn-repo

在系统之家找到的解释:

https://www.jb51.net/article/175835.htm
  • authz 是权限控制文件
  • passwd 是帐号密码文件
  • svnserve.conf 是SVN服务配置文件

我们都还没有配置账号与密码

vim /svn-repo/conf/passwd

配置SVN用户的读写权限:

vim /svn-repo/conf/authz

 

然后再次提交,SVN会建议你的密码加密

选择否,不加密才提交完成:

 

posted @ 2020-09-21 00:37  emdzz  阅读(98)  评论(0)    收藏  举报