基于Linux的SVN搭建与配置基本操作

 

 

SVN

定义SVN仓库

管理SVN仓库

测试1:(机器1libin2.com

# yum install -y subversion     #装包

# svnadmin create /tmp/svn    #创建一个SVN仓库/tmp/svn定义就会创建

# tree /tmp/svn/ #查看svn的目录书

# groupadd -g 50000 svngroup   #创建一个5000id的组svngroup

# chgrp -R svngroup /tmp/svn/    #设置/tmp/svn/的所属组

# ls -ld /tmp/svn/db/

# chmod g+w /tmp/svn/db/           #设置组内用户可以写/tmp/svn/db/的权限

chmod o= /tmp/svn/db/                 #设置其他用户没有任何权限

# useradd hello #创建2个用户并设置密码

# useradd hello1

# echo redhat | passwd --stdin hello

# echo redhat | passwd --stdin hello1

# usermod -aG svngroup hello #追加2个用户到svngroup组中

# usermod -aG svngroup hello1

#检查用户是否在组中

# chmod -R g+w /tmp/svn/db/       #递归 /tmp/svn/db/下的文件组用户有写权限

# chmod -R o= /tmp/svn/db/          #递归 /tmp/svn/db/下的文件其他用户没有任何权限

# su - hello                                       #切换普通用户

# mkdir source                                #创建一个文件夹

# cd source/touch file1                   #创建一个文件

# echo rhca401>file1                          #写入东西到文件

# vim ~/.bash_profile                          #在个人用户添加svnvim变量

==>export SVN_EDITOR=vim

# source ~/.bash_profile cd                 #回到上级目录

# svn import source/ file:///tmp/svn/dnsfiles        #将文件导入到svn仓库dnsfiles 自行可以取名

 

 

[hello@libin2 ~]$ rm -rf source/        #本地将文件删除,如何将传到svn的数据再导入进来,这是本地下载

$ svn checkout file:///tmp/svn/dnsfiles #file:///tmp/svn/dnsfiles为本地的写法

 

 

 

下面实现切换客户端,也能进行下载

测试2:(机器2libin3.com

# yum install -y subversion

# useradd hello #创建2个用户并设置密码

# useradd hello1

# echo redhat1 | passwd --stdin hello

# echo redhat1 | passwd --stdin hello1

# su - hello #切换普通用户,将libin2.com的数据导入进来

[hello@libin3 ~]$ svn checkout svn+ssh://libin2.com/tmp/svn/dnsfiles             #svn+ssh为语法

[hello@libin3 ~]$ ssh-keygen                                                                         #由于每次都需要密码,在libin3.com中生成密钥

[hello@libin3 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub hello@libin2.com             #将公钥拷贝给libin2.com

[hello@libin3 ~]$ rm -rf dnsfiles/                                                                                     #将本地的文件删掉

[hello@libin3 ~]$ svn checkout svn+ssh://libin2.com/tmp/svn/dnsfiles       #这时取svn文件就不需要密码了

 

 

测试3:(机器1libin2.comlibin2的数据变动,libin3同步

[hello@libin2 ~]$ cd dnsfiles/

[hello@libin2 dnsfiles]$ vim file1                       #在改变一下数据,保存退出

 [hello@libin2 dnsfiles]$ svn commit                   #告知svn修改了文件

 

 

保存退出后,因为此时会和之前的文件进行匹配,所有版本信息就会变

[hello@libin3 ~]$ cat dnsfiles/file1                                                              #切换到libin3.com,发现文件还是旧的

 

[hello@libin3 ~]$ cd dnsfiles/                          #进入到libin2相同的目录下

[hello@libin3 dnsfiles]$ svn update                #更新文件版本

 

如果更新后不想要版本2了,要用版本1

[hello@libin3 ~]$ rm -rf dnsfiles/                                                                        #返回上级目录,先将dnsfiles/删除

[hello@libin3 ~]$ svn checkout -r 1 svn+ssh://libin2.com/tmp/svn/dnsfiles               #-r:选择哪个版本

 

可以看到已经回到了版本1

[hello@libin3 ~]$ cd dnsfiles/

[hello@libin3 dnsfiles]$ svn update                          #还是可以更新到最新版本

 

测试4:(机器2libin3.comlibin3.com改动数据进行上传

[hello@libin3 dnsfiles]$ echo 20220122rhca401 > ./newfile    # 当前路径文件newfile并写入点东西

[hello@libin3 dnsfiles]$ svn add  ./newfile             #上传文件

[hello@libin3 dnsfiles]$ vim ~/.bash_profile   #编辑环境变量

export EDITOR=vim

[hello@libin3 dnsfiles]$ source ~/.bash_profile   #source环境变量

 

此时,版本就会更新为3

切换到libin2.com机器,更新一下文件 #此时版本信息就更新了

[hello@libin2 dnsfiles]$ svn update 

测试4:删除文件进行上传

[hello@libin2 dnsfiles]$ svn delete ./newfile #删除一个文件

 

[hello@libin2 dnsfiles]$ svn commit #进行提交到svn

[hello@libin3 dnsfiles]$ svn update #切换到libin3.com进行更新了

 

测试4:重命名文件

[hello@libin3 dnsfiles]$ svn mv file1 libin

[hello@libin3 dnsfiles]$ svn commit #进行提交

 

此时版本又会更新

[hello@libin2 dnsfiles]$ svn update                  #切换到libin2.com更新版本信息

[hello@libin2 dnsfiles]$ svn update -r 3        #若想回到之前版本可以-r

 

 

 

 

 

测试4:测试5,改动文件提交svn commit 不需要进入vim进行日志说明

[hello@libin2 dnsfiles]$ svn mv libin  libin-rhca       #libin进行改名

[hello@libin2 dnsfiles]$ svn commit -m "mv a file"    #-m:指定说明

[hello@libin2 dnsfiles]$ svn log #可以查看svn所有操作日志

 

 

总结:知识点

svn import

svn commit

svn update

svn add

svn del

svn mv

 

posted @ 2022-07-09 10:50  LB_运维技术  阅读(186)  评论(0编辑  收藏  举报