- 论坛徽章:
- 0
|
声明:转帖!本文出自CU的BSD版
提前声明:参考各软件官方网站以及众多网页的资料,深表感谢,不一一列出,请见谅!
目的:构建一个通过Apache的DAV扩展实现的SVN版本控制系统,支持Trac在线管理,以及简单的SVN操作
演示:http://trac.edgewall.org/(此处仅仅展示Trac在WEB体现的效果)
项目名称:test
项目目录:/home/www/svn/repository/test
管理用户:admin(读写)
测试用户:test(只读)
一、安装 Apache:
cd /usr/ports/www/apache22
make WITH_BERKELEYDB=db42 install clean;rehash
# SVN 会使用到 bdb4, 所以 apache 在此要一起装起来
# /etc/rc.conf加入apache22_enable=YES
二、安装mod_python
cd /usr/ports/www/mod_python3
make install clean;rehash
三、安装 Subversion
cd /usr/ports/devel/subversion
make WITH_SVNSERVE_WRAPPER=yes WITH_MOD_DAV_SVN=yes WITH_APACHE2_APR=yes install clean ;rehash
# 让 svn 支持 apache22 的 DAV_MODULES
四、安装 Trac
cd /usr/ports/www/trac
make install clean;rehash
cd /usr/ports/www/trac-webadmin/;make install clean;rehash
cd /usr/ports/www/trac-accountmanager;make install clean;rehash
五、初始目录设置:
# 设定 SVN 基本环境目录
mkdir -p /home/www/svn/repository/test # 路径自行决定后再更改即可
svnadmin create --fs-type bdb /home/www/svn/repository/test # svn 初始化
chown -R www:www /home/www/svn/repository
# 设定 Trac 基本环境目录
mkdir -p /home/www/trac/test/
trac-admin /home/www/trac/test initenv
chown -R www:www /home/www/trac
六、建立帐号和权限:
htpasswd -cm /etc/svn-auth-file admin # 建立SVN帐号
htpasswd -m /etc/svn-auth-file test # 第二个以后的帐号记得不要 -c
htpasswd -D /etc/svn-auth-file username # 删除用户
#/etc/svn-access-file: # 建立 SVN 权限控制文件
[/]
* = r
[test]
admin = rw
test = r
七、配置:
#/usr/local/etc/apache22/httpd.conf # 设定 apache Auth 和 DAV
LoadModule authn_file_module libexec/apache22/mod_authn_file.so
LoadModule authn_default_module libexec/apache22/mod_authn_default.so
LoadModule authz_host_module libexec/apache22/mod_authz_host.so
LoadModule authz_user_module libexec/apache22/mod_authz_user.so
LoadModule authz_default_module libexec/apache22/mod_authz_default.so
LoadModule auth_basic_module libexec/apache22/mod_auth_basic.so
LoadModule dav_module libexec/apache22/mod_dav.so
LoadModule dav_svn_module libexec/apache22/mod_dav_svn.so
LoadModule dav_svn_module libexec/apache22/mod_dav_svn.so
LoadModule authz_svn_module libexec/apache22/mod_authz_svn.so
#/usr/local/etc/apache22/Includes/svn.conf # 设定SVN@Apache
DAV svn
# SVNPath /home/www/svn/repository/test
SVNListParentPath On
SVNParentPath /home/www/svn/repository
AuthType Basic
AuthName "Feloo Subversion Repository"
AuthUserFile /etc/svn-auth-file
Require valid-user
AuthzSVNAccessFile /etc/svn-access-file
#/usr/local/etc/apache22/Includes/trac.conf # 设定Trac@Apache
LoadModule python_module libexec/apache22/mod_python.so
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /home/www/trac/test
PythonOption TracUriRoot /trac
AuthType Basic
AuthName "Feloo Trac Projects"
AuthUserFile /etc/svn-auth-file
Require valid-user
#/home/www/trac/test/conf/trac.ini
default_charset = gbk
[components]
acct_mgr.* = enabled
webadmin.* = enabled
七、测试:
1. Trac
trac-admin /home/www/trac/test permission add admin TRAC_ADMIN
tracd --port 8000 /home/www/trac/test
lynx http://ip:8000
中止
2. svn
svn import 本地目录 http://ip/svn/test -m "测试"
3. http
http://ip/svn/
http://ip/trac/ admin登陆设置Accounts: Configuration:HtPasswdStore:/etc/svn-auth-file
八、SVN基础操作:
1. 检出项目作为自己的开发副本 【检出】
目的:将服务器的项目文件拷贝到本地
命令:svn checkout http://server/svn/test/
例如:svn checkout http://ip/svn/test/
2. 更新 【更新】
目的:将服务器上更新的内容同步到本地
命令:svn update
说明:执行后,相关的状态如下:
U 更新成功
A 新增内容
D 已删除内容
R 内容被删除后重新添加过
G 合并服务器和本地更新的内容
C 服务器和本地更新不能自动合并,需要手工处理
3. 修改 【本地文件操作】【添加】【修改】
目的:对本地项目做出一定的修改,再commit时提交到服务端操作
命令:svn add|delete|copy|move 文件1 [文件2]
4. 检查修改 【检查更新】【差异】【还原】
目的:检查本地修改和服务器的差异
命令:
状态报告:svn status [文件] [-v]
差异对比:svn diff [文件]
还原内容:svn revert [文件]
5. 解决冲突【已解决的】
更新:svn update
文件名.mine
文件名.r上一版本号
文件名.r最新版本号
修改完成以后:
解决冲突:svn resolved 文件
6. 提交修改 【提交】
svn commit -m "更新说明"
九、附加信息:
SVN官站:
http://subversion.tigris.org/
SVN中文手册:
http://svnbook.red-bean.com/index.zh.html
TRAC官站
http://trac.edgewall.org/
SVN简介:
http://www.ibm.com/developerworks/cn/java/j-subversion/
TortoiseSVN官站:(Windows系统的与Explorer完美结合的svn客户端工具)
http://tortoisesvn.tigris.org/
TortoiseSVN中文手册:
http://tortoisesvn.net/docs/release/TortoiseSVN_zh_CN/index.html
其他信息:
http://www.baidu.com/s?wd=svn
http://www.google.cn/search?q=svn
http://search.cn.yahoo.com/search?p=svn
http://search.chinaunix.net/?q=svn
http://bbs.chinaunix.net/forumdisplay.php?fid=99
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/55904/showart_436842.html |
|