win10之Subversion(SVN)基本操作

一、环境说明

1.操作系统:window10家庭中文版
2.Subversion安装包:Setup-Subversion-1.8.17.msi

二、安装Subversion

1.双击Setup-Subversion-1.8.17.msi安装即可
在这里插入图片描述

PS:安装位置不要有中文、空格等非法字符

2.设置环境变量
将Subversion根目录下的bin目录添加至系统环境变量(过程略)

3.查看svn版本

svn --version

在这里插入图片描述

三、Subversion基本操作

1.配置版本库

  • 这里小编将D:\MyUtil\Test\Subversion规定为根目录,下面放这许多版本库。这里创建两个版本库one、two
  • 实验所用到的路径可自定义,但不要有中文、空格等非法字符
  • 在cmd命令行操作

创建one版本库:

svnadmin create D:\MyUtil\Test\Subversion\one

创建two版本库:

svnadmin create D:\MyUtil\Test\Subversion\two

查看结果(以one为例,two同理)
在这里插入图片描述
文件说明:
在这里插入图片描述

2.启动服务器端程序

svnserve -d -r D:\MyUtil\Test\Subversion

命令解释:

  • svnserve:主命令
  • -d:表示后台进行
  • -r:表示版本库目录
  • D:\MyUtil\Test\Subversion svn仓库根目录

PS:运行命令后,不能关闭cmd窗口

3.检出

命令格式:svn checkout svn://SVN 服务器主机地址/具体仓库目录 保存检出内容的目录

svn checkout svn://localhost/one D:\MyUtil\Test\Subversion\three

在这里插入图片描述

PS:这里小编把保存检出内容的目录以绝对路径写出,如果上述命令只写three,是在cmd命令所在的目录下检出one仓库为three目录

4.提交

(1)开启匿名访问权限

  • 检出的仓库如果匿名提交,要先在源仓库(three的源仓库是one)里修改下配置文件,开放匿名访问权限
  • 打开仓库根目录/conf/svnserve.conf文件
  • 将第 19 行的# anon-access = read 改为 anon-access = write,也就是去掉“# ”。注意前面不要留空格,一定要顶格写。

(2)现在自己检出的three仓库内创建一个文本文件,随便写点东西
在这里插入图片描述

(3)执行 svn add 命令,将 test.txt 纳入版本控制

svn add test.txt

在这里插入图片描述

PS:

  • 执行命令前,命令行要进入到three目录(即工作副本)下
  • Windows10在cmd进入一个目录的快捷方式:打开那个目录,在上面地址栏输入“cmd”,回车即可

(4)执行提交命令

svn commit -m "My first commit" test.txt
  • commit:svn提交命令
  • -m:添加描述信息
  • test.txt:添加的文件

在这里插入图片描述

5.更新

(1)新检出一个three2目录

svn checkout svn://localhost/one D:\MyUtil\Test\Subversion\three2

(2)cmd进入到three2文件目录里,在three2仓库里修改test.txt文件,并且重新提交
在这里插入图片描述
重新提交

svn commit -m "My second commit" test.txt

在这里插入图片描述

(3)执行更新操作

 svn update

在这里插入图片描述
(4)cmd回到three目录,执行更新操作,可以获得最新版本
在这里插入图片描述

6.工作副本中文件的集中状态

①没有修改,现行版本
本档案在工作目录中没有被修改,而且自当前版本之后,其他终端也没有任何该
文件的修改被提交到服务器,即当前工作副本的版本和服务器端最新版本是一致
的。对它执行 svn commit 和 svn update 都不会发生任何事。

②本地修改, 现行版本
这个文件被修改过,但这个修改还没有提交到服务器,而且自当前版本之后,其
他终端也没有任何该文件的修改被提交到服务器,所以当前工作副本的版本和服
务器端最新版本仍然是一致的。由于有尚未送交回去的本地修改,所以对它的
svn commit 会成功提交你的修改,而 svn update 则不会作任何事。

