本页主题: SVN: 使用说明 打印 | 加为IE收藏 | 复制链接 | 收藏主题 | 上一主题 | 下一主题

michen
Colorless days. Keep smile.
终身成就奖 灌水天才奖
级别: 管理员

 SVN: 使用说明




中文站:http://www.subversion.org.cn
SVN安装(UNIX下):

1. 去官方网站下tag.gz文件,tag.gz里包含了svn(subversion的客户端),svnserve(subversion自己的小型server,用于独立于apache使用),svnadmin(repository的管理工具)等

2. svn网络工作模式有两种:apache+mod_dav_svn和svnserve。

3. 新建一个系统用户svn:svn(username : group)

4. ./configure

这里不用设置path,是希望在任何时候使用svn(或相关的svnserve等)时,可以直接用到,因为默认的安装,将可执行文件放在了/usr/local/bin这个默认的PATH里了

5. make

6. make install

至此安装完毕。SVN 管理:

这一部分主要是指管理repository,使用svnadmin等。

首先使用svn登录系统。下面的操作都在svn的主目录里进行。

1. 使用

$ svnadmin help

$ svnserve help

可以查看svnadmin和svnserve的帮助信息。

2. 创建repository

2.1 可以把所有的项目都放在一个repos里,

/path/to/repos/ProjectA,

/path/to/repos/ProjectB

然后每个项目下再建立各自的trunk,branch,tag。这样的好处是对于svn使用时帐号的管理及其他一些hooks等可以共享,管理起来只需一次,代价是灵活性可能不够或者达到某种灵活性需要复杂配置。

也可以每个项目建立独立的repos

/path/to/ProjectArepos

/path/to/ProjectBrepos

当然每个下面也建自己的trunk,branch,tag等。这种设置的好处显然就是有足够的灵活性,但是管理工作就多一些,特别是当有几个项目的设置相同时,修改了一个,就要修改其他的。

2.2 使用

$ svnadmin create /path/to/repos

默认创建的是FSFS型的repos,还有BerkerleyDB型的,使用--fs-type来指定类型。

$ svnadmin create --fs-type fsfs /path/to/repos

$ svnadmin create --fs-type bdb /path/to/repos

现在假设项目名称叫MIS,建立repos如下:

$ svnadmin create –fs-type fsfs /home/svn/mis

这样svnadmin就生成了mis目录,其下还有许多辅助目录。

其中/home/svn/mis/conf是这个repos的配置文件存放的地方,/home/svn/mis/hooks是hooks脚本的存放位置。

3. 启动svnserve。使用

$ svnserve -d -r /home/svn

来启动svnserve。其中-d参数是让svnserve以deamon模式运行在后台,-r参数使得客户端只能访问到后面指定的目录以下的内容(这里是/home/svn下的内容)。

4. 设置访问用户名和口令

/home/svn/mis/conf里是mis这个repos的配置文件,svnserve.conf是主配置文件,默认的里面有(记得打开[general]前的注释,并且让[general]位于行首)

[general]

anon-access = read

auth-access = write

password-db = passwd



这里将anon-access的访问权限从read改为none,然后就可以在passwd(password-db指定的,这里位置为/home/svn/mis/conf/passwd)里配置帐号和口令了。

在/home/svn/mis/conf/passwd里[user]下加入下面一行

deller = dellerpwd

这样就可以用deller:dellerpwd来访问了。

关于配置文件的更多信息,可以参考

$ man svnserve.conf,

5. 项目中repos布局

根据实践经验,一个项目的生存周期也不是单线的,常常有一些分支(分支剧情?)或者稳定版发布或者特定功能的实验性加入等事件,repos的布局需要进行一定设计来支持这些“事件”。常见的布局是这样的

Project/trunk

Project/branches

Project/tags

trunk是项目主体存放位置

branches是项目的各种分支的存放

tag往往用于公开发布的版本的存档,类似与milestone。

建立这样的布局的方法有许多,svn-book上说可以用svn mkdir等命令逐一建立,然后提交。还有一个比较便捷的方法如下(使用svn import):

$ mkdir tmpdir

$ cd tmpdir

$ mkdir trunk

$ mkdir branches

$ mkdir tags



$ svn import . file:///path/to/repos --message 'Initial repository layout'

说明:

a. 这里仍然是按照前面的一个项目一个repos来做的,如果是多个项目共用一个repos时,就要在tmpdir下先建立这些项目,再在其下建立各自的trunk等

b. 注意最后的svn import一句中的file://这是不可少的,因为这个操作是在repos的服务器端,这样做Initial repository import时,可能svnserve没有启动,但是由于svn支持本地直接访问,所以可以完成,而这时,就是通过“file://”来告诉svn目前是在操作本地repos的,比如linux下,/home/svn/mis为一个repos,那么应该写为“file:///home/svn/mis”

6. repos的删除,注意不是清空。可能有svnadmin的命令吧,但其实只要删掉repos的目录就完全删除了,比如

$ rm -rf /home/svn/mis

7. 更多的管理功能包括:repos的查看(svnlook),repos的清除、恢复、备份、迁移(svnadmin)等主题。
顶端 Posted: 2007-04-12 17:02 | [楼 主]
michen
Colorless days. Keep smile.
终身成就奖 灌水天才奖
级别: 管理员

 

D:\svn\bin>sc create svnserve binpath= "d:\svn\bin\svnserve.exe --service --root
E:\SVN" displayname= "Subversion" depend= tcpip start= auto
[SC] CreateService 成功
顶端 Posted: 2008-02-14 15:12 | 1 楼
帖子浏览记录 版块浏览记录
歪歪虫 » 〖Michen`s Blog〗

Total 0.048437(s) query 6, Time now is:12-05 21:45, Gzip disabled 闽ICP备05018146号
Powered by PHPWind v6.3.2 Certificate Code © 2003-07 PHPWind.com Corporation