CollabNet SubversionEdge-1.3.0安装配置及管理

版本软件比较(个人片面观点):

VSS的特点是“锁定-修改-解锁”模式,其实这个个人用并不觉得有什么问题,但不能忍受的是新增文件夹和文件后VSS不能动态显示新增的内容,而需要逐个或批量手动添加。
后面工作的公司用的是Borland的StarTeam(盗版),所以近两年的版本控制就是用的StarTeam,其可以在客户端动态显示各种新增、删除等状态的各种文件。(其它功能不做评价)但是StarTeam的服务端只能装在NT服务器上(Window 2003等),所以这两年需要提交时都是用VMware开个Win 2003提交(最近未做版本,基本上没动过了)。
因为新公司的版本控制用的是TSVN,所以最近研究了下Subversion(仅对工作而言没必要,不过我计划换自己的版本控制软件),先试用了下VisualSVN Server 2.1.4,确实简单,不过高阶功能是要收费的,而且基本上也没必要用到命令行,对后续如果真用到Linux系统的话也没有什么好处。所以这几天研究了一下CollabNet SubversionEdge-1.3.0(下载需要注册,但仅此而已)。
在网上没有查到CollabNet SubversionEdge-1.3.0的用户管理等相关问题,而我实际中却实实在在碰到了,以下是对个人使用碰到的问题进行说明,并仅代表个人观点。

测试环境

仅在Window 7下运行测试过。

下载安装:

在 http://subversion.apache.org/packages.html 页面提供了多种系统下的Subversion的版本下载。我使用的是CollabNet SubversionEdge-1.3.0 的Win32版本(需要先注册)。
安装没什么好说的,一路回车就好。

用户管理

SubversionEdge分两类用户:版本库授权用户和控制台用户。
控制台默认用户是:admin,密码admin;版本库默认用户admin,密码admin。但两者保存位置是分开的,账户和密码都是可以分开的。

控制台用户管理默认是只能增加用户,增加用户默认同时在版本库授权用户文件中增加该用户。反正我装修改删除用户都是出现下面的信息:

HTTP ERROR 404
Problem accessing /csvn/user/index. Reason:

    Not Found

--------------------------------------------------------------------------------
Powered by Jetty://

控制台用户管理:

相关重要文件:{安装路径}\data\csvn-production-hsqldb.script 和{安装路径}\data\csvn-production-hsqldb.properties

原理推测(可能不正确):

我找了几天后来才发现,控制台管理用的是hsql数据库,并且数据全部存储在内存中。
第一步:服务启动(指服务CollabNetSubversionServer绑定的httpd.exe)时,执行csvn-production-hsqldb.script在内存中初始化表和数据;
第二步:期间的所有操作都是保存在内存中;
第三步:服务关闭是,内存中的所有数据更新到csvn-production-hsqldb.script文件中。

    因为无法在页面修改删除用户,所以采用关闭服务修改csvn-production-hsqldb.script的方式可以实现用户的管理。

csvn-production-hsqldb.script示例:

CREATE SCHEMA PUBLIC AUTHORIZATION DBA
CREATE MEMORY TABLE CATEGORY(ID BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,VERSION BIGINT NOT NULL,NAME VARCHAR(255) NOT NULL)
...........................
INSERT INTO USER VALUES(1,1,'admin user','admin@rouselife.com',TRUE,'0ef9a776d895692b2710e8b996f12af6','Super Administrator','admin')

修改密码

因为htpasswd采用的密码MD5后进行了散列,所有同样密码每次出的字符串也是不同的,也没有时间验证上述0ef9a776d895692b2710e8b996f12af6是否为密码MD5后的标准值。
我的做法是:

先新建个知道密码的用户,然后关闭服务(从控制台或Win服务界面,有两个服务:CollabNetSubversionServer和CollabNet Subversion Edge),这时再打开csvn-production-hsqldb.script文件时文件末尾就会增加刚才的用户,用新的密码替换掉0ef9a776d895692b2710e8b996f12af6即可。(切忌:一定要停止服务后修改才有效,否则脚本文件会被覆盖掉。)

删除用户

关闭上面两个服务后删除csvn-production-hsqldb.script文件末尾的制定用户后启动服务即可。

版本库授权用户管理

用户存储文件为{安装路径}\data\conf\svn_auth_file,使用{安装路径}\bin\htpasswd.exe进行管理。

需要在控制台下运行,以下为输出内容(先打印三次 用户名/密码的文件存储值,然后再增加用户,最后删除用户):

Microsoft Windows [版本 6.1.7600]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\meteor>d:

D:\>cd D:\csvn\bin

D:\csvn\bin>htpasswd
Usage:
htpasswd [-cmdpsD] passwordfile username
htpasswd -b[cmdpsD] passwordfile username password

htpasswd -n[mdps] username
htpasswd -nb[mdps] username password
-c  Create a new file.
-n  Don't update file; display results on stdout.
-m  Force MD5 encryption of the password (default).
-d  Force CRYPT encryption of the password.
-p  Do not encrypt the password (plaintext).
-s  Force SHA encryption of the password.
-b  Use the password from the command line rather than prompting for it.
-D  Delete the specified user.
On Windows, NetWare and TPF systems the '-m' flag is used by default.
On all other systems, the '-p' flag will probably not work.

D:\csvn\bin>htpasswd -nb test test
Automatically using MD5 format.
test:$apr1$8zaa10Xj$H5vxdhlLDGCo94D5Xkfeu.

D:\csvn\bin>htpasswd -nb test test
Automatically using MD5 format.
test:$apr1$SlijYX9/$ahxS8zf3PPZHszCNump17/

D:\csvn\bin>htpasswd -nb test test
Automatically using MD5 format.
test:$apr1$kTeZJZWN$lg0VepXgOfutEgCd1kaM8.

//增加用户
D:\csvn\bin>htpasswd -b D:\csvn\data\conf\svn_auth_file test test
Automatically using MD5 format.
Adding password for user test

//删除用户

D:\csvn\bin>htpasswd -D D:\csvn\data\conf\svn_auth_file test
Automatically using MD5 format.
Deleting password for user test

D:\csvn\bin>

由以上可以看到密码test 3次均得到完全不同的散列值。

版本库管理

通过在线控制台的 管理->服务器配置 可以设置版本库存放路径(如下图):

20101110-215431802

可以在线增加版本库,在线增加版本库只支持小写字母和下划线,不支持大写字母。
也可以直接拷贝其它Subversion的版本库到版本库存放路径,Subversion Edge会发现该版本库(在线 版本库->发现版本库 )。
删除版本库可以直接在版本库存放路径下直接删除版本库,然后在线用发现版本库同步一下即可。

客户端一般采用TSVN就好。
netkey评论

页面无法对用户管理这是新版本中文语言包的一个bug,只需要在IE浏览器稍作设置即可。工具==》Internet选项,“常规”选项卡里的“语言”中将“英语(美国)”设置为语言的首选项即可。collabnet svn的语言包是根据浏览器的设置而变化的,使用英文语言包没有用户管理的问题。 [2011-01-22 15-18-15]


如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。