③没有修改,过时版本
这个文件没有修改,但是版本库中有其他终端提交的修改。此时当前工作副本的
版本比服务器端的版本落后了,我们称之为“过时”。对当前文件的 svn commit 不
会发生任何事,而 svn update 会让工作目录中的文件更新至最新版本。

④本地修改,过时版本
服务器端存在没有更新到本地的修改,导致当前版本过时。如果这个文件在
本地有未提交的修改,则无法提交,对它执行 svn commit 会产生“out-of-date”
错误。
此时应该先尝试更新本地文件。更新时 SVN 会尝试将服务器端的更新与本地
文件进行合并,合并的结果有两种可能:一个是服务器端和本地修改位于文件的
不同位置,合并成功;另一个是服务器端的修改正好和本地修改位于同一个位置,
发生冲突。

7.恢复历史版本

将工作副本整体回复到某一个历史版本命令

svn update --revision 版本号

四、权限设置

1.单一版本库权限配置

1.1匿名访问,上述已提及,不再阐述

1.2授权访问

思想:创建用户,然后为用户设定权限

打开要设置权限的仓库的根目录\conf\svnserve.conf文件(要全新的svnserve.conf文件)

  • 将第 19 行# auth-access = write 注释打开,设置匿名用户操作为none
  • 将第 20 行# auth-access = write 注释打开:auth-access = write,表明该版本库不接受匿名访问
  • 将第 27 行注释打开:password-db = passwd,表明使用同目录下的 passwd 文件保存用户信息
  • 将第 34 行注释打开:authz-db = authz,表明使用同目录下的 authz 文件保存权限信息

在这里插入图片描述

1.3 打开 passwd 文件创建用户
在这里插入图片描述

userWrite01 = 123456
userWrite02 = 123456
userRead = 123456
userOther = 123456

在这里插入图片描述

表示新建4个用户,密码都是123456

1.4 打开 authz 文件,设置用户权限
在这里插入图片描述
在这文件可以设置用户组和用户组或者用户的目录权限
新增用户组:

canWrite = userWrite01,userWrite02

这表示创建用户组canWrite,组里有用户userWrite01、userWrite02

设置版本库路径权限:

[/]
@canWrite = rw
userRead = r
* =

表示版本库根路径下,canWrite用户组的用户有读写权限,userRead用户有读权限,其他用户没有任何权限

设置版本库下/subDir目录权限:

[/subDir]
userOther = rw
* =

表示当前版本库下的 subDir 目录只有 userOther 有读写权限,其它用户无任何权限

在这里插入图片描述

PS:父目录设置的权限,对子目录同样有效——除非子目录进行了更为具体的设定,如上面的[/subDir]目录权限比[/]目录更具体

2.多版本库共享配置

2.1 在版本库根目录 D:\MyUtil\Test\Subversion下创建 commConf 目录
在这里插入图片描述
2.2 将未修改的 authz 和 passwd 文件拷贝到 commConf 目录下
在这里插入图片描述
2.3 修改需要设置权限的版本库的 svnserve.conf 文件

  • 将第 20 行# auth-access = write 注释打开:auth-access = write,表明该版本库不接受匿名访问
  • 将第 27 行注释打开:password-db = passwd,这里使用绝对路径,表明使用commConf目录下的 passwd 文件保存用户信息
  • 将第 36 行注释打开:authz-db = authz,这里使用绝对路径,表明使用commConf目录下的 authz 文件保存权限信息

2.4 在password 中创建用户

userone = 123456
usertwo = 123456

在这里插入图片描述

2.5 在 authz 中针对不同版本库为不同用户授予权限

[one:/]
userone = rw
* =

[two:/]
usertwo = rw
* =

在这里插入图片描述

表示userone用户在one的版本库下有读写权限,其他用户没有权限,usertwo同理。

五、删除保存的认证数据(借助TortoiseSVN)

1.右键–》“TortoiseSVN”–》“设置”
2.进入“已保存数据”
在这里插入图片描述3.勾选要删除的数据即可
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

强强爱java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值