`
yuanhuiwu
  • 浏览: 88076 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java Web版SVN 配置管理工具(远程建立仓库,修改密码,设置权限等)

阅读更多
注意:已经迁移到https://github.com/jsvnadmin/jsvnadmin
 
由于每次修改svn配置信息都要跑到服务器修改配置和文件,非常烦。网上没有找到我们项目合适的svn web配置工具,于是自己动手,用jsp写了一个web版的管理工具,发布到tomcat上直接可以修改配置文件,密码都加密保存,成员也可以自己登录修改,不用什么事都来烦我了,工作效率大大提高。这个是使用手册,最后面有war附件,可以试试。

SVN ADMIN 手册

 

用于Svn Admin 1.0

 

 

1.  简介

1.1.  什么是Svn Admin

Svn Admin是一个 Java 开发的管理 Svn 服务器的项目用户的 web 应用。安装好 Svn 服务器端好,把 Svn Admin 部署到 Tomcat ,就可以通过 web 浏览器管理 Svn 的项目,管理项目的用户,管理项目的权限。使得管理配置 Svn 简便,再也不需要每次都到服务器手工修改配置文件。

1.2.  有什么优点

u  Svn项目配置数据保存在数据库,支持所有数据库(默认 MySQL/Oracle/SQL Server )

u  权限控制:管理员可以随意分配权限、项目管理员可以管理项目成员、成员只能查看和修改自己的密码。这样就可以把项目SVN 配置管理交给项目经理,和项目成员。

u  支持多项目、多用户、多用户组Group (默认带有“项目管理组”、“项目开发组”、“项目测试组”)

u  安全:登录密码使用MD5 加密,每个项目成员的密码使用自带的算法加密

u  操作简单

1.3.  是否适合你

 Svn的配置信息都在仓库目录的 conf 下的 authz,passwd,svnserve.conf 三个文件中,配置用户和权限都是通过修改 passwd 和 authz ,立刻就生效。 Svn Admin 的本质是对这 3 个文件进行管理,所有成员、权限的数据都保存在数据库中,一旦在 Svn Admin 的页面上修改,就会把配置信息输出到 conf 下的那 3 个配置文件中。

假如你不是svn 管理员,或配置不是使用上述方式,你可以忽略下文。

 

2.  安装运行

2.1.  安装Svn 服务器端

     如果这个你还没有安装好,那你先抽根烟,忽略下文。

2.2.  安装Java  运行环境

 这个简单吧?不会,上网搜索一下:)

2.3.  安装Tomcat 6

  哈哈,不用我教。要我教,那你真要请我吃饭了^_^

2.4.  初始化svnadmin 数据库

  假定你已经安装好数据库,在数据库中创建一个名为svnamdin 的数据仓库,使用客户端工具连接上数据库。在发行包 db 目录中找到对应的数据库建表脚本,如 MySQL 数据库对应的是 mysql5.sql ,执行里面的 sql ,就建好 svnadmin 的表结构。

2.5.  运行

  在发行包中找到svnadmin.war 文件,修改里面的 WEB-INF\jdbc.properties 数据库连接信息。

例如你的数据库是MySQL51 ,服务器 IP 是 192.168.1.100 ,请修改红色标明的配置信息:

 

#指定当前连接数据库

db= MySQL51

 

#MySQL51

MySQL51.jdbc.driver=com.mysql.jdbc.Driver

MySQL51.jdbc.url=jdbc:mysql:// 192.168.1.100 :3306/ svnadmin ?characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull

MySQL51.jdbc.username= root

MySQL51.jdbc.password= abc123

 

修改好配置文件后,把svnadmin.war 复制到 %Tomcat%/webapps 目录下,启动 Tomcat ,假如你的 Tomcat 端口是 8080 ,在浏览器中输入 http://192.168.1.100:8080/svnadmin ,出现登录页面。说明你安装成功。

3.  实例

3.1.  需求

    假定你有一个jar 类型的 Eclipse Java 项目 projar ,假定你已经在 SVN 服务器 192.168.1.100 创建好了这个 SVN 仓库 ( 使用 svnadmin create 命令创建 svn 仓库,参考 svn 手册 ) ,目录在服务器 192.168.1.100 的 D:/repository/projar ,访问这个仓库的 svn 地址是: svn://192.168.1.100/projar ,你的项目目录分配如下:

 

projar

    |___branches

    |___tags

|___trunk

     |____.project

     |____.classpath

     |____bin

     |____src

          |____*.java

 

假定项目经理是Tom ,有一个开发人员 Ben ,一个测试人员 Kent 。你希望 Tom 有管理这个项目目录的所有权限; Ben 可以检出 trunk 目录,但只能对 trunk/src/ 目录进行写的权限; Kent 只能读项目的 tags ,检出发行版本进行测试。

 

3.2.  登录

 

浏览器打开 http://192.168.1.100:8080/svnadmin

 

登录页面

第一次使用,输入的帐号和密码是超级管理员

如输入帐号 svnamdin,密码 svnamdin ,点击【登录】,进入首页。

 

3.3.  项目管理

输入项目的基本信息,如下:

【路径】是指服务器svn 仓库的路径;【 URL 】主要是给成员查看;【父项目】请参考【高级用户】章节。其它信息随意。

点击【提交】后如下:

 

3.4.  用户资料

点击【用户资料】

输入 Tom信息,点击【提交】如下:

 

同理:(此处省略一页字,汗!!!)分别添加用户 kent和 ben 。

 

 

密码已经加密保存在数据库,结果如下:

用户就设置完成了!!!

 

此时这3 个账户已经具备默认的登录等权限,可以登录到 svn admin 修改自己的资料。 ( 参考【高级用户】 - 【权限管理】章节 )

 

3.5.  用户组管理

 

点击【项目管理(projar )】或右上角的【项目】菜单,返回项目页面

点击【设置用户组】,进入如下

点击第一行developer 的【设置用户】

在下拉框中选择kent ,点击【增加用户】,结果如下

点击【用户组管理 (projar_developer) 】,返回用户组设置页面

 

同理:(此处省略一页字,汗!!!)分别添加 tom到 管理员组 manager,添加 kent 到测试组 tester 。

 

把Tom 添加到管理组【 projar_manager 】后, Tom 已经具备默认的项目管理等权限,可以登录到 svn admin 修改项目资料、自己的用户资料和项目成员的资料。 ( 参考【高级用户】 - 【权限管理】章节 )

 

 

3.6.  设置目录权限

 

下面设置目录权限,点击【项目管理(projar )】或右上角的【项目】菜单,返回项目页面

点击【设置权限】,进入如下

 

3.7.  设置管理组权限

输入如下信息:

【资源】:[/]   表示项目的根

【用户组】:projar_manager

【权限】: 可读可写

点击【增加】

 

3.8.  设置开发组的权限

输入如下信息:

【资源】:[/trunk]

【用户组】:projar_developer

【权限】: 可读

点击【增加】

输入如下信息:

【资源】:[/trunk/src]

【用户组】:projar_developer

【权限】: 可读可写

点击【增加】

 

3.9.  设置测试组的权限

输入如下信息:

【资源】:[/tags]

【用户组】:projar_tester

【权限】: 可读

点击【增加】

结果如下:

项目经理Tom 使用 svn://192.168.1.100/projar检出整个项目,并有读写的权限;

开发人员Ben 使用 svn://192.168.1.100/projar/trunk 检出项目的 trunk 目录,可以对 trunk/src 读写,但对 trunk/.project 等只能有读的权限;

测试人员Kent 使用 svn://192.168.1.100/projar/tags 检出项目的 tags 版本目录,只可以读,不能写。

 

关于svn 目录的权限的设置技巧,已经超出本文的讨论范围,请参考 svn 管理的相关文档。

 

4.  高级用户

4.1.  输出配置文件

对于以上的例子,查看服务器192.168.1.100 的 D:/repository/projar/conf 目录

4.1.1.  svnserve.conf

[general]

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

[sasl]

 

4.1.2.  passwd

[users]

### Ben

ben=ben

 

### Kent

kent=kent

 

### Tom

tom=tom

 

4.1.3.  authz

[aliases]

[groups]

projar_developer=ben

projar_manager=tom

projar_tester=kent

### ====================== Start projar

[/]

@projar_manager=rw

[/trunk]

@projar_developer=r

[/trunk/src]

@projar_developer=rw

[/tags]

@projar_tester=r

### ====================== End projar

 

 

如果你要设置  *=

 输入如下信息:

【用户组】:不选!

【用户】:*

【权限】: 没有权限

 

4.2.  导入导出项目配置信息

     你懂的!

     可能你有很多项目,在页面上输入数据太麻烦,可以根据表结构,使用数据库到导入导出,批量插入数据到数据库里。

然后,只要在svn admin 页面随意修改一下项目的配置信息,即可把数据库的数据输出到 svn  服务器配置文件。

如在【项目管理】点击【提交】,触发修改项目信息的动作,会立刻把数据库的配置输出到配置文件。( 你总要点一下,我才知道要重新输出配置把,呵呵! )

4.3.  权限管理

  右上角菜单【登录帐户】进入【帐号管理】

  

点击【权限】进入【权限管理】,权限下拉框有系统提供的选项

 

u  项目成员默认权限: 登录,帐号管理,帐号管理- 提交,帐号管理 - 修改密码,项目管理

u  项目管理员默认权限: 登录,帐号管理,帐号管理- 提交,帐号管理 - 修改密码,项目管理,项目管理 - 修改,项目管理员

 

管理员可以分别修改每个帐号的权限,也可以使用通配符* ,例如 fun_* 代表 fun_ 开头的所有权限。 超级管理员的权限就是* 。

 

4.4.  登录账户和项目用户

登录账户和密码是指登录到svn admin 的凭证;项目用户和密码是指 svn 项目配置文件中的凭证,用于 svn 的 check out 等操作。两者可以不一样。

添加项目用户资料时,如果此时登录账户中还没有存在同名的账户信息,会自动地往账户表中添加,并配置默认的权限。此时,登录账户 ==  项目用户。

添加项目用户资料时,如果此时登录账户中存在同名的账户信息,则不会对登录账户信息做任何更新。此时,登录账户 !=  项目用户。

修改登录账户的密码,并不会对项目用户的密码有影响。同理,修改项目用户的密码,并不会对登录账户的密码有影响。

这样,就可以设置有些成员只有登录svn admin 权限,不一定具有项目成员检出 svn 项目的权限;或可以禁止项目成员登录 svn admin ,但依然可以检出 svn 的项目。

4.5.  父项目

父项目的所有子项目共享父项目的用户资料,但子项目可以设置不同的用户组和目录权限。

适合这样结构的项目:

 

parent_project

|___child_project_1

    |  |___branches

|  |___tags

|  |___trunk

|     |____.project

| |____.classpath

| |____bin

| |____src

|          |____*.java

|

|___child_project_2

     |___branches

    |___tags

|___trunk

     |____.project

    |____.classpath

     |____bin

    |____src

          |____*.java

 

 

 

5.  附录

5.1.  数据库表结构

以MySQL 数据库为例

5.2.  联系方式

 

联系方式 

QQ : 56099823

Email: yuanhuiwu@gmail.com

2011-07

 

 

 

( 完  )

11
0
分享到:
评论
17 楼 lehmann_ding 2012-04-12  
误会了,是开源的。好人啊!!!
下次有时间用用看。
16 楼 lehmann_ding 2012-04-12  
怎么不是开源项目吗???
15 楼 yuanhuiwu 2011-09-05  
1.x版本已经停止下载,请下载2.x版本
14 楼 yuanhuiwu 2011-08-26  
2.0版本将支持apache + svn 配置,使用http协议方式
http://yuanhuiwu.iteye.com/blog/1158511
13 楼 yuanhuiwu 2011-08-19  
如需要,可联系我
12 楼 hjz 2011-08-19  
你没有上传源代码,谁敢用?
11 楼 yuanhuiwu 2011-08-16  
我没有在ubuntu跑过,你的可能是编码的原因,使用UTF-8
10 楼 叶里的猫 2011-08-15  
第一次使用设置管理员账号时提示:
错误:java.sql.SQLException: Incorrect string value: '\xE8\xB6\x85\xE7\xBA\xA7...' for column 'name' at row 1

这是啥原因

我在ubuntu下面用的。。
9 楼 itlangqun 2011-08-12  
用过SVN的都知道这个有价值....
8 楼 kouwenbin 2011-08-11  
只能用oracle 10g 吗,我怎么报错啊
7 楼 yangzhanchun 2011-08-11  
正好想做这个事情,已经有人做了,太好了。呵呵。
必须顶啊!
6 楼 libai8341 2011-08-10  
这个真的是必须顶了,有时间和楼主交流
5 楼 四书五经 2011-08-09  
自己动手,
4 楼 yuanhuiwu 2011-08-08  
lococode 写道
dbo.pj 表 字段名 :des ,在用户新增处 写成 res 了??

请下载最新版本
3 楼 lococode 2011-08-08  
dbo.pj 表 字段名 :des ,在用户新增处 写成 res 了??
2 楼 lococode 2011-08-08  
Bug:
新增项目时:

错误:PreparedStatementCallback; uncategorized SQLException for SQL [select distinct res from pj_auth where pj=? order by id,res]; SQL state [HY000]; error code [145]; [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的项就必须出现在选择列表中。; nested exception is java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的项就必须出现在选择列表中。
1 楼 kgd1120 2011-07-24  
好东西,怎么没人顶呢,楼主有想法,赞一个   

相关推荐

    Java Web版SVN 配置管理工具 2.0 (远程建立仓库,修改密码,设置权限,支持apache等)

    根据提供的文件内容,我们可以提炼出关于Java Web版SVN配置管理工具(版本2.0)的关键知识点。以下是详细知识点介绍: ### SvnAdmin概述 - **SvnAdmin定义**:SvnAdmin是一款由Java开发的Web应用,旨在简化SVN...

    Java Web版SVN 远程配置管理工具

    网上没有找到合适的svn web配置工具,于是自己动手,用jsp写了一个web版的管理工具,发布到tomcat上直接可以修改配置文件,管理方便,工作效率大大提高。 附简单操作说明: 1、部署:将下载的压缩包直接解压到...

    svn 管理工具(web版)

    总的来说,Web版的SVN管理工具极大地提升了团队协作效率,通过集中式的权限管理和直观的Web界面,使得SVN的操作更加简单易用,尤其适合远程工作的团队。使用该工具,可以有效地管理项目版本,确保代码质量,同时促进...

    简单的svn web 管理 工具 源码

    SVNWebManager是一款基于Java开发的简单SVN(Subversion)Web管理工具,它提供了通过Web界面进行远程用户管理的功能。作为一个轻量级的解决方案,它对于那些希望在不安装额外客户端软件的情况下,通过网络对SVN仓库...

    svn 管理工具

    ### SVN管理工具详解 #### SVN概述 Subversion(SVN)是一种开源的版本控制系统,它在软件开发领域中被广泛采用。相比于早期的版本控制系统如RCS和CVS,SVN提供了一种更为先进和高效的分支管理机制。其设计初衷即...

    Java代码管理工具SVN简易操作说明

    **Java代码管理工具SVN简易操作说明** 在软件开发过程中,代码管理是非常关键的一环,它确保了团队成员之间的协作高效、代码版本控制有序。Subversion(简称SVN)是广泛应用的一种集中式版本控制系统,特别适合Java...

    java系列:svn

    2. 配置SVN服务器:通常,SVN服务器使用Apache Subversion或VisualSVN等软件搭建,需要设置仓库路径和访问权限。 三、基本操作 1. 检出(Checkout):获取远程仓库的最新代码到本地工作副本。 2. 提交(Commit):...

    timerTask定时任务使用java代码操作svn

    - 使用`SVNClientManager`的相应方法,如`commit()`来提交文件或目录到SVN仓库,`mkdir()`创建远程仓库的目录。 - 需要注意的是,进行SVN操作前,可能需要设置用户名和密码,以及SVN仓库的URL。 3. **创建文件夹*...

    inux centos下配置mysql,Java,SVN文本叙述

    根据提示操作,包括设置新密码、删除匿名用户、禁止远程root登录等。 二、配置Java Java是跨平台的编程语言,用于开发和运行各种应用程序。在CentOS上安装OpenJDK(开源Java开发工具包): ```bash sudo yum ...

    svn配置文件。jar

    总结来说,"svn配置文件.jar"是一个包含Subversion配置的Java归档文件,可能涉及到服务器设置、用户权限、认证机制等。理解和操作.jar文件需要一定的Java基础,而配置SVN则需要对版本控制系统有深入的理解。在实际...

    eclipse中svn工具及使用

    管理员可以通过SVN服务器设置权限,控制用户对仓库的访问,比如读取、写入和创建分支等权限。此外,SVN的hooks脚本可以实现自动化操作,如提交前的代码检查或提交后的邮件通知。 总之,Eclipse中的SVN工具是项目...

    基于Java的文件管理系统.zip

    Java文件管理系统,支持权限管理、历史版本管理、Office编辑、Office预览、在线解压缩、文件分享、文件加密、远程存储、跨仓库推送、跨服务器推送、秒传、断点续传、智能搜索、文件备注、自动备份、一键迁移。...

    myEclipse svn配置及使用图标的说明

    myEclipse是一款强大的Java集成开发环境,而Subversion(简称svn)是一种版本控制系统,用于管理代码版本,便于团队协作开发。myEclipse集成了svn功能,使得开发者可以方便地进行版本控制操作。下面我们将详细解释...

    本地SVN安装与其服务器搭建详细教程包含所有软件

    4. 配置SVN服务器:启动VisualSVN Server Manager,创建一个新的仓库,设置仓库路径,然后添加用户和权限。同时,你需要配置Apache服务器,编辑httpd.conf文件,添加必要的SVN模块和路径映射。 5. 共享项目:在创建...

    基于Web的文件管理系统(项目源码)

    基于Web的文件管理系统,支持权限管理、历史版本管理、Office编辑、Office预览、在线解压缩、文件分享、文件加密、远程存储、跨仓库推送、跨服务器推送、秒传、断点续传、智能搜索、文件备注、本地自动备份、异地...

    SVN文件管理

    设置SVN服务器涉及配置仓库路径、用户权限以及网络访问设置。 客户端则是开发者与SVN服务器交互的工具。它允许用户检出(Checkout)项目文件到本地工作副本,进行编辑,然后将更改提交(Commit)回服务器。客户端还...

    基于Web的文件管理系统,支持Office、WPS预览/编辑、在线解压缩、文件分享、文件加密、远程存储、远程文件推送、秒传、断点

    MxsDoc是基于Web的文件管理系统,支持权限管理、历史版本管理、Office预览/编辑、WPS预览/编辑、在线解压缩、文件分享、文件加密、远程存储、远程文件推送、秒传、断点续传、智能搜索、文件备注、自动备份、一键迁移...

    window无线局域网+svn

    4. **检查out项目**:使用SVN插件的Check out功能,将远程仓库中的项目检出到本地工作空间。 5. **日常操作**:在MyEclipse中,你可以方便地进行提交、更新、合并等SVN常见操作,保持与团队成员的同步。 以上,...

    svn使用方式

    11. **权限管理(Access Control)**: SVN支持基于用户和组的权限管理,可以限制对仓库或特定目录的访问。 12. **冲突检测与预防**: 使用预提交钩子脚本可以在提交前检查代码质量、格式和潜在冲突,防止问题进入...

Global site tag (gtag.js) - Google Analytics