基于SVN的WEB文档版本管理系统的研究与实现

2019-01-23 08:10
福建质量管理 2018年23期
关键词:批量名称文档

(武汉轻工大学农业信息化 湖北 武汉 430023)

一、引言

随着软件开发规模的逐渐扩大,以及软件开发复杂性的逐步提高,软件开发团队由一个向多个的转变,导致软件开发过程中的各种类型文档变得越来越多,以及文档的管理越来越混乱。因而如何高效有序的对各种类型文档的管理在整个软件工程领域具有至关重要的作用。

SVN(Subversion)是一款当前在软件开发过程中很流行的软件版本管理工具,它能够准确记录每一次配置项的变更、同时也支持用户会退到之前指定的一个版本。同时SVN的安全性会更高,它从系统和控制的角度进行了“有机”和“无缝”的整合,能够和Apache2进行整合,通过http协议访问SVN仓库。虽然SVN作为版本管理工具具备很多优秀的功能,但是缺少友好的管理界面,用户对人员、权限进行维护和管理的时候困难重重。

本文基于SVN,设计和实现一款基于WEB的文档版本管理系统,采用安全组的权限控制机制,方便用户在界面上对文档的访问、删除、更新版本、回退等操作进行控制。

二、系统设计

(一)系统需求

文档版本管理系统应允许授权用户按需建立目录,允许用户以目录的方式查找相关文件,允许授权的用户批量上传指定本地目录下的所有文档,允许授权的用户批量上传指定本地目录下的所有文档。当进行本地目录文档批量上传时,文档版本管理系统应在指定的上传目录下自动建立和本地上传目录同样层级结构和名称的文档目录结构。

文档版本管理系统应允许用户批量下载指定目录内的所有文档。当批量下载指定目录时,应在本地指定目录下建立跟文档版本管理系统中同样的文档目录结构。

文档版本管理系统的目录和文档应支持“数字+文本”的命名方式。

文档版本管理系统应支持文档历史记录。功能包括:每次上传新版本时,允许填入提交说明,并作为历史信息记录,同时自动记录上传时间和操作用户。允许浏览和下载文档的历史版本,允许用户恢复到指定的版本的文档,应支持在指定目录下通过名称来检索相关文件。

上传文件时,若待上传文件的名称(相对路径和文档名称)和指定位置下的文件(相对路径和文档名称)重名时,则认为是对已有文档的版本升级。

(二)系统结构图

将SVN集成到WEB系统是通过SVNKIT(SVN提供的JAVA版SVN客户端库)来实现的,当用户发起更新请求的时候,系统首先验证该用户是否具备操作权限,如果不具备操作权限,则返回,具备操作权限,则通过SVNKIT操作SVN的工作拷贝,然后通过SVN的工作拷贝操作SVN版本库。系统结构图如下图1:

图1 系统结构图

(三)关键技术实现

在将SVN和WEB系统集成的过程中有两大难点,一是如何将SVN的用户和WEB系统用户集成,二是如何将WEB系统权限和SVN权限控制机制集成。

1.SVN用户和FADP用户集成

思路是现将SVN服务器和apache集成,以便可以通过http请求能够直接访问SVN的仓库。然后再和MYSQL集成,最后配置SVN人员验证的数据库表来源于WEB系统的人员表。

2.SVN权限和FADP平台权限集成

思路:将WEB系统的安全组权限控制机制生成SVN能够识别的auth文件。在WEB系统中预先定义映射规则,例如:删除、添加、变更权限对应auth文件中的RW权限,查看权限对应auth文件中的R权限。现在用户张三(zhangSan)具备A文件夹的删除权限,那么将WEB系统的权限转换成SVN能够识别的auth权限控制文件的内容如下:

[aliases]

[groups]

test#test=zhangSan

[A:/]

@test#test=rw

三、结束语

本系统目前实现了上传、新建文件夹、重命名、删除等功能,后面会继续和客户沟通,进一步完善文档版本管理的功能。

猜你喜欢
批量名称文档
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
批量提交在配置分发中的应用
基于RI码计算的Word复制文档鉴别
沪港通一周成交概况
沪港通一周成交概况
沪港通一周成交概况
沪港通一周成交概况
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
在数控车床上批量钻铰孔类工件的实践