0.说明各种项目应用事例
1.单人单项目
对于单人,提供密码认证才能进入仓库目录,然后才能访问仓库文件.维护工作就集中于trunk的主流版本目录.
对与想开发其中模块再集合到主流版本,可以利用brances.
如果开发到一个固定版本,就可以用tags目录来建立一个可用版本的标记.
存在如下的目录结构
-website //根目录
-trunk //主流版本目录
-brances //分支目录
-tags
//版本标记目录
A.建立仓库
//建立仓库的根目录.
#mkdir /usr/local/repo
//建立仓库
#/usr/local/subversion/bin/svnadmin create
/usr/local/repo/website
//改写目录的权限,要不其他人没法存取
#cd /usr/local/repo
//目录及子目录对所有人都可以读写
#chmod -R 777 .
B.添加仓库信息到httpd.conf. Subversion 的 Repository 目錄不要放到
apache 設定的文件根目錄裡面.
这样可以避免出现 301 Moved Permanently 的错误提示.
//httpd.conf for subverion 部分的设置
<Location /repo>
DAV svn
# any "/svn/foo" URL will map to a repository /usr/local/svn/foo
SVNParentPath /usr/local/repo
</Location>
//建立密码文件和用户test1
#/usr/local/apache2/bin/htpasswd -c conf/passwd.conf
test1
//添加信息到httpd.conf的subvesion部分
<Location /repo>
DAV svn
# any "/svn/foo" URL will map to a repository /usr/local/svn/foo
SVNParentPath /usr/local/repo
#for auth
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile /usr/local/apache2/conf/passwd.conf
Require valid-user
</Location>
//windows平台下导入文件.假设安装了tortoisesvn
1.建立四个目录
-website //根目录
-trunk //主流版本目录
-brances //分支目录
-tags
//版本标记目录
2.退出website,右键->import
3.填写url为
http://localhost/repo/website/trunk.导入于主流版本目录
4.确定
//windows平台下导出文件.
1.其他地方建立一个新的文件夹website.
2.右键->checkout.需要提供用户和密码访问
3.填写url为
http://localhost/repo/website/trunk.
4.确定
2.多人单项目
1.项目说明
单人维护一个主流版本.放于trunk目录里面
多人开发通过单人或者是多人维护代表不同的模块.每个模块就是一个分支brances,
某个时期出现了一个稳定版本,就标记为一个发布版本,tags来做标记.
2.密码认证和权限管理.
有密码认证.trunk目录对项目经理是可以读写,其他人只读.
建立的分支,分配给开发人员.可以针对某一个或多个开发人员有读写权限,其他开发人员有只读,或者是不可以读.
//存在如下的目录结构:
-website //根目录
-trunk //主流版本目录
-brances //分支目录
-tags
//版本标记目录
//建立多个用户
#/usr/local/apache2/bin/htpasswd conf/passwd.conf test0
//项目经理
#/usr/local/apache2/bin/htpasswd conf/passwd.conf test1
//小组组长
#/usr/local/apache2/bin/htpasswd conf/passwd.conf test2
//开发人员
#/usr/local/apache2/bin/htpasswd conf/passwd.conf test3
//开发人员
#/usr/local/apache2/bin/htpasswd conf/passwd.conf test4
//开发人员
//建立目录结构
1.建立四个目录
-website //根目录
-trunk //主流版本目录
-brances //分支目录
-tags
//版本标记目录
2.退出website,右键->import
3.填写url为
http://localhost/repo/website/ 导入目录结构
4.确定
//导入维护的主流版本
1.退出website,右键->import
2.填写url为
http://localhost/repo/website/trunk
3.确定
//导出一个工作副本.
如前单项目的导出
//建立一个分支.在副本目录下
1.退出website,右键->branch/tags
2.填写url为
http://localhost/repo/website/brances/website_v1.0
3.确定
//建立权限控制文件auth.conf
[groups]
//建立两个小组developer0 和 developer1.其中包括用户
developer0 = test1 ,test2
developer1 = test3 ,test4
[website:/]
//根目录,对项目经理test0可读写.其他人可读
test0 = rw
@developer0 = r
@developer1 = r
[website:/trunk]
test0 = rw
@developer0 = r
@developer1 = r
[website:/branches/website_v1.0]
//分支目录对于项目经理可读写,对于组developer0可读写,其他组只读
test0 = rw
@developer0 = rw
@developer1 = r
//添加信息到httpd.conf的subvesion部分
<Location /repo>
DAV svn
# any "/svn/foo" URL will map to a repository /usr/local/svn/foo
SVNParentPath /usr/local/repo
#for auth
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile /usr/local/apache2/conf/passwd.conf
#for access
AuthzSVNAccessFile /usr/local/apache2/conf/auth.conf
#for who to access
Require valid-user
</Location>
3.多人多项目
有两个项目.website 和 website2
每个项目有项目经理.负责维护主流版本的更新.主流版本放于根目录里面的trunk中.
对于开发人员,建立一个分支,作为主流版本的副本,在副本上开发自己的模块.
模块开发完成,项目经理和开发人员商议.合并到主流版本中
多个开发人员开发同一个模块,需要一个小组负责人,统一每天各小组提供的代码,解决冲突问题.
更新最新版本的分支副本.
也会出现一个开发人员.参与一个以上的模块的开发.需要对多个模块都有读写权限
存在如下的目录结构:
-website //根目录
-trunk //主流版本目录
-brances //分支目录
-tags
//版本标记目录
-website2 //根目录
-trunk //主流版本目录
-brances //分支目录
-tags
//版本标记目录
权限控制如前的,修改!
###############################################
问题集:
1.复制和移动的仓库不是被使用?
只能是svnadmin create 来创建