服务器端是安装subversion这个软件包,apache出品!

这个也有Windows版本的!

先看下有没有安装

rpm -aq |grep subversion

Linux下SVN安装与配置_tortoiessvn

没安装,我们再看下软件包有没有找到

yum list |grep subversion

Linux下SVN安装与配置_svnserve.conf_02

找到了,好开始安装

yum install subversion -y

Linux下SVN安装与配置_authz_03

安装完成

Linux下SVN安装与配置_svn_04

!rpm

Linux下SVN安装与配置_svn_05

看下版本,可以看到是1.6.11

svnserve --version

Linux下SVN安装与配置_svnserve.conf_06

查看下3690端口有没有监听,没有!!!

netstat -ant

Linux下SVN安装与配置_passwd_07

启动一下服务,OK,监听到了

service svnserve status

netstat -ant

Linux下SVN安装与配置_svn_08

创建一个目录,存储所有SVN文件,我放在根目录/下

mkdir /svnroot

Linux下SVN安装与配置_svnserve.conf_09

创建版本仓库,源码存放的地方,这里的源码可以是各种文件,比如我们公司还把工作计划什么的都放在里面,只是说可以多用途!!!我给它起名叫job

svnadmin create /svnroot/job

Linux下SVN安装与配置_authz_10

查看一下内容,它下面会生成很多文件,其中conf这个目录是放了三个配置文件

authz---权限管理

passwd---用户和密码

svnserve.conf是系统配置

Linux下SVN安装与配置_authz_11

passwd里面是

用户 = 密码

这样的格式

Linux下SVN安装与配置_tortoiessvn_12

authz里可以创建组并设置目录的权限

Linux下SVN安装与配置_svnserve.conf_13

passwd里我创建三个用户 ,密码666666

Linux下SVN安装与配置_tortoiessvn_14

authz里在groups下面建两个组

admin,它的成员为kevin,我是指定它为管理员组

jobers,员工组,成员是steven和qingfeng

[/]这个是根目录,相当于/svnroot这个目录,但因为我们指定的版本仓库是在job下,所以这个就可有可无了!

[svnroot:/job]或者[job:/]都代表是/svnroot/job这个目录

让管理员组对它有读写权限

@admin = rw 组前面要加@号

job 目录下给kevin用户一个目录,qingfeng用户一个目录

[job:/kevin]表示kevin目录

job前面加个svnroot/应该也是可以的,我没试,原则上是可以的

权限是管理员组用户对它有读写权限,同时jobers里的steven用户也对它有读写权限

当然,上层目录管理员已经有权限了,下层目录就可以不用写,用户前面不要加@号

这里权限什么的一定要注意,不然不是连接不上就是谁失败!

Linux下SVN安装与配置_tortoiessvn_15

启动服务测试一下service svnserve start

连接一下svn co svn://192.168.188.60/job或者svn co svn://127.1/job

没有发现源码仓库!

Linux下SVN安装与配置_authz_16

()内为命令简写.

checkout (co) 提取

commit (ci)   提交

update (up)  更新

list (ls)      列表

svn在linux下的命令可以用svn --help查看,比如svn add就是添加文件

用这种方法启动服务,

svnserve –d –r /svnroot/ job提示地址已经在用了,d是后台运行,r是指定根目录,这样指定后,对外面人来说就是隐藏了/svnroot/这个实际目录,对外面人来说访问只要用svn://IP(务器名)/job就可以了!

Linux下SVN安装与配置_svn_17

停止之前的服务,重新用这种方法启动服务,端口也监听了

Linux下SVN安装与配置_svnserve.conf_18

重新连接,目录不存在!

Linux下SVN安装与配置_svn_19

重新指定目录,不要写job

svnserve –d –r /svnroot/

地址已经在用了

停止服务

Linux下SVN安装与配置_tortoiessvn_20

查看一下svn进程

ps aux |grep svn

也可以lsof -i :80或者lsof -i :80|grep -v "PID"  

找到目录是/svnroot/job的进程,PID是1680

kill 9 1680结束它
或者kill pid
或者killall 进程名 

再启用服务,连接,OK了

svn co svn://192.168.188.60/job

Linux下SVN安装与配置_svnserve.conf_21

可以指定用户和密码svn co –username kevin –password 666666 svn://127.1/job

但提示svnserve.conf:12:Option expected

Linux下SVN安装与配置_tortoiessvn_22

去查看一下svnserve.conf,把里面

anon-access = read前面的#号去掉,后面的read改成none,不允许匿名用户查看,同时这一行前面不能有空格!!!

auth-access = write这一行前面的#也去掉,前面不要有空格

password-db = passwd

authz-db = authz

这两行前面的#号也去掉并不要有空格

realm =My First Repository     指定版本库的认证域,即在登录时提示的认证域名称。若你有多个版本库的认证域相同,建议使用相同的用户名口令数据文件,我这里就不动它,也没事!

Linux下SVN安装与配置_passwd_23

重新连接,如果提示你invalid authz configuration,那你就好好看看authz里的权限配置

Linux下SVN安装与配置_tortoiessvn_24

这里警告要缓存密码,只能以明文方式缓存,你就输入yes就行!如果不想看到这个提示就输入svn update --no-auth-cache

Linux下SVN安装与配置_passwd_25

如果不加用户和密码,会让你先输入root用户的密码,再输入要连接的用户和密码

Linux下SVN安装与配置_authz_26

我们在Windows下安装客户端工具TortoiseSVN

安装很简单,安装完后右键就有了相关的选项

我们在客户机上新建一个文件夹,在它上面右键或在里面右键都行,先选择SVN Checkout,因为我们第一次使用,没有源码,所以在先从服务器上提取,哪怕服务器上也什么都没有!

