公司最近想做一个类似代码托管平台的产品。管理公司的代码。
所以就研究了 svn和git。
1. svn是中央集权式的管理,能够一级一级详细授权。但是不是分布式的,如果代码量和人太多,管理困难。
利用svnkit提供的API,进行了代码仓库的创建,仓库路径下文件夹的查询。
通过代码改access和auth文件,
在linux下 利用svnadmin命令,如 svnadmin create 版本库名等。进行版本库的新建删除等。
2.GIt开源的思想,授权只能到项目级别。java做的有gitlab。
然后说一下利用svnkit进行svn代码仓库的开发的大体实现
1.svnkit的接口可以创建版本库、创建用户等服务端的操作。包含大量workspace端的操作,如检出、按版本号检出等。官方文档说的很详细。
2.经过版本迭代,最后仅用svnkit进行获取代码仓库的目录结构。在授权时,展现代码仓库的目录树。
3.创建版本、dump和load版本库 均使用的是svnamdin 命令,如svnadmin create path/repositoryName 创建一个版本库
4.版本库的删除是直接删除版本库文件。
5.授权处理 是将授权路径和人已经用户组的关系写到表中,更新授权时,重新生成一个svn_access_file,然后通过sftp,将该文件传到远程服务器,替换原有文件。用户数据也是存表,然后和svn_access_file一样,生成svn_auth_file并放到svn服务器上。
6.用户组,可以加人,也可以将存在的用户组加入其中。
7.授权操作,可以单独授权也可批量进行授权。