SVN的服务端部署&客户端使用,这一篇就够了~

目录

一、SVN简介

二、SVN服务端搭建和配置(Linux)

1. 检查已安装版本

2. 安装SVN

3. 验证安装

4. 版本库创建

5. 配置版本库

6. 用户密码passwd配置

7. 权限控制authz配置

8. 服务svnserve.conf配置

9. 配置防火墙端口

10. 启动SVN

11. 查看SVN进程

12. 检测SVN 端口

13. 停止重启SVN

14. 设置SVN服务开机自启动

15. 测试

三、SVN客户端安装及使用

1、SVN客户端安装

2、SVN客户端使用


一、SVN简介

SVN是Subversion的简称,是一种开放源代码的版本控制系统。它采用分支管理系统实现高效管理。简单点说,当多个人共同开发同一个项目时,可通过SVN实现资源共享和集中管理。

SVN采用客户端和服务器体系。常用VisualSVN server 服务端和 TortoiseSVN客户端。

二、SVN服务端搭建和配置(Linux)

1. 检查已安装版本

检查是否安装了SVN

# rpm -qa subversion

如果存在旧版本,卸载旧版本SVN

# yum remove subversion

2. 安装SVN

# yum -y install subversion

此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行。

3. 验证安装

# svnserve --version

4. 版本库创建

SVN软件安装完成后还需要建立SVN库,建立之前要查看各目录内存的大小以保证版本库有足够的空间,用以下命令查看:

# df -h 路径

通过以下命令建立版本库:

# mkdir /var/svn/svnrepos

# svnadmin create /var/svn/svnrepos/xxxx (xxxx为你预期的版本库名称,可自定义)

查看/var/svn/svnrepos/xxxx文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。

5. 配置版本库

进入上面生成的文件夹conf下,进行配置

# cd /var/svn/svnrepos/xxxx/conf

6. 用户密码passwd配置

# vim passwd

修改passwd为以下内容:

[users]

# harry = harryssecret

# sally = sallyssecret

hello=123

这样我们就建立了hello用户,123密码(用户名=密码)

以上语句都必须顶格写,左侧不能留空格,否则会出错。

7. 权限控制authz配置

# vi  authz

目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:

[groups]

php=yonghu,yonghu2,yonghu3 #创建用户分组,可对组进行权限、访问目录设置

android=yonghu5,yonghu6

[/]    # [/]代表版本库目录下所有的资源

hello = rw  #意思是hello用户对版本库下所有的目录有读写权限,当然也可以限定。

[/adnroid]   #[/adnroid]代表版本库目录下的android文件夹

@android=rw    #android组的用户拥有读写权限

以上语句都必须顶格写,左侧不能留空格,否则会出错.

8. 服务svnserve.conf配置

# vim svnserve.conf

将以下内容的注释去掉,并把read改成none,左侧不能留空格,否则会出错:

anon-access = none 一定要改成none,否则log不能显示

auth-access = write 表示认证用于允许写

password-db = passwd 表示使用passwd文件来进行账号密码认证

authz-db = authz 表示使用authz文件用户权限认证

realm = /svn 表示将/svn目录做为SVN服务器的工作目录。

9. 配置防火墙端口

systemctl start firewalld       #启动Firewall

systemctl enable firewalld.service  #设置开机自启动

firewall-cmd --add-port=3690/tcp –permanent

firewall-cmd --reload

10. 启动SVN

svnserve -d -r /var/svn/svnrepos

11. 查看SVN进程

# ps -ef|grep svn

12. 检测SVN 端口

# netstat -ln |grep 3690

提示tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN即可

13. 停止重启SVN

# killall svnserve

# svnserve -d -r /var/svn/svnrepos

如果已经有svn在运行,可以换一个端口运行

svnserve -d -r /var/svn/svnrepos --listen-port 3391

14. 设置SVN服务开机自启动

编辑svn service 配置文件,目录:/etc/sysconfig/svnserve

# vi /etc/sysconfig/svnserve

将OPTIONS里的值改为当前服务器上svn 版本库的目录

# OPTIONS="-r /var/svn/svnrepos"

改完后退出并保存,然后在命令行输入:

# systemctl enable svnserve.service

最后重启服务器:

# shutdown -r now

开机后查看svn是否自启动:

# ps -ef|grep svn

出现如下信息就是成功了。

15. 测试

SVN服务已经启动,使用window客户端测试连接。客户端连接地址: svn://ip地址:3690/xxxx (iP地址为你linux的ip,xxxx为前文创建的版本库名称,3690为svn默认端口)。弹出输入用户名和密码,即可访问测试创建文件夹等操作。

三、SVN客户端安装及使用

1SVN客户端安装

在Windows常用的客户端为TortoiseSVN,下载地址Downloads · TortoiseSVN,根据电脑情况选择相应的安装包。

