svn安装使用指南
时间:2006-03-15 来源:sungaoyong
debian ununtu系统通用
孙高勇2005-11-01
1,软件下载安装
sudo apt-get install subversion subversion-tools esvn
配置本地访问的SVN
执行svn --version,你将看到如下画面
sungaoyong@ubuntu:~$ svn --version
svn,版本 1.2.0 (r14790)
编译于 Jun 29 2005,12:46:42
Copyright (C) 2000-2005 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
可使用以下的档案库存取 (RA) 模块:
* ra_dav : 通过WebDAV (DeltaV) 协议访问档案库的模块。
- handles 'http' scheme
- handles 'https' scheme
* ra_svn : 使用svn网络协议访问档案库的模块。
- handles 'svn' scheme
* ra_local : 访问本地磁盘的档案库模块。
- handles 'file' scheme
如果你有ra_local这个模块,那么客户端就可以用file:// URLs的地址来访问。
2,建立版本库(Repository)
执行一下命令
sungaoyong@ubuntu:~$ svnadmin create /home/sungaoyong/subversion
sungaoyong@ubuntu:~$ ls /home/sungaoyong/subversion
conf dav db format hooks locks README.txt
3,配置用户和权限
来到/home/sungaoyong/subversion/conf目录,修改svnserve.conf:
# [general]
# password-db = passwd
改为:
[general]
password-db = passwd
然后修改同目录的passwd文件,去掉下面三行的注释:
# [users]
# harry = harryssecret
# sally = sallyssecret
最后变成:
[users]
harry = harryssecret
sally = sallyssecret
注意要顶格写
4,运行独立服务器
在任意目录下运行:
svnserve -d -r /home/sungaoyong/subversion/
我们的服务器程序就已经启动了。
sungaoyong@ubuntu:~$ svnserve --help
用户:svnserve [选项]
有效选项:
-d [--daemon] : 后台模式
--listen-port arg : 监听端口(后台模式)
--listen-host arg : 监听主机名或IP地址(后台模式)
--foreground : 在前台运行(调试时有用)
-h [--help] : 显示这个帮助
--version : 显示版本信息
-i [--inetd] : inetd 模式
-r [--root] arg : 服务根目录
-R [--read-only] : 不赞成;使用档案库配置文件
-t [--tunnel] : 隧道模式
--tunnel-user arg : 隧道用户名(模式是当前用户UID的名字)
-T [--threads] : 使用线程代替进程
-X [--listen-once] : 监听一次(调试时有用)
5.初始化导入
来到我们想要导入的项目根目录,在这个例子里是/home/sungaoyong/initproject,目录下有一个readme.txt文件.
sungaoyong@ubuntu:~$ svn import /home/sungaoyong/test file:///home/sungaoyong/subversion/ -m 'initial'
也可使用
sungaoyong@ubuntu:~$ svn import /home/sungaoyong/test svn://localhost -m 'initial'
初试化导入。
6.websvn安装
sungaoyong@ubuntu:~$ sudo apt-get install websvn
sungaoyong@ubuntu:~$ dpkg-reconfigure websvn
parent repositories
填写/home/sungaoyong/subversion/
就是你的建立版本库(Repository)的路径。
打开浏览器http://127.0.0.1/websvn/
就可以使用了。
SVN的访问地址
Schema Access Method
file:/// direct repository access (on local disk)
http:// access via WebDAV protocol to Subversion-aware Apache server
https:// same as http://, but with SSL encryption.
svn:// access via custom protocol to an svnserve server
svn+ssh:// same as svn://, but through an SSH tunnel.
7.配置成Apache的模块
配置通过apache来验证和访问有个好处就是绕过防火墙,一般对80是不会有什么防火墙限制的,省却了不少的麻烦
可以这样
svn list http://host.example.com/repos1
如果有https支持就可以
svn list https://host.example.com/repos1
安装模块
sungaoyong@ubuntu:~$ sudo apt-get install libapache2-svn
然后在httpd.conf里面再加入
<Location /repos1>
DAV svn
SVNPath /home/sungaoyong/subversion/
AuthType Basic
AuthName "repos1"
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>
恩,配置部分就好了,还差验证文件
sudo htpasswd -cm /etc/svn-auth-file admin
New password:
Re-type new password:
Adding password for user admin
就像这样就好了。admin 就可以输入密码登陆了
然后,会提示输入密码,这里就加入了一个用户了。然后再加一个用户:
sudo htpasswd -m /etc/svn-auth-file user2
http://127.0.0.1/repos1/
即可根据用户和密码登陆。
控制权限的设置
修改前面的httpd.conf设置,添加如下
<Location /repos1>
DAV svn
SVNPath /home/sungaoyong/subversion/
AuthType Basic
AuthName "repos1"
AuthUserFile /etc/svn-auth-file
Require valid-user
AuthzSVNAccessFile d:/svn/svn-access-file
</Location>
添加了行AuthzSVNAccessFile d:/svn/svn-access-file
下面,就要写这个svn-access-file文件了,它是用来控制用户访问仓库的权限的,我们把说明写在后面
[svn1:/] //这表示,仓库svn1的根目录下的访问权限
harry = rw // svn1仓库harry用户具有读和写权限
sally = r // svn1仓库sally用户具有读权限
[svn2:/] //svn2仓库根目录下的访问权限
harry = r // harry用户在svn2仓库根目录下只有读权限
sally = // sally用户在 svn2仓库根目录下无任何权限
#[/] // 这个表示在所有仓库的根目录下
#* = r // 这个表示对所有的用户都具有读权限
#[groups] // 这个表示群组设置
#svn1-developers = harry, sally // 这个表示某群组里的成员
#svn2-developers = sally
#[svn1:/]
#@svn1-developers = rw // 如果在前面加上@符号,则表示这是个群组权限设置
将这个设置完成后。重启Apache,就可以通过http访问了。认证文件AuthzSVNAccessFile能控制每一个目录的权限
8.svn的使用
创建SVN库
此操作一般由svn用户创建:
svnadmin create --fs-type [fsfs|bdb] /home/svn/NewResp
导入文件夹下的数据到库中
类似于copy,应该使用非root用户操作:
svn import /usr/local/zopeinstance/PloneMailBoxer file:///home/svn/NewResp/PloneMailBoxer
注意:导入后一般需要把本地的程序删除后,再checkout
checkout
svn checkout file:///home/svn/NewResp/PloneMailBoxer PloneMailBoxer
注意,必须写目录
编辑修改操作
添加一个文件到svn
svn add filename
注意不需要写库的url
从svn中删除一个文件
svn delete filename
比较当前更改
svn diff
比较文件状态
svn status
获取最新版本
如果别人也更改了其他的文件,需要使用此命令得到其他人的最新更改。
svn update
如果update发生冲突,svn resolve
取消修改
svn revert
提交修改
svn commit:全部提交
svn commit filename 提交某个文件
孙高勇2005-11-01
1,软件下载安装
sudo apt-get install subversion subversion-tools esvn
配置本地访问的SVN
执行svn --version,你将看到如下画面
sungaoyong@ubuntu:~$ svn --version
svn,版本 1.2.0 (r14790)
编译于 Jun 29 2005,12:46:42
Copyright (C) 2000-2005 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
可使用以下的档案库存取 (RA) 模块:
* ra_dav : 通过WebDAV (DeltaV) 协议访问档案库的模块。
- handles 'http' scheme
- handles 'https' scheme
* ra_svn : 使用svn网络协议访问档案库的模块。
- handles 'svn' scheme
* ra_local : 访问本地磁盘的档案库模块。
- handles 'file' scheme
如果你有ra_local这个模块,那么客户端就可以用file:// URLs的地址来访问。
2,建立版本库(Repository)
执行一下命令
sungaoyong@ubuntu:~$ svnadmin create /home/sungaoyong/subversion
sungaoyong@ubuntu:~$ ls /home/sungaoyong/subversion
conf dav db format hooks locks README.txt
3,配置用户和权限
来到/home/sungaoyong/subversion/conf目录,修改svnserve.conf:
# [general]
# password-db = passwd
改为:
[general]
password-db = passwd
然后修改同目录的passwd文件,去掉下面三行的注释:
# [users]
# harry = harryssecret
# sally = sallyssecret
最后变成:
[users]
harry = harryssecret
sally = sallyssecret
注意要顶格写
4,运行独立服务器
在任意目录下运行:
svnserve -d -r /home/sungaoyong/subversion/
我们的服务器程序就已经启动了。
sungaoyong@ubuntu:~$ svnserve --help
用户:svnserve [选项]
有效选项:
-d [--daemon] : 后台模式
--listen-port arg : 监听端口(后台模式)
--listen-host arg : 监听主机名或IP地址(后台模式)
--foreground : 在前台运行(调试时有用)
-h [--help] : 显示这个帮助
--version : 显示版本信息
-i [--inetd] : inetd 模式
-r [--root] arg : 服务根目录
-R [--read-only] : 不赞成;使用档案库配置文件
-t [--tunnel] : 隧道模式
--tunnel-user arg : 隧道用户名(模式是当前用户UID的名字)
-T [--threads] : 使用线程代替进程
-X [--listen-once] : 监听一次(调试时有用)
5.初始化导入
来到我们想要导入的项目根目录,在这个例子里是/home/sungaoyong/initproject,目录下有一个readme.txt文件.
sungaoyong@ubuntu:~$ svn import /home/sungaoyong/test file:///home/sungaoyong/subversion/ -m 'initial'
也可使用
sungaoyong@ubuntu:~$ svn import /home/sungaoyong/test svn://localhost -m 'initial'
初试化导入。
6.websvn安装
sungaoyong@ubuntu:~$ sudo apt-get install websvn
sungaoyong@ubuntu:~$ dpkg-reconfigure websvn
parent repositories
填写/home/sungaoyong/subversion/
就是你的建立版本库(Repository)的路径。
打开浏览器http://127.0.0.1/websvn/
就可以使用了。
SVN的访问地址
Schema Access Method
file:/// direct repository access (on local disk)
http:// access via WebDAV protocol to Subversion-aware Apache server
https:// same as http://, but with SSL encryption.
svn:// access via custom protocol to an svnserve server
svn+ssh:// same as svn://, but through an SSH tunnel.
7.配置成Apache的模块
配置通过apache来验证和访问有个好处就是绕过防火墙,一般对80是不会有什么防火墙限制的,省却了不少的麻烦
可以这样
svn list http://host.example.com/repos1
如果有https支持就可以
svn list https://host.example.com/repos1
安装模块
sungaoyong@ubuntu:~$ sudo apt-get install libapache2-svn
然后在httpd.conf里面再加入
<Location /repos1>
DAV svn
SVNPath /home/sungaoyong/subversion/
AuthType Basic
AuthName "repos1"
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>
恩,配置部分就好了,还差验证文件
sudo htpasswd -cm /etc/svn-auth-file admin
New password:
Re-type new password:
Adding password for user admin
就像这样就好了。admin 就可以输入密码登陆了
然后,会提示输入密码,这里就加入了一个用户了。然后再加一个用户:
sudo htpasswd -m /etc/svn-auth-file user2
http://127.0.0.1/repos1/
即可根据用户和密码登陆。
控制权限的设置
修改前面的httpd.conf设置,添加如下
<Location /repos1>
DAV svn
SVNPath /home/sungaoyong/subversion/
AuthType Basic
AuthName "repos1"
AuthUserFile /etc/svn-auth-file
Require valid-user
AuthzSVNAccessFile d:/svn/svn-access-file
</Location>
添加了行AuthzSVNAccessFile d:/svn/svn-access-file
下面,就要写这个svn-access-file文件了,它是用来控制用户访问仓库的权限的,我们把说明写在后面
[svn1:/] //这表示,仓库svn1的根目录下的访问权限
harry = rw // svn1仓库harry用户具有读和写权限
sally = r // svn1仓库sally用户具有读权限
[svn2:/] //svn2仓库根目录下的访问权限
harry = r // harry用户在svn2仓库根目录下只有读权限
sally = // sally用户在 svn2仓库根目录下无任何权限
#[/] // 这个表示在所有仓库的根目录下
#* = r // 这个表示对所有的用户都具有读权限
#[groups] // 这个表示群组设置
#svn1-developers = harry, sally // 这个表示某群组里的成员
#svn2-developers = sally
#[svn1:/]
#@svn1-developers = rw // 如果在前面加上@符号,则表示这是个群组权限设置
将这个设置完成后。重启Apache,就可以通过http访问了。认证文件AuthzSVNAccessFile能控制每一个目录的权限
8.svn的使用
创建SVN库
此操作一般由svn用户创建:
svnadmin create --fs-type [fsfs|bdb] /home/svn/NewResp
导入文件夹下的数据到库中
类似于copy,应该使用非root用户操作:
svn import /usr/local/zopeinstance/PloneMailBoxer file:///home/svn/NewResp/PloneMailBoxer
注意:导入后一般需要把本地的程序删除后,再checkout
checkout
svn checkout file:///home/svn/NewResp/PloneMailBoxer PloneMailBoxer
注意,必须写目录
编辑修改操作
添加一个文件到svn
svn add filename
注意不需要写库的url
从svn中删除一个文件
svn delete filename
比较当前更改
svn diff
比较文件状态
svn status
获取最新版本
如果别人也更改了其他的文件,需要使用此命令得到其他人的最新更改。
svn update
如果update发生冲突,svn resolve
取消修改
svn revert
提交修改
svn commit:全部提交
svn commit filename 提交某个文件
相关阅读 更多 +
排行榜 更多 +