阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7.1 下SVN安装与配置

94次阅读
没有评论

共计 6218 个字符,预计需要花费 16 分钟才能阅读完成。

本次实践使用的服务器 CentOS / 7.1 x86_64 (64bit)
svnserve, version 1.7.14

安装 svn

yum install subversion
查看版本
svnserve –version

返回结果

[root@chinamobile2016 ~]# svnserve –version
svnserve, version 1.7.14
(r1542130) compiled Nov 20 2015, 19:25:09

Copyright (C) 2013 The Apache Software Foundation. This software
consists of contributions made by many people; see the NOTICE file for
more information. Subversion is open source software, see
http://subversion.apache.org/

The following repository back-end (FS) modules are available:

  • fs_base : Module for working with a Berkeley DB repository.
  • fs_fs : Module for working with a plain file (FSFS) repository.

Cyrus SASL authentication is available.

创建 SVN 版本库

cd /storage
mkdir svn
cd svn
mkdir project
svnadmin create /storage/svn/project/
ls project/
发现已经有生成的版本库文件

配置 svn 信息

conf/authz

cd conf
vi authz
在 [groups] 下添加用户组
admin=admin(用户组名 = 用户名)
在 [repository:/baz/fuz] 下添加用户组权限
[project:/]
@admin=rw

conf/passwd

在 [users] 下添加
admin=test(用户名 = 密码)

conf/svnserve.conf

取消以下项目的注释
anon-access=none
auth-access=write
password-db=passwd
authz-db=authz
realm=project

修改 /root/.subversion/server

取消 store-plaintext-passwords=yes 的注释并修改

确认安装 openssl 与 openssl-devel

yum install openssl openssl-devel

启用,连接与关闭

启用

svnserve -d -r /storage/svn/

在 project 这个 repo 里导入文件

svn import xxxx svn://xxx.xxx.xxx.xxx/project/ -m“admin”
填入 root 密码
填入刚才创建的 repo 的账户密码
成功

关闭

ps -aux|grep svn
kill pid

一些常用操作

注意:大部分操作需要在 svn 版本控制的文件夹下进行

checkout(别名:co)命令

命令说明:剪出版本库中的可用的工作目录;
使用方法:checkout URL[@REV]… [PATH];
使用实例:[root@samba /]# svn co svn://192.168.31.131/svntest/trunk
这个过程是把代码从服务器中下载下来,保持版本一致。

add 命令

命令说明:Put files and directories under version control, scheduling them for addition to repository. They will be added in next commit.
使用方法:add PATH…;
使用实例:[root@xxx]# svn add *.Java(可以使用通配符)

这个过程是把新建的文件和文件夹添加进版本控制,在下一次 commit 时,会导入到版本库里进行同步。

commit(别名:ci)命令

命令说明:将你的变更从你的 SVN 工作目录提交到版本库;
使用方法:commit PATH…;
使用实例:[root@xxx]# svn ci -m“commit dir and file”test(可以使用通配符,可同时提交目录和文件)

lock 命令

命令说明:将锁住 SVN 工作目录或者版本库的 URL,以使没有人可以提交目录或者文件的变更信息;
使用方法:lock TARGET…;
使用实例:[root@xxx]# svn lock -m“lock dir and file”
Test.java(可使用通配符,比如:T*.*)

unlock 命令

命令说明:解除 SVN 工作目录或者版本库 URL 的锁;使用方法:unlock TARGET…;
使用实例:[root@xxx]# svn
unlock -m“lock dir and file”Test.java(可使用通配符,比如:T*.*)

注:在本地加锁或者解锁,记得提交到服务器。

delete(别名:del, remove, rm)命令

命令说明:从 SVN 版本控制中删除文件或者目录;
使用方法:delete PATH…;
使用实例:[root@samba test]# svn delete Test.java(可使用通配符,比如:T*.*) –删除文件
[root@samba test]# svn delete test(可使用通配符,比如:t*) –删除目录

注:执行上面的命令,只能删除 SVN 版本控制下的文件,不能删除目录,故删除目录时,应该采用 Linux(Unix)系统的 rm 命令,同时删除后记得提交。

move(别名:mv, rename, ren)命令

命令说明:移动或者重命名 SVN 工作目录或者版本库;
使用方法:move SRC… DST
使用实例:[root@samba test]# svn move Test.Java Test2.java [root@sambatest]# svn move -m“ss”svn://192.168.31.131/svntest/trunk/src/com/ant/test/Test2.java svn://192.168.31.131/svntest/trunk/src/com/ant/test/Test3.java

注:执行上面的第一种实例命令记得提交。第二种命令是直接修改服务器的文件名,不用提交。

log 命令

命令说明:显示版本库文件的日志信息
使用方法:log [PATH] log URL[@REV] [PATH…]
使用实例:[root@samba test]# svn log T*(一般不要使用通配符,除非该文件目录下只有一个文件)
[root@samba test]# svn log svn://192.168.31.131/svntest/trunk/src/com/ant/test/Test3.java

info 命令

命令说明:显示本地或者远程服务器文件的详细信息
使用方法:info [TARGET[@REV]…]
使用实例:[root@xxx test]# svn info Test.java(可以使用通配符)

list(别名:ls)命令:

命令说明:显示版本库目录的实体,包括目录下的子目录和文件。
使用方法:list [TARGET[@REV]…];
使用实例:[root@samba ant]# svn list [test] (不建议使用通配符,除非你的目录开头字母是不重复的,否则分不清目录下文件的归属)

help(别名:?, h)命令

命令说明:对 svn 命令或者使用程序的一种描述。
使用方法:help [SUBCOMMAND…];
使用实例:[root@samba ~]# svn ci –help(不可以使用通配符)

mkdir 命令:

