Linux下SVN安装与配置

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

这个也有Windows版本的!

先看下有没有安装

rpm -aq |grep subversion

clip_image001

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

yum list |grep subversion

clip_image003

找到了,好开始安装

yum install subversion -y

clip_image004

安装完成

clip_image006

!rpm

clip_image007

看下版本,可以看到是1.6.11

svnserve --version

clip_image009

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

netstat -ant

clip_image011

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

service svnserve status

netstat -ant

clip_image013

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

mkdir /svnroot

clip_image014

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

svnadmin create /svnroot/job

clip_image015

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

authz---权限管理

passwd---用户和密码

svnserve.conf是系统配置

clip_image016

passwd里面是

用户 = 密码

这样的格式

clip_image017

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

clip_image018

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

clip_image019

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用户也对它有读写权限

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

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

clip_image020

启动服务测试一下service svnserve start

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

没有发现源码仓库!

clip_image021

()内为命令简写.

checkout (co) 提取

commit (ci)   提交

update (up)  更新

list (ls)      列表

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

用这种方法启动服务,

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

clip_image022

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

clip_image024

重新连接,目录不存在!

clip_image025

重新指定目录,不要写job

svnserve �Cd �Cr /svnroot/

地址已经在用了

停止服务

clip_image026

查看一下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

clip_image028

可以指定用户和密码svn co �Cusername kevin �Cpassword 666666 svn://127.1/job

但提示svnserve.conf:12:Option expected

clip_image030

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

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

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

password-db = passwd

authz-db = authz

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

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

clip_image031

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

clip_image033

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

clip_image035

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

clip_image037

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

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

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

clip_image038

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

clip_image039

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

clip_image040

提取成功!

clip_image041

clip_image043

新建一个文本文件

clip_image044

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

clip_image046

clip_image048

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

clip_image049

目录上多了一个感叹号

clip_image050

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

clip_image052

clip_image054

clip_image056

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

clip_image057

clip_image058

来修改一下文件

clip_image060

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

clip_image062

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

clip_image064

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

clip_image066

再改一次

clip_image068

提交,版本号又加了一!

clip_image070

改第三次

clip_image072

clip_image073

版本号是4!

clip_image074

clip_image075

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

clip_image076

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

clip_image078

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

clip_image080

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

clip_image082

输入用户与密码

clip_image083

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

clip_image085

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

clip_image086

选择要浏览的目录

clip_image087

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

clip_image088

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

clip_image090

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

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

clip_image091

接上面,输入目录名称

clip_image092

可以添加注释

clip_image093

添加成功

clip_image094

客户机提取

clip_image095

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

clip_image097

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

clip_image098

用别的用户就不行

clip_image099

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

clip_image100

clip_image101

clip_image102

clip_image103

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

如果遇到提示目录be locked!

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

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

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

你可能感兴趣的:(SVN,passwd,authz,svnserve.conf,tortoiessvn)