linux 下搭建svn服务器

一、安装SVN服务器

1 安装svn

sudo apt-get install subversionroot用户可以去掉sudo

2 创建目录

cd /srv

sudo mkdir svn

cd svn

sudo mkdir tone_src #svn的版本仓库存放目录

3 创建版本仓库

当前位置在/srv/svn/tone_src

sudo svnadmin create /srv/svn/tone_src

执行之后tone_srv下文件结构如下:

https://i-blog.csdnimg.cn/blog_migrate/36d335a4295edd819adef6d790cf6a6c.gif

4 配置

我们需要修改conf目录下的三个文件,authz,passwd,svnserve.conf

(1)编辑svnserve.conf

[general]
#
匿名用户不可读
anon-access = none
#
权限用户可写
auth-access = write
#
密码文件为passwd
password-db = passwd
#
权限文件为authz
authz-db = authz

(2)编辑authz

[groups]
admin= tone #admin
组的用户为tone

[/] #必须写/,因为这表示从仓库的目录开始设置权限
@admin =rw #admin组有rw(读写权限),所有人有r(读权限)
*=r

注释:这里组的名字不一定叫admin,组的名字可以任务,admin组有多个用户的话,可以这样制定admin=tone,tone1,tone2等。

3)编辑passwd文件,设定用户密码

[users]
# harry = harryssecret
# sally = sallyssecret
tone=www #
设定用户tone的密码是www,是的没错,密码是明文的。

5 启动SVN服务器

sudo svnserve -d -r /srv/svn #启动服务器

-d 已守护模式启动

-r 指定svn版本库根目录,这样是便于客户端不用输入全路径,就可以访问版本库了。

例如:svn://ip:port/tone_src

 

 

svn基本命令使用

 

1svn help:可以通过该命令查看svn的所有操作命令,包括命令的缩写

2、首先需要从svn库中checkout对应的项目:

 1svn项目路径为svn://192.168.1.1/myproject/doc,将项目路径下的文件checkout/home/test目录下,若没有/home/test路径会自动创建,同时只将doc中的子目录和文件checkout到该路径。

    svn checkout svn://192.168.1.1/myproject/doc  /home/test/  --username myname --password password

 2)命令会在当前目录建doc目录,然后将项目checkout到该目录下

    svn checkout svn://192.168.1.1/myproject/doc

 

 3)命令会建一个空的doc目录,该目录会与svn关联。该方法主要是为了只checkout对应项目下的部分文件,此时进到doc目录,然后使用svn up abc     命令则会将该项目下的abc目录checkoutdoc,而不会checkout其他文件。

    svn checkout --depth=empty svn://192.168.1.1/myproject/doc

 4)上面的命令可以将checkout替换为其缩写co

3、添加文件,通过2将项目checkout到本地之后,就可以对项目进行操作

1)在svn目录下,添加了新文件,如加了 aa.xml,然后提交,需要下面两步:

      svn add aa.xml

      svn commit -m "add file aa.xml" aa.xml

2)添加多个文件,全部提交

      svn add  *

      svn commit -m "add all update file"  *

3)其中上面的commit命令可缩写为ci,另外 -m 后面引号为此次修改的注释,最后面为提交的文件

4、修改文件

当对存在的文件进行修改之后直接使用commit即可提交到svn,如修改了aa.txt,之后执行下面命令提交

     svn commit -m "update file aa.txt" aa.txt

5、更新

1)更新当前目录下的全部文件

      svn update

2)更新abc目录中的文件

      svn update abc

3)将abc目录文件更新恢复到某个版本

     svn update -r 版本号 abc

4update可用up代替

6、删除文件

1)删除文件aa.txt,需要如下两步操作,删除文件夹也一样

    svn delete aa.txt

    svn commit -m "delete file aa.txt"

7、查看文件的状态,正常状态则执行命令之后无信息,文件前面带M表示对应文件有修改,C表示对应文件冲突,A表示新加文件,?表示问在svn中的文件。如添加文件,没有进行add命令操作,则状态为?,进行了add操作但是没commit,则为A状态

1)查看当前目录所有文件状态

    svn status

2)查看abc目录下所有文件状态

    svn status abc

3)查看文件进行过的修改,第一列显示当前版本,第二列显示修改时的版本,第三列显示修改人,第四列显示修改文件

    svn status -v abc

4status可用st代替

8、查看svn的提交日志记录

1)查看所有记录,一般会很多,不这么做

    svn log

2)查看最近的四条提交记录

    svn log -l4

3)查看aa.txt文件的记录

    svn log aa.txt

9、查看项目信息

1)查看项目的svn信息

    svn info

2)查看aa.txt文件的svn信息 

   svn info aa.txt

10、查看当前svn目录下有什么文件,方便根据需要checkout对应需要的文件

   svn list svn://192.168.1.1/doc

11、拿出项目,但是拿出来的项目没有与svn进行关联,不在其控制范围,命令格式类似checkout

1)拿项目的最新版本

   svn export svn://192.168.1.1/doc /home/mytest

2)拿项目指定版本的文件

   svn export -r 需要的版本号 svn://192.168.1.1/doc /home/mytest

12、文件修改之后回退

1)撤销对ab.txt 文件的修改

    svn revert ab.txt

2)撤销当前目录下的所有修改

    svn revert --recursive .

13、文件对比

1)查看文件与svn中的不同

    svn diff ab.txt

2)查看ab.txt 在版本为1214之间所做的修改

    svn diff -r 12:14 ab.txt

 

 

转载自:https://www.cnblogs.com/yaochc/p/4944855.html

https://blog.csdn.net/clouderpig/article/details/80093507

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值