命令说明:在 SVN 版本控制下创建目录。
使用方法:mkdir PATH…;mkdir URL…
使用实例:[root@xxx]# svn mkdir test3(不可以使用通配符)
[root@samba ant]# svn mkdir -m“create dir”svn://192.168.31.131/svntest/trunk/src/com/ant/test4

注:第一种方式创建完目录之后,需要提交,第二种直接将目录创建在版本库的 URL 下,不需要提交尽。提交目录或文件时加上 -m 参数,否则会提示如下错误:

status(别名:stat, st)命令

命令说明:打印 SVN 工作目录和文件状态。
使用方法:status [PATH…];
使用实例:[root@samba ant]# svn status -v *(可以使用通配符)

注:在执行 status 命令时,建议强制加上“-v”命令参数,第一列保持相同,第二列工作版本号,第三列最后一次修改的修改人,第四列最后一次修改的版本号。

copy(别名:cp)命令

命令说明:备份历史。
使用方法:copy SRC[@REV]… DST;
使用实例:[root@samba test]# svn cp Test3.java Test4.java(不可以使用通配符)
[root@samba test]# svn cp -m“ss”Test3.java svn://192.168.31.131/svntest/trunk/src/com/ant/test2/Test4.java

注:第一种方式需要手动提交,第二种方式可以自动提交。

update(别名:up)命令

命令说明:将服务器的变更引入本地项目。
使用方法:update [PATH…];
使用实例:[root@samba test]# svn up t*(可以使用通配符)

diff(别名:di)命令:

命令说明:比较两个版本的差异。
使用方法:diff [-c M | -r N[:M]] [TARGET[@REV]…];
diff [-r N[:M]] –old=OLD-TGT[@OLDREV] [–new=NEW-TGT[@NEWREV]] [PATH…]
diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]
使用实例:[root@samba test]# svn di T*(可以使用通配符) [root@samba test]# svn di -r 20:18 T*(可以使用通配符)

注:第一种情况是与本地版本比较,第二种情况是显示指定版本的比较。

merge 命令

命令说明:将两个指定的版本差异合并到当前的工作目录文件。
使用方法:merge sourceURL1[@N] sourceURL2[@M] [WCPATH];merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH];
merge [-c M[,N…] | -r N:M …] SOURCE[@REV] [WCPATH]
使用实例:[root@samba test]# svn merge -r 20:18 Test3.java(不建议使用通配符)

注:当两个文件产生冲突的时候,需要先处理冲突,再执行合并命令。

revert 命令

命令说明:恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。
使用方法:revert PATH…
使用实例:[root@samba test]# svn revert Test3.java(不建议使用通配符) [root@samba test]# echo“dd”Test3.java(数据准备)

blame(别名:praise, annotate, ann)命令

命令说明:输出指定文件带有版本号的内容和作者在线信息。
使用方法:blame TARGET[@REV]…
使用实例:[root@samba test]# svn blame Test.*(可以使用通配符)

注:只能执行文件,不能执行目录。

export 命令:

命令说明:采用复制的方式创建一个不在 SVN 版本控制下的树。
使用方法:export [-r REV] URL[@PEGREV] [PATH]
export [-r REV] PATH1[@PEGREV] [PATH2]
使用实例:[root@samba ant]# svn export . test5(不可以使用通配符)

注:创建之后需要提交。

import 命令:

命令说明:提交一个不在版本控制下的树或者文件到版本库。
使用方法:import [PATH] URL
使用实例:[root@samba ant]# svn import -m“sss”svn://192.168.31.131/svntest/trunk/src/com/ant/test5(不可以使用通配符)

cat 命令:

命令说明:输出指定文件的内容(URLs 也必须指定到文件类型)。
使用方法:cat TARGET[@REV]…
使用实例:[root@samba ant]# svn cat svn://192.168.31.131/svntest/trunk/src/com/ant/test Test3.java(可以使用通配符)

注:必须指定到文件或者文件类型。

changelist(别名:cl)命令:

命令说明:带有名称的文件关联列表。
使用方法:changelist CLNAME TARGET… changelist –remove TARGET…
使用实例:[root@samba test]# svn changelist T*(可以使用通配符)

switch(别名:sw)命令:

命令说明:带有名称的文件关联列表。
使用方法:switch URL[@PEGREV] [PATH] switch –relocate
FROM TO [PATH…]
使用实例:[root@samba trunk2]# svn switch svn://192.168.31.131/svntest/trunk/.(不建议使用通配符)
[root@samba /]# svn mkdir trunk2(目录准备)
[root@samba /]# cd trunk2(目录准备)

注:该命令的目的是做一个工作目录的备份,类似文件的软连接。

Ubuntu 14.04 下搭建 SVN 服务器 SVN://  http://www.linuxidc.com/Linux/2015-01/111956.htm

CentOS 7 下安装 iF.svnadmin 实现 Web 方式管理 SVN(源码安装)http://www.linuxidc.com/Linux/2016-08/134214.htm

CentOS 6.5 部署 Apache+SVN  http://www.linuxidc.com/Linux/2013-12/94315.htm

Apache+SVN 搭建 SVN 服务器 http://www.linuxidc.com/Linux/2013-03/81379.htm

Windows 下 SVN 服务器搭建和使用 + 客户端重新设置密码 http://www.linuxidc.com/Linux/2013-05/85189p5.htm

CentOS 6.6 搭建 SVN 服务器 http://www.linuxidc.com/Linux/2016-12/137864.htm

CentOS 7.2 下 Nginx+MySQL+PHP-FPM+SVN 配置 Walle 自动化部署系统详解 http://www.linuxidc.com/Linux/2016-11/137703.htm

Subversion (SVN) 的详细介绍:请点这里
Subversion (SVN) 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-12/138637.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计6218字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中