Fedora 30下SVN安装笔记

简述:

Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统,采用分支管理模式。即Subversion 管理着随时间改变的数据,而这些数据放置在一个中央资料档案库(repository)

几个概念:

repository(源代码库):源代码统一存放的地方。

Checkout(提取):若手上没有源代码,则需从repository checkout一份。

Commit(提交):若已修改了代码,就需要Commitrepository。

Update (更新):若已经Checkout了源代码, Update一下便可与Repository上的源代码同步,手上的代码也会有最新的变更。

系统:Fedora 30 64bit

1、安装svn

安装之前,可以先检查系统是否已安装。

svn --version

若没有安装,则使用命令安装即可。

dnf install subversion -y

 

安装完成后,再次输入svn --version检查是否安装成功。

2、检出文件(checkout)

svn checkout 目录

如:svn co https://svn.shiwan.com/svn/shiwan/branches/program/ 

svn checkout https://svn.shiwan.com/svn/shiwan/branches/program/ 

3、创建分支(copy)

trunk:主干线,my_branch:分支

svn copy trunk/ branches/my_branch

查看状态:svn status

4、提交文件(commit)

svn commit -m "add my_branch"

svn ci -m "add my_branch"

注意:提交之前要先更新,即 svn up

5、更新文件(update)

svn up

6、添加新文件/目录

svn add 文件名/目录

注:告诉SVN服务器要添加文件了,还要用svn commint -m才真实的上传上去!

7、查看历史信息

svn log用来展示svn 的版本作者、日期、路径等等。

svn diff用来显示特定修改的行级详细信息。

svn cat取得在特定版本的某文件显示在当前屏幕。

svn list显示一个目录或某一版本存在的文件

svn log

可以显示所有的信息。

若查看特定的某两个版本之间的信息,可以使用:

svn log -r 6:8

若查看某一个文件的版本修改信息,可以使用 :

svn log 文件路径/文件

若查看目录的信息要加 -v

若显示限定N条记录的目录信息,使用 svn log -l N -v

svn log -l 8  -v

svn diff

用来检查历史修改的详情。

a. 对比当前本地的工作拷贝文件(working copy)和缓存在.svn下的版本库文件的区别:

        svn diff 

b. 对比当前本地的工作拷贝文件(working copy)和任意版本A的差异

        svn diff -rA 

比如,以下将对比本地的工作拷贝文件(working copy)和版本94239的差异

        svn diff -r94239

c. 对比任意历史版本A和任意历史版本B的差异

        svn diff -rA:B

比如,以下命令将显示版本94127相对于版本94239的差异

        svn diff -r94239:94127

svn cat

若只检查一个过去版本,不查看区别,可使用svn cat

svn cat -r 版本号  文件

svn list

svn list可以在不下载文件到本地目录的情况下来察看目录中的文件。

svn list 目录

8、解决冲突

9、版本回退(revert)

// 放弃当前修改
svn revert -R .
// 更新
svn up
// 查看最近5条svn log日志
svn log -l 5
// 从r608回滚到r602
svn merge -r 608:602 ""

10 合并(merge)

svn merge -rA:B

比如,下面这个命令的含义是,把94127版本相对于94239版本的差异merge到当前版本,注意冒号前后的版本的顺序是会带来区别的

svn merge -r94239:94127

merge完成之后,记得提交本地的修改到版本库

svn ci -m"restore to version 94127" 
cd .../trunk
svn copy psBar  ../branches/psBar_#function
cd .../trunk/psBar
svn merge https://***/branches/psBar_#function

11、标签(tag)

12、

1>  删除

svn rm  --force myBar_cx
2> 显示本地或远程条目的信息

svn info

用法:  info [TARGET[@REV]...]
                     显示每个 TARGET 的信息 (默认: ".")。
                                TARGET 可以是工作副本中的路径或版本库中的URL。
                                REV 指定从哪个版本开始查找目标。

有效选项:
  -r [--revision] ARG      : ARG (一些命令也接受ARG1:ARG2范围)
                                        版本参数可以是如下之一:
                                              NUMBER       版本号
                                             '{' DATE '}' 在指定时间以后的版本
                                             'HEAD'       版本库中的最新版本
                                             'BASE'       工作副本的基线版本
                                              'COMMITTED'  最后提交或基线之前
                                              'PREV'       COMMITTED的前一版本

例子:
   svn info -r BASE:显示当前工作副本的基线版本的信息
   svn info -r HEAD:显示版本库中最新的版本的信息
注意:svn info中的Revision和Last Changed Rev有时可能一样,这时表示当前工作副本是版本库中的最新版本。但一般情况下,Revision和Last Changed Rev是不一样的,Last Changed Rev表示当前Path最后一次更改的revision,而Revison表示整个Repository的最新revision。

获取当前工作副本的版本号:svn info -r HEAD . | grep "Changed Rev" | cut -b 19-

                cut -b 19-  : 只显示行中19到最后位置的字节

其他用法详情请在终端输入“svn info --help” 查看。


3 > svn cleanup
4> svn help

其他:

1> 安装svn

安装之前,可以先检查系统是否已安装。

svn --version

若没有安装,则使用命令安装即可。

yum install subversion

yum install mod_dav_svn

 

安装完成后,再次输入svn --version检查是否安装成功。

2> 创建项目仓库,修改拥有者给apache

sudo mkdir /opt/svn

sudo mkdir /opt/svn/repos

sudo chown apache:apache /opt/svn/repos

3> 创建工作空间

sudo svnadmin create /opt/svn/repos/工作空间

4> 修改svn服务配置文件svnserve.conf

svn服务配置文件为版本库目录中的文件conf/svnserve.conf。

cd /opt/svn/repos/工作空间

cd conf/

vi /opt/svn/repos/工作空间/conf/svnserve.conf

①修改前:

anon-access = read

auth-access = write

修改后:

anon-access = none    (如果此处不设置为none的话,则连结SVN时会出现错误“Read access denied for root of edit”)

auth-access = write

②修改前:

password-db = passwd

修改后:

password-db = passwd

③修改前:

authz-db = authz

修改后

authz-db = authz 

注意:subversion读取配置文件svnserve.conf时,无法识别有前置空格的配置,因此前面不能有空格

5> 增加用户及密码,并设置访问权限

用户名口令文件由svnserve.conf的配置项password-db指定,缺省为conf目录中的passwd。

该文件仅由一个[users]配置段组成。

vi /opt/svn/repos/工作空间/conf/passwd  (用户名口令文件passwd)

[users]

#user = password

svnuser = svnpassword

权限配置文件由svnserve.conf的配置项authz-db指定,缺省为conf目录中的authz

该配置文件由一个[groups]配置段和若干个版本库路径权限段组成。

[groups]配置段中配置行格式如下:

<用户组> = <用户列表>

版本库路径权限段的段名格式如下:

[<版本库名>:<路径>]

 

vi /opt/svn/repos/工作空间/conf/authz

[/]

svnuser = rw

6> 启动svnserve服务

cd ..

svnserve -d -r /opt/svn/repos --listen-port 端口号

-r: 配置方式决定了版本库访问方式。

--listen-port: 指定SVN监听端口,不加此参数,SVN默认监听3690。

原创文章 115 获赞 561 访问量 105万+

猜你喜欢

转载自blog.csdn.net/hebbely/article/details/90648002