一种多层次软件版本管理辅助系统的制作方法

文档序号:37162120发布日期:2024-03-01 11:58阅读:13来源:国知局
一种多层次软件版本管理辅助系统的制作方法

本发明属于计算机,具体涉及一种多层次软件版本管理辅助系统。


背景技术:

1、目前,软件版本管理系统尚处于不成熟的探索阶段,现有开发过程大多以直接使用svn等同步版本管理软件,以代码同步为主,忽视文件级别的版本管理和开发过程中非同步版本管理需求的易用性。

2、在现有svn系统中,主要以“用户需要保持代码,开发环境和开发工具为最新版本”为目的。但是在工业应用中,并非越新的代码和工具就越符合需求,因为现场环境的复杂性和供应商的限制,有时也需要大量复用旧代码,并希望相同系统在不同现场之间维持不同的软件版本和工具版本,这大大增加了在工业应用领域使用svn等商业应用开发版本管理工具的难度。

3、由于在工业领域,存在着与商业开发逻辑完全不同的“传帮带”体系,使得版本管理软件的重要性被削弱,工业领域软件版本管理的重要性被版本管理工具开发商和用户长期忽视。现有版本管理工具的基本功能和业务逻辑重视对最新版本的维护,不重视对历史版本的维护和引用,不符合现代工业应用软件的开发需求。


技术实现思路

1、本发明的目的是为了解决现有技术的不足,提供了一种多层次软件版本管理辅助系统。本发明完成了对现有svn系统的功能升级,使得系统更加符合当下工业应用软件团队开发的需求。

2、本发明是通过以下技术方案实现的:

3、一种多层次软件版本管理辅助系统,本系统采用的是b/s架构,包括两台服务器:一台是主服务器,运行所有的服务进程和数据库,实现多层异步管理功能;一台是数据服务器,作为软件代码库,用来保存全部的软件代码;

4、本系统启动后,为数据服务器上保存的全部文件进行一次归档,将全部工程的工程名、路径收集保存在一个表中;将全部的文件路径、路径权限和路径的最终修改日期以工程为索引保存在数个数据表中;将文件名、文件所属工程信息和文件最终修改日期,通过以路径为索引,保存在数据库的数个表中;

5、当用户通过浏览器连接本系统后,全部工程会以菜单的形式显示在网页中,用户能够选择新建工程,更新到指定的本地路径,或者将本地文件更新到系统,系统会在用户本地建立svn目录并与数据服务器同步;

6、当用户需要复用旧版本并建立分支时,系统复制对应的工程表并重命名,然后将新工程表映射到旧工程的全部路径表上;当用户创建新文件或修改旧文件时,系统在数据服务器中为文件创建一个新的路径,该路径会拥有新的路径名并保存在与旧文件路径相同的上级路径下;当用户需要拉取分支到本地时,系统会通过路径表直接拉取未被修改的旧文件路径和新文件路径到本地,已经被修改的旧文件路径会被忽略;当用户需要对比新旧文件的差异时,系统会直接拉取新旧两个路径的全部文件到本地缓存目录,并给出本地路径到浏览器中;

7、当同类别的不同工程或者工程的不同版本之间需要合并并保存分支时,系统会新建工程表,并列出工程包含的所有路径供用户选择,选择好后,系统从新旧工程中分别复制对应的路径表并映射到新工程表下。

8、在上述技术方案中,当多个开发者之间需要对同一个工程进行异步更新时,比如开发者a需要a路径的最新版,开发者b需要a路径的旧版并不需要以后更信息更新到最新版时,系统会在a的本地拉取a的最新版,在b的本地通过svn拉取a的某一个旧版本,并且在b的分支上复制相对应的路径表,将b的分支保存在与最新版文件路径相同的上级路径下。

9、在上述技术方案中,使用python开发主服务器的服务进程,使用mysql系统本身的数据管理,使用python和svn实现数据服务器的代码基本管理功能。

10、在上述技术方案中,所述主服务器的服务进程包括:

11、主服务进程,实现系统的全部功能,由windows命令行通过python虚拟机启动;

12、主监视进程,在主服务进程意外终止时尝试重新启动该进程;

13、副监视进程,记录来自python的输出日志和与之链接的mysql日志内容并写入文件;

14、数据服务器通讯进程,运行在主服务器上,实现与数据服务器上svn的文件传输功能。

15、在上述技术方案中,主服务器与数据服务器交互数据传输文件通过数据服务器通讯进程实现,传输基于tcp/ip协议。

16、在上述技术方案中,只有主服务器才能访问mysql数据库,数据库不对外开放。