Linux下SVN安装与配置_passwd_27

输入库的地址,下面目录选择新建的那个,点OK!

Linux下SVN安装与配置_passwd_28

输入用户名和密码,可以勾选下面的Save authentication来记住用户和密码,不然每次操作都要输入!

Linux下SVN安装与配置_svnserve.conf_29

提取成功!

Linux下SVN安装与配置_svnserve.conf_30

Linux下SVN安装与配置_svnserve.conf_31

新建一个文本文件

Linux下SVN安装与配置_svn_32

这只是在本地新建了,服务器上还没有,所以要先添加一下

Linux下SVN安装与配置_passwd_33

Linux下SVN安装与配置_authz_34

Linux下SVN安装与配置_svnserve.conf_35

文本文件上的小图标也变成了+号

Linux下SVN安装与配置_tortoiessvn_36

目录上多了一个感叹号

Linux下SVN安装与配置_svn_37

然后我们要提交一下,目录上或目录里面右键Commit

Linux下SVN安装与配置_authz_38

Linux下SVN安装与配置_passwd_39

Linux下SVN安装与配置_passwd_40

提交成功后文件上的图标就成了对号,目录当然也是!

Linux下SVN安装与配置_tortoiessvn_41

Linux下SVN安装与配置_tortoiessvn_42

来修改一下文件

Linux下SVN安装与配置_svn_43

再提交,可以写一下修改的备注

Linux下SVN安装与配置_passwd_44

版本号成了2,因为第一次添加就认为你已经做了第一版

Linux下SVN安装与配置_svn_45

点Show log显示日志,我们能看到每一次的改变

Linux下SVN安装与配置_authz_46

再改一次

Linux下SVN安装与配置_authz_47

提交,版本号又加了一!

Linux下SVN安装与配置_passwd_48

改第三次

Linux下SVN安装与配置_svn_49

Linux下SVN安装与配置_tortoiessvn_50

版本号是4!

Linux下SVN安装与配置_svnserve.conf_51

Linux下SVN安装与配置_authz_52

如果想查看以前的版本,可以右键,TortoiseSVN,Update torevision选择你要查看的版本

Linux下SVN安装与配置_passwd_53

上面的方法只是将本地的工作回复到以前的状态,   
而服务器端并没有回到以前的状态。    
如果想让服务器上也回到以前的版本,要先更新一下本地的文件,执行Update命令更新到最新版本,然后右键,选择TortoiseSVN,Show Log,    
弹出的窗口中会显示所有版本,选中最新的版本,按住Shift键,再单击你想回复到的版本+1的那个版本    
比如最新版本是9,我们要回到版本2,那么就选中3到9所有的版本,然后在选中的版本上右键,选择“Revert changes from these revision”,再Yes,就可以了,注意,此时只是本地工作返回到目标你要的版本了,别忘记用Commit提交修改,但这样就意味着你后来所做的工作全没有了,要小心哦,脑子不要短路!

Linux下SVN安装与配置_svnserve.conf_54

在记住用户和密码后,如果想用别的用户连接或要新建一个目录来连接别的内容,就先在清除记忆,在TortoiseSVN里有个Settings,进去后选择Saved Data,找到Authentication data,点后面的Clear!

Linux下SVN安装与配置_passwd_55

然后在新建的目录或要更改用户的目录上Checkout,填写正确的URL并选择相应的本地目录

Linux下SVN安装与配置_svnserve.conf_56

输入用户与密码

Linux下SVN安装与配置_passwd_57

提示不存在,你要先确定你要提取的目录在服务器上已经存在!

Linux下SVN安装与配置_tortoiessvn_58

查看源码仓库的方法有两种!第一种,随便找个地方右键,TortoiseSVN,Repo-browser

Linux下SVN安装与配置_svnserve.conf_59

选择要浏览的目录

Linux下SVN安装与配置_tortoiessvn_60

第二种就是直接输入你要浏览的目录svn://ip/目录

Linux下SVN安装与配置_svnserve.conf_61

就打开了!这里的东西都是在服务器上存着!

Linux下SVN安装与配置_authz_62

如果没有目录就可以Create folder一个目录,比如添加一个用户的目录,以存放用户所做的工作计划等!然后客户机再Checkout!

如果想在这添加文件和目录都可以,add file,add folder,然后客户机update就行了!

Linux下SVN安装与配置_svnserve.conf_63

接上面,输入目录名称

Linux下SVN安装与配置_tortoiessvn_64

可以添加注释

Linux下SVN安装与配置_svn_65

添加成功

Linux下SVN安装与配置_passwd_66

客户机提取

Linux下SVN安装与配置_tortoiessvn_67

不能连接到源码库,无效的认证,都要看你的authz权限是否设置正确

Linux下SVN安装与配置_authz_68

下面这样设置就可以用kevin和steven用户读写kevin目录,用qingfeng用户就不行,因为它没有权限!

Linux下SVN安装与配置_tortoiessvn_69

用别的用户就不行

Linux下SVN安装与配置_svn_70

新建一个目录给qingfeng,设置正确的权限

Linux下SVN安装与配置_authz_71

Linux下SVN安装与配置_svn_72

Linux下SVN安装与配置_svnserve.conf_73

Linux下SVN安装与配置_svnserve.conf_74

后面的图没截了,成功登陆!

如果遇到提示目录be locked!

先在目录里右键,TortoiseSVN,Clean up,然后再执行其他操作,如果不行,就出去到上级目录Clean up

还不行就先get lock,然后再release lock

最后还不行就进入服务器svn目录,del lock /q/s试试,不然删除目录看看!!!