svn 服务端和客户端的使用

来源:互联网 发布:rpc java php 编辑:程序博客网 时间:2024/05/19 05:33

1.下载SVN
http://subversion.tigris.org/project_packages.html
本文下载的是svn-1.4.5-setup.exe

2.安装
本文将Subversion安装在D:/Program Files/Subversion目录下面

3.建立仓库
到D:/Program Files/Subversion/bin
目录下执行下列语句

svnadmin create D:/SvnData/qed

在D:/SvnData/qed目录下建立仓库
这个时候你会在D:/SvnData/qed下面看到建立了很多目录和文件

4.用windows系统自带的sc命令将Subversion安装为Windows服务。
【不要告诉我你还在用windows9x就行了】
命令如下:

sc create SVN binpath= "C:/Program Files/Subversion/bin/svnserve.exe --service -r D:/svnData" displayname= "Subversion Server" depend= Tcpip start= auto

含义一看便知,不做详细解释了。

5.权限设置
修改D:/SvnData/qed/conf/svnserve.conf文件
例如将文件内容改成如下

anon-access = none
password-db = passwd

authz-db = authz

第一句是告诉服务器不经过权限验证的用户啥权限都没有
第二句是告诉服务器用户名和密码的设置在文件passwd中。
第三句是告诉服务器用户权限的设置在文件authz中。

passwd和authz文件都位于D:/SvnData/qed/conf/文件夹下面。

6.设置用户名和密码
用EditPlus打开D:/SvnData/qed/conf/passwd文件,添加一个用户
liuqing,并设置密码为123456

liuqing = 123456

7.设置读写权限

用EditPlus打开D:/SvnData/qed/conf/authz文件,改为下列内容
[/]
liuqing = rw
这表示liuqing拥有对根目录的读写权限。

现在你就可以用各种SVN客户端在根目录下面创建子目录了。

SVN服务器的访问地址
svn://localhost

常见问题:不能检出

在本人的实际配置中,发现可以读写,但是死活不能检出。老是提示:无权打开根进行编辑操作 Read access denied for root of edit
解决方法如下:
D:/SvnData/qed/conf/svnserve.conf中的
anon-access = none
必须加上。
如果设置成
anon-access = read
则必须在在authz文件中加上:
[/]
* = r

 

安装服务端
注册服务
建立仓库
配置文件


mkdir svn
cd svn
mkdir shopbackend
sc create SVN binpath= "C:/Program Files/Subversion/bin/svnserve.exe --service -r D:/svn/shopbackend" displayname= "Subversion Server" depend= Tcpip start= auto

svnadmin create D:/svn/shopbackend
svn info svn://localhost显示正常信息
svn info svn://localhost/1 svn://localhost/backend: (不是有效的URL)

svn import D:/tmp/shopbackend svn://localhost/1 -m "initial import"
成功 此时版本号1
svn info svn://localhost/1 显示正常信息

svn import D:/tmp/backend svn://localhost/1 -m "initial import"
成功 此时版本号为2

之后 checkout svn://localhost/1 得到第一次import的内容
     checkout svn://localhost/2 得到第二次import的内容
     修改1的文件commit 成功 版本号变为3
     修改2的文件commit 成功 版本号变为4
    
结论:同一仓库下import第二个参数分配了两个访问的url, subversion建立了两个虚拟目录  在import数据之前及服务对应目录为D:/svn/shopbackend svn://localhost对应此目录 bug内容为上面四行

建立一个版本库的正确顺序为:
安装:
1.下载SVN
http://subversion.tigris.org/project_packages.html
本文下载的是svn-1.4.5-setup.exe

2.安装
本文将Subversion安装在C:/Program Files/Subversion目录下面

第一步:注册subversion的服务目录,类似与apache的www目录 (这一步在安装成功后运行一次就可以,98不能用此命令)
e.g. sc create SVN binpath= "C:/Program Files/Subversion/bin/svnserve.exe --service -r D:/svnData" displayname= "Subversion Server" depend= Tcpip start= auto
第二步:svnadmin create 建立仓库的目录 仓库的目录应该在服务器目录下 即 D:/svnData
e.g. svnadmin create D:/svnData/projectA
第三步:配置文件D:/svnData/projectA/conf 目录下的三个文件
修改svnserve.conf文件
例如将文件内容改成如下

anon-access = none
password-db = passwd

authz-db = authz

修改passwd文件,添加一个用户
lkw,并设置密码为123456
lkw = 123456


修改authz文件,为你刚才建立的用户设置权限
[/]
lkw = rw

第四步:导入版本库文件
e.g. import D:/tmp/shopbackend svn://localhost/projectA 这样就将shopbackend下的文件 存储到了第二步建立的projectA版本库