分类: 系统运维
2009-12-04 15:22:02
在办公室的台式机上安装了svn服务器
1. 环境和软件准备
操作系统: windows vista sp1
Window-Subvsersion : http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
Windows 常用客户端 TortoiseSVN :
下载 subversion 服务器软件和客户端,并默认安装(可以重新启动操作系统,以更新图标显示)。
我下载到了Setup-Subversion-1.5.5.msi, 安装路径 C:\Program Files\Subversion\
常用客户端 TortoiseSVN原来就安装了
2. 配置管理
2.1. 创建仓库 (svnadmin)
在硬盘上创建个空目录,作为 SVN 的仓库目录。如: E:\svnroot\repository 。
下面使用两种方式创建仓库的初时文件结构和存储方式。命令方式和 TortoiseSVN 客户端方式,后面所有文档都采用两种方式说明,其功能完全相同。请根据实际情况选择使用。
命令方式( DOS 下):
# 默认方式,采用 FSFS 方式存储数据,这是推荐方式,管理和迁移相对 bdb 方式简单
svnadmin create E:\svnroot\repository
或
svnadmin create –fs-type bdb E:\svnroot\repository
上为bdb的文件系统方式, 一般默认是native的FS即 NTFS
TortoiseSVN 客户端
版本的 SVN1.5.5
1. 使用 window exporer 或我的电脑,定位到 E:\svnroot\repository ,并确保本目录为空。
2. 在本目录下,右键菜单中选择“ TortoiseSVN ”- > “ Create repository here… ”
3. 检查本目录下是否有生产的系统文件和文件夹,如果有,成功!
2.2. 配置服务
进入仓库目录下的 conf 文件夹。也就是 E:\svnroot\repository\conf
里面有 3 个默认的配置文件: authz , passwd , svnserve.conf
svnserve.conf 控制 svnserve 的启动配置选项,可以配置认证和授权方式,典型的配置是设置由 authz 控制授权, passwd 控制认证的方式来控制访问权限。也可以使用匿名方式,但不推荐。
使用 authz 和 passwd 的典型配置:
请特别注意:以下三个配置文件的配置,每行有效配置前不能有空格,不然配置会失败。
服务配置文件 svnserve.conf
……
### 匿名方式不允许访问
anon-access = none
……
### Uncomment the line below to use the default password file.
### 表示访问仓库的认证有文件 passwd 提供的账户确定
password-db = passwd
……
### Uncomment the line below to use the default authorization file.
### 表示认证后的账户访问权限由文件 authz 定义
authz-db = authz
### This option specifies the authentication realm of the repository.
……
#realm = My First Repository
认证配置文件 passwd
passwd 文件实际提供访问本仓库的账户管理,文件格式就是 ini 方式的格式
[users]
# harry = harryssecret
# sally = sallyssecret
testuser1=testuser1
testuser2=testuser2
这表示本仓库配置了二个用户及:其中一个用户 testuser1, 他的访问密码是 testuser1。
访问密码可以使用明文,也可以使用 htpasswd.exe ( apache 服务器提供的工具方法,安装 apache 服务器后,在其 bin 目录中有该程序文件)进行加密处理。
授权配置文件 authz
该文件负责认证后的用户的权限控制,配置稍微复杂,但其实也就是个 ini 配置文件而已。
典型配置:
# groups 段提供配置组的功能 , 但组成员必须是 passwd 文件中定义的用户才有效。可以对组
# 进行权限控制,所有组成员具有组对应的访问权限。
[groups]
# 表示定义了一个管理组叫 admin_group, 包括 harry 和 sally , admin_group 前千万不能有空格
admin_group=testuser1
dev_group=testuser2
# 下面就是定义具体仓库下目录的访问权限
# 一般对管理员来说都具有整个仓库的读写权限,一般人员对整个敞开具有读取权限,下面
# 就是这样的配置 ,[/] 表示整个仓库的根,组的引用使用 @ ,对应的权限可以是 r,w,rw 或空
[/]
@admin_group = rw
@dev_group = rw
* = r
[/test_project]
@admin_group = rw
@dev_group = rw
* = r
[repository:/]
@admin_group = rw
@dev_group = rw
* = r
以上的配置完成后,就可以启动服务器了,下面说明服务器的启动。
注意,以上 authz 和 passwd 文件在管理中因为具体项目的加入和人员的变动会经常的修改,这也是 SVN 管理主要的工作
2.3. 启动服务 (svnserve)
Svn 服务器一般有三种方式, svnserve , apache 和 SSH 。
其中常用的有 svnserve 和 apache 方式。本文只以 svnserve 方式讲解。总的来说 svnserve 是最高效的方式,一般应用于内部开发网中使用。
Apache 方式因为可以很好的部署在 internet 上,所以公网使用最方便,但配置稍微相对复杂点点,呵呵~~。三种方式具体的优缺点,请参考本文后面的参考文档。
命令方式( DOS 下):
svnserve –d –r E:\svnroot\repository
svnserve –d –r "E:\svnroot\repository"
-d 参数是以独立服务的方式启动
-r 是制订要加载的仓库的物理路径
但这个方法我用就不行, 报 使用 "svnserve --help" 得到用法
Windows 系统服务
添加为系统服务
方法1(推荐):
在Windows NT中(包括Windows XP, Windows 2000, Windows 2003 Server, Windows vista)本身包含了一个安装服务的工具,叫做"Service Control",也就是sc.exe。
1.安装为服务:
例:我的Subversion安装在"C:\Program Files\Subversion",版本库在"E:\svnroot\repository",而我希望对应的Subversion服务名为svnservice,安装这个svn服务的命令就可以这样写:
SC create svnservice binPath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service --root \"E:\svnroot\repository\"" displayname= "SVNService" depend= Tcpip
请注意,因为便于察看,上面的命令分为多行,但在实际执行时应该在一行里。另外,在以前启动svnserve时会使用"-d"选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。同样,"-i"和"-t"选项也不能使用。
另
外还有两点需要小心处理。首先,如果路径中包括空格,一定要用“\”处理“"”号,例如上面的例子中如果svnserve.exe在“C:
\Program Files\Subversion\bin\svnserve.exe”中,则命令应该写为“binpath=
"\"C:\Program Files\Subversion\bin\svnserve.exe\"”(“”中的内容):
SC
create svnservice binPath= "\"C:\Program
Files\Subversion\bin\svnserve.exe\" --service --root
\"E:\svnroot\repository\"" displayname= "SVNService" depend= Tcpip
其次,sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是“=”前不能有空各,而后面必须有空格。
2.启动服务
在命令行窗口执行完这个命令之后,服务还没有启动,你可以继续运行"net start svnservice"启动这个服务。
3.停止服务
然后使用"net stop svnservice"停止服务。
4.删除服务
如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行"sc delete svnservice","svnservice"就是我们创建服务时使用的名字。
5.配置服务是自动启动
默认情况下安装的服务不会随Windows的启动而启动,为了使svn服务能够随Windows启动而启动,需要修改一下"sc create"命令(首先要删除),增加"start= auto"选项:
SC create svnservice binPath= "\"C:\Program
Files\Subversion\bin\svnserve.exe\" --service --root
\"E:\svnroot\repository\"" displayname= "SVNService" depend= Tcpip
start= auto
SC create svnservice binPath= "\"C:\Program
Files\Subversion\bin\svnserve.exe\" --service -r
\"E:\svnroot\repository\"" displayname= "SVNService" depend= Tcpip
start= auto
当然你也可以使用图形化的工具修改服务的属性,你可以在“开始->运行...”中执行"services.msc",然后在界面中修改。
在vista下要以管理员的权限运行CMD, 否则会出现权限问题.
在 subversion1.4 后的版本,提供了安装为服务的支持
可以参考本文安装: .
注意以下方法没有实际做过
------
导入项目
在E:\projects\test_project下建 temp目录 结构如下
temp
|--test_project
|--branches
|--tags
|--trunk
在temp目录上点 TortoiseSVN -> Import
输入 svn://192.168.3.213
和用户名和密码后ld项目导入成功