这里有些需要注意的地方:

如果需要使用命令行,下图标注处可以选择上:

2SVN客户端使用

(1)下载文件

在本地新建一个文件夹(假设为project)用于存放下载的文件。

右键点击该文件夹,会出现如下窗口,点SVN Checkout。

此时会弹出认证窗口,输入URL、用户名和密码即可。

如果想下载部分文件,可以选择chose items:

(2)对原有文件修改后提交

在该文件上右键点击SVN Commit:

 写上对此次提交的说明:

(3)新增文件后提交

在新增文件上右键进行如下操作,将该文件加进版本库:

之后在该文件上右键点击SVN Commit进行提交,并对本次提交进行说明。

(3)删除文件

在该文件上右键并进行如下操作,此时只是在本地删除了,服务器上并没有删除。

若想恢复该文件则在空白处右键进行如下操作:

本地删除后,在空白处右键点击SVN Commit提交后,该文件在服务器上就也删除了,不可以恢复。

(4)更新问题

在当你本地的文件不是最新版本时,你修改后在进行提交就会出现错误:

此时需要更新你本地的文件,更新后再修改提交。

(5)冲突问题

别人修改了某个文件的一个位置并提交后,你对该位置也进行了修改,提交时会出现更新问题。更新之后会出现冲突问题:

这是因为此时系统不知道到底是谁对,此时需要查看该文件的两个修改,确定到底哪个对(需要和别人商量),把错误的修改删除。之后告诉SVN冲突解决了: 

之后在提交就没问题了。

(6)查看日志

(7)版本回滚

发现自己写的代码有问题,但是已经提交上去了,别人也已经更新或下载了你的错误代码,这时候就需要版本回滚。

在错误文件上右键:

然后选择需要回滚的版本:

但此时,只是你本地的代码回滚了,SVN服务器上的并没有回滚,此时就需要提交一下。

(8)其它功能说明

  • Repo-browser:在本地查看SVN版本库,可以在本地对里面的文件进行管理,如新建删除。
  • Check for modifications:可以查看对该文件你做了哪些修改还没有提交;也可以看别人对该文件做了哪些操作,但你还没更新。
  • Revision graph: 查看文件的分支,版本结构,可以点击Revision Graph,系统以图形化形式显示版本分支。
  • Rename:更改文件名,更改后需要提交。
  • Clean up: 如果当前工作拷贝有任何问题的话,可以使用这个选项进行修正。例如,有些文件原来是版本控制的,但是你没有通过tortoiseSVN就直接删除了,但是tortoiseSVN还是保留着原来的信息(每个文件夹下都有一个.svn的隐藏文件夹,存放着当前文件夹下所有文件夹的版本信息)所以这就会产生一些冲突。可以使用cleanup来清理一下。
  • Get/Release lock: 如果你不想别人修改某个文件的话,那么你就可以把这个文件进行加锁,这样可以保证只有你对这个文件有修改权。除非你释放了锁,否则别人不可能提交任何修改到配置库中。
  • Branch/tag: 当需要创建分支,点击Branch/Tag,在弹出的提示框中,输入分支文件名,输入日志信息,点击确定,分支创建成功,然后可查看文件的版本分支情况。
  • Switch: 文件创建分支后,你可以选择在主干工作,还是在分支工作,这时候你可以通过Switch来切换。
  • Merge: 主干和分支的版本进行合并,在源和目的各输入文件的路径,版本号,点击确定。系统即对文件进行合并,如果存在冲突,请参考冲突解决。
  • Export: 把整个工作拷贝导出到本地目录下,导出的文件将不带svn文件标志,文件及文件夹没有绿色的”√”符号标志。
  • Copy URL to clipboard:把某个文件的URL复制到剪贴板。
  • Unversion and add to ignore list: 大多数项目会有一些文件(夹)不需要版本控制,如编译产生的*.obj, *.lst,等。每次送交,TortoiseSVN提示那些文件不需要控制,挺烦的。这时候可以把这些文件加入忽略列表。
  • Shelve: 如果你在做一个项目A,这个过程中,可能需要修改多个代码文件。不巧的是,项目A还未完成,甚至部分代码都无法编译通过,此时有一个更加重要而且紧急的项目B需要你的参与。那么,你不得不暂时放下项目A工作,来切换到项目B上来,但这时你又发现,项目B与项目A有许多代码耦合,之前项目A上你已经做的修改会影响的项目B。此时,你需要清理你的workspace中关系项目A的临时代码,才能开始项目B的工作。那么shelve功能就是用来管理这些临时改动的代码的。
  • Create/Apply Patch: 创建补丁。如果管理员不想让任何人都随便提交修改,而是都要经过审核才能做出修改,那么其他人就可以通过创建补丁的方式,把修改信息(补丁文件)发送给管理员,管理员审核通过之后就可以使用apply patch提交这次修改了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值