17、在上述技术方案中,用户通过浏览器和内网访问系统时,会在访问者的浏览器内存中建立副本,用于为该用户提供系统服务,多个用户同时访问时互相无法感知到彼此。

18、在上述技术方案中,本系统启动时,首先启动主监视进程,主监视进程将根据配置文件中定义的启动顺序,依次启动其它各进程,并在启动过程中,建立进程间或与外部系统的通讯连接。

19、本发明的优点和有益效果为:

20、本发明建立了一套一对多的文件版本数据表和能够对该表进行灵活操作的业务逻辑。着重解决现有版本管理系统在旧代码的管理,合并和复用任务中存在的功能不齐全,操作不便利的问题。为常见的工业软件开发场景提供方便合理的版本管理功能,将工业软件开发场景下的常见功能都提升的系统的最上层,大大降低版本管理软件的空间占用,开发人员的工作效率和版本管理软件在工业软件开发场景下的使用难度。

21、本系统可以显著提高版本管理系统的易用性,避免因现有版本管理系统的功能缺失而迫使开发人员自己手动管理代码版本,造成代码丢失或无法溯源的情况发生。避免了因现有版本管理系统的功能不适合而导致用户依赖与新建和复制整个分支使得系统资源和内存空间大量浪费,以及后继维护者难以对过于膨大和缺乏指引性的文件系统进行维护的问题;避免了因为现有版本管理系统在系统性管理旧代码的功能上过于负责和不直观,使得开发者不得不严重依赖文档或数据管理员,造成挤占开发时间,效率低下的问题发生。



技术特征:

1.一种多层次软件版本管理辅助系统,其特征在于:本系统采用的是b/s架构,包括两台服务器:一台是主服务器,运行所有的服务进程和数据库,实现多层异步管理功能;一台是数据服务器,作为软件代码库,用来保存全部的软件代码;

2.根据权利要求1所述的多层次软件版本管理辅助系统,其特征在于:当多个开发者之间需要对同一个工程进行异步更新时,比如开发者a需要a路径的最新版,开发者b需要a路径的旧版并不需要以后更信息更新到最新版时,系统会在a的本地拉取a的最新版,在b的本地通过svn拉取a的某一个旧版本,并且在b的分支上复制相对应的路径表,将b的分支保存在与最新版文件路径相同的上级路径下。

3.根据权利要求1所述的多层次软件版本管理辅助系统,其特征在于:使用python开发主服务器的服务进程,使用mysql系统本身的数据管理,使用python和svn实现数据服务器的代码基本管理功能。

4.根据权利要求1所述的多层次软件版本管理辅助系统,其特征在于:所述主服务器的服务进程包括:

5.根据权利要求4所述的多层次软件版本管理辅助系统,其特征在于:主服务器与数据服务器交互数据传输文件通过数据服务器通讯进程实现,传输基于tcp/ip协议。

6.根据权利要求1所述的多层次软件版本管理辅助系统,其特征在于:只有主服务器才能访问mysql数据库,数据库不对外开放。

7.根据权利要求1所述的多层次软件版本管理辅助系统,其特征在于:用户通过浏览器和内网访问系统时,会在访问者的浏览器内存中建立副本,用于为该用户提供系统服务,多个用户同时访问时互相无法感知到彼此。

8.根据权利要求4所述的多层次软件版本管理辅助系统,其特征在于:本系统启动时,首先启动主监视进程,主监视进程将根据配置文件中定义的启动顺序,依次启动其它各进程,并在启动过程中,建立进程间或与外部系统的通讯连接。


技术总结
本发明公开了一种多层次软件版本管理辅助系统,本系统为数据服务器上保存的全部文件进行一次归档,将全部工程的工程名、路径收集保存在一个表中;将全部的文件路径、路径权限和路径的最终修改日期以工程为索引保存在数个数据表中;将文件名、文件所属工程信息和文件最终修改日期,通过以路径为索引,保存在数据库的数个表中。系统将把任务划分为以下情况:工程的旧版本在新运行环境中复用时需要分支的情况;工程的不同版本之间需要合并并保存分支的情况;同类别的不同工程需要合并并保存分支的情况;多个开发者需要在相同工程上分别保存分支并能够互相异步更新的情况。本发明为常见的工业软件开发场景提供了方便合理的版本管理功能。

技术研发人员:鲁超,张洪帅,王泽宇,刘巨伟,张力
受保护的技术使用者:天津一重电气自动化有限公司
技术研发日:
技术公布日:2024/2/29
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1