CN117608638A - 一种多层次软件版本管理辅助系统 - Google Patents

一种多层次软件版本管理辅助系统 Download PDF

Info

Publication number
CN117608638A
CN117608638A CN202311568280.1A CN202311568280A CN117608638A CN 117608638 A CN117608638 A CN 117608638A CN 202311568280 A CN202311568280 A CN 202311568280A CN 117608638 A CN117608638 A CN 117608638A
Authority
CN
China
Prior art keywords
file
path
old
paths
data server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311568280.1A
Other languages
English (en)
Inventor
鲁超
张洪帅
王泽宇
刘巨伟
张力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cfhi Tianjin C E Electrical Automation Co ltd
Original Assignee
Cfhi Tianjin C E Electrical Automation Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cfhi Tianjin C E Electrical Automation Co ltd filed Critical Cfhi Tianjin C E Electrical Automation Co ltd
Priority to CN202311568280.1A priority Critical patent/CN117608638A/zh
Publication of CN117608638A publication Critical patent/CN117608638A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

一种多层次软件版本管理辅助系统
技术领域
本发明属于计算机技术领域,具体涉及一种多层次软件版本管理辅助系统。
背景技术
目前,软件版本管理系统尚处于不成熟的探索阶段,现有开发过程大多以直接使用svn等同步版本管理软件,以代码同步为主,忽视文件级别的版本管理和开发过程中非同步版本管理需求的易用性。
在现有svn系统中,主要以“用户需要保持代码,开发环境和开发工具为最新版本”为目的。但是在工业应用中,并非越新的代码和工具就越符合需求,因为现场环境的复杂性和供应商的限制,有时也需要大量复用旧代码,并希望相同系统在不同现场之间维持不同的软件版本和工具版本,这大大增加了在工业应用领域使用svn等商业应用开发版本管理工具的难度。
由于在工业领域,存在着与商业开发逻辑完全不同的“传帮带”体系,使得版本管理软件的重要性被削弱,工业领域软件版本管理的重要性被版本管理工具开发商和用户长期忽视。现有版本管理工具的基本功能和业务逻辑重视对最新版本的维护,不重视对历史版本的维护和引用,不符合现代工业应用软件的开发需求。
发明内容
本发明的目的是为了解决现有技术的不足,提供了一种多层次软件版本管理辅助系统。本发明完成了对现有svn系统的功能升级,使得系统更加符合当下工业应用软件团队开发的需求。
本发明是通过以下技术方案实现的:
一种多层次软件版本管理辅助系统,本系统采用的是B/S架构,包括两台服务器:一台是主服务器,运行所有的服务进程和数据库,实现多层异步管理功能;一台是数据服务器,作为软件代码库,用来保存全部的软件代码;
本系统启动后,为数据服务器上保存的全部文件进行一次归档,将全部工程的工程名、路径收集保存在一个表中;将全部的文件路径、路径权限和路径的最终修改日期以工程为索引保存在数个数据表中;将文件名、文件所属工程信息和文件最终修改日期,通过以路径为索引,保存在数据库的数个表中;
当用户通过浏览器连接本系统后,全部工程会以菜单的形式显示在网页中,用户能够选择新建工程,更新到指定的本地路径,或者将本地文件更新到系统,系统会在用户本地建立svn目录并与数据服务器同步;
当用户需要复用旧版本并建立分支时,系统复制对应的工程表并重命名,然后将新工程表映射到旧工程的全部路径表上;当用户创建新文件或修改旧文件时,系统在数据服务器中为文件创建一个新的路径,该路径会拥有新的路径名并保存在与旧文件路径相同的上级路径下;当用户需要拉取分支到本地时,系统会通过路径表直接拉取未被修改的旧文件路径和新文件路径到本地,已经被修改的旧文件路径会被忽略;当用户需要对比新旧文件的差异时,系统会直接拉取新旧两个路径的全部文件到本地缓存目录,并给出本地路径到浏览器中;
当同类别的不同工程或者工程的不同版本之间需要合并并保存分支时,系统会新建工程表,并列出工程包含的所有路径供用户选择,选择好后,系统从新旧工程中分别复制对应的路径表并映射到新工程表下。
在上述技术方案中,当多个开发者之间需要对同一个工程进行异步更新时,比如开发者A需要a路径的最新版,开发者B需要a路径的旧版并不需要以后更信息更新到最新版时,系统会在A的本地拉取a的最新版,在B的本地通过svn拉取a的某一个旧版本,并且在B的分支上复制相对应的路径表,将B的分支保存在与最新版文件路径相同的上级路径下。
在上述技术方案中,使用python开发主服务器的服务进程,使用mysql系统本身的数据管理,使用python和svn实现数据服务器的代码基本管理功能。
在上述技术方案中,所述主服务器的服务进程包括:
主服务进程,实现系统的全部功能,由windows命令行通过python虚拟机启动;
主监视进程,在主服务进程意外终止时尝试重新启动该进程;
副监视进程,记录来自python的输出日志和与之链接的mysql日志内容并写入文件;
数据服务器通讯进程,运行在主服务器上,实现与数据服务器上svn的文件传输功能。
在上述技术方案中,主服务器与数据服务器交互数据传输文件通过数据服务器通讯进程实现,传输基于TCP/IP协议。
在上述技术方案中,只有主服务器才能访问mysql数据库,数据库不对外开放。
在上述技术方案中,用户通过浏览器和内网访问系统时,会在访问者的浏览器内存中建立副本,用于为该用户提供系统服务,多个用户同时访问时互相无法感知到彼此。
在上述技术方案中,本系统启动时,首先启动主监视进程,主监视进程将根据配置文件中定义的启动顺序,依次启动其它各进程,并在启动过程中,建立进程间或与外部系统的通讯连接。
本发明的优点和有益效果为:
本发明建立了一套一对多的文件版本数据表和能够对该表进行灵活操作的业务逻辑。着重解决现有版本管理系统在旧代码的管理,合并和复用任务中存在的功能不齐全,操作不便利的问题。为常见的工业软件开发场景提供方便合理的版本管理功能,将工业软件开发场景下的常见功能都提升的系统的最上层,大大降低版本管理软件的空间占用,开发人员的工作效率和版本管理软件在工业软件开发场景下的使用难度。
本系统可以显著提高版本管理系统的易用性,避免因现有版本管理系统的功能缺失而迫使开发人员自己手动管理代码版本,造成代码丢失或无法溯源的情况发生。避免了因现有版本管理系统的功能不适合而导致用户依赖与新建和复制整个分支使得系统资源和内存空间大量浪费,以及后继维护者难以对过于膨大和缺乏指引性的文件系统进行维护的问题;避免了因为现有版本管理系统在系统性管理旧代码的功能上过于负责和不直观,使得开发者不得不严重依赖文档或数据管理员,造成挤占开发时间,效率低下的问题发生。
附图说明
图1:本发明的系统架构图。
图2:本发明的系统运行逻辑图。
对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据以上附图获得其他的相关附图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合具体实施例进一步说明本发明的技术方案。
一种多层次软件版本管理辅助系统,本系统采用的是B/S架构,包括两台服务器:一台是主服务器,运行所有的服务进程和数据库,实现多层异步管理功能;一台是数据服务器,作为软件代码库,用来保存全部的软件代码。
使用python开发主服务器的服务进程,使用mysql系统本身的数据管理,使用python和svn实现数据服务器的代码基本管理功能。
所述主服务器的服务进程包括:
1、cabsvn_main主服务进程,实现系统的全部功能,由windows命令行通过python虚拟机启动。
2、overpower_main主监视进程,在主服务进程意外终止时尝试重新启动该进程。
3、overpower_log副监视进程,记录来自python的输出日志和与之链接的mysql日志内容并写入文件。
4、server_line数据服务器通讯进程,运行在主服务器上,实现与数据服务器上svn的文件传输功能。
进程间的通讯基于TCP/IP通讯,通讯所需的ip地址、端口号等信息存储在*.py配置文件中,运行环境启动时,自动加载配置信息。
主服务器与数据服务器交互数据传输文件通过server_line进程实现,传输基于TCP/IP协议。
只有主服务器才能访问mysql数据库,数据库不对外开放。
用户通过浏览器和内网访问系统时,会在访问者的浏览器内存中建立副本,用于为该用户提供系统服务,多个用户同时访问时互相无法感知到彼此。
本系统启动时,首先启动overpower_main进程,overpower_main进程将根据配置文件中定义的启动顺序,依次启动其它各进程,并在启动过程中,建立进程间或与外部系统的通讯连接。
根据不同的需求,系统将会把任务划分为以下情况:
1、工程的旧版本在新运行环境中复用时需要分支的情况;
2、工程的不同版本之间需要合并并保存分支的情况;
3、同类别的不同工程需要合并并保存分支的情况;
4、多个开发者需要在相同工程上分别保存分支并能够互相异步更新的情况。
本系统启动后,会为数据服务器上保存的全部文件进行一次归档,将全部工程的工程名、路径收集保存在一个表中;将全部的文件路径、路径权限和路径的最终修改日期以工程为索引保存在数个数据表中;将文件名、文件所属工程信息和文件最终修改日期,通过以路径为索引,保存在数据库的数个表中。当用户通过浏览器连接本系统时,需要验证登录信息后才可以使用系统功能,全部工程会以菜单的形式显示在网页中,用户可以选择新建工程,更新到指定的本地路径,或者将本地文件更新到系统,系统会在用户本地建立svn目录并与数据服务器同步。
当用户需要复用旧版本并建立分支时,系统复制对应的工程表并重命名,然后将新工程表映射到旧工程的全部路径表上。当用户创建新文件或修改旧文件时,系统在数据服务器中为文件创建一个新的路径,该路径会拥有新的路径名并保存在与旧文件路径相同的上级路径下;当用户需要拉取分支到本地时,系统会通过路径表直接拉取未被修改的旧文件路径和新文件路径到本地,已经被修改的旧文件路径会被忽略;当用户需要对比新旧文件的差异时,系统会直接拉取新旧两个路径的全部文件到本地缓存目录,并给出本地路径到浏览器中。
当同类别的不同工程或者工程的不同版本之间需要合并并保存分支时,系统会新建工程表,并列出工程包含的所有路径供用户选择,选择好后,系统从新旧工程中分别复制对应的路径表并映射到新工程表下。
当多个开发者之间需要对同一个工程进行异步更新时,比如开发者A需要a路径的最新版,开发者B需要a路径的旧版并不需要以后更信息更新到最新版。系统会在A的本地拉取a的最新版,在B的本地通过svn拉取a的某一个旧版本,并且在B的分支上复制相对应的路径表,将B的分支保存在与最新版文件路径相同的上级路径下。
以上对本发明做了示例性的描述,应该说明的是,在不脱离本发明的核心的情况下,任何简单的变形、修改或者其他本领域技术人员能够不花费创造性劳动的等同替换均落入本发明的保护范围。

Claims (8)

1.一种多层次软件版本管理辅助系统,其特征在于:本系统采用的是B/S架构,包括两台服务器:一台是主服务器,运行所有的服务进程和数据库,实现多层异步管理功能;一台是数据服务器,作为软件代码库,用来保存全部的软件代码;
本系统启动后,为数据服务器上保存的全部文件进行一次归档,将全部工程的工程名、路径收集保存在一个表中;将全部的文件路径、路径权限和路径的最终修改日期以工程为索引保存在数个数据表中;将文件名、文件所属工程信息和文件最终修改日期,通过以路径为索引,保存在数据库的数个表中;
当用户通过浏览器连接本系统后,全部工程会以菜单的形式显示在网页中,用户能够选择新建工程,更新到指定的本地路径,或者将本地文件更新到系统,系统会在用户本地建立svn目录并与数据服务器同步;
当用户需要复用旧版本并建立分支时,系统复制对应的工程表并重命名,然后将新工程表映射到旧工程的全部路径表上;当用户创建新文件或修改旧文件时,系统在数据服务器中为文件创建一个新的路径,该路径会拥有新的路径名并保存在与旧文件路径相同的上级路径下;当用户需要拉取分支到本地时,系统会通过路径表直接拉取未被修改的旧文件路径和新文件路径到本地,已经被修改的旧文件路径会被忽略;当用户需要对比新旧文件的差异时,系统会直接拉取新旧两个路径的全部文件到本地缓存目录,并给出本地路径到浏览器中;
当同类别的不同工程或者工程的不同版本之间需要合并并保存分支时,系统会新建工程表,并列出工程包含的所有路径供用户选择,选择好后,系统从新旧工程中分别复制对应的路径表并映射到新工程表下。
2.根据权利要求1所述的多层次软件版本管理辅助系统,其特征在于:当多个开发者之间需要对同一个工程进行异步更新时,比如开发者A需要a路径的最新版,开发者B需要a路径的旧版并不需要以后更信息更新到最新版时,系统会在A的本地拉取a的最新版,在B的本地通过svn拉取a的某一个旧版本,并且在B的分支上复制相对应的路径表,将B的分支保存在与最新版文件路径相同的上级路径下。
3.根据权利要求1所述的多层次软件版本管理辅助系统,其特征在于:使用python开发主服务器的服务进程,使用mysql系统本身的数据管理,使用python和svn实现数据服务器的代码基本管理功能。
4.根据权利要求1所述的多层次软件版本管理辅助系统,其特征在于:所述主服务器的服务进程包括:
主服务进程,实现系统的全部功能,由windows命令行通过python虚拟机启动;
主监视进程,在主服务进程意外终止时尝试重新启动该进程;
副监视进程,记录来自python的输出日志和与之链接的mysql日志内容并写入文件;
数据服务器通讯进程,运行在主服务器上,实现与数据服务器上svn的文件传输功能。
5.根据权利要求4所述的多层次软件版本管理辅助系统,其特征在于:主服务器与数据服务器交互数据传输文件通过数据服务器通讯进程实现,传输基于TCP/IP协议。
6.根据权利要求1所述的多层次软件版本管理辅助系统,其特征在于:只有主服务器才能访问mysql数据库,数据库不对外开放。
7.根据权利要求1所述的多层次软件版本管理辅助系统,其特征在于:用户通过浏览器和内网访问系统时,会在访问者的浏览器内存中建立副本,用于为该用户提供系统服务,多个用户同时访问时互相无法感知到彼此。
8.根据权利要求4所述的多层次软件版本管理辅助系统,其特征在于:本系统启动时,首先启动主监视进程,主监视进程将根据配置文件中定义的启动顺序,依次启动其它各进程,并在启动过程中,建立进程间或与外部系统的通讯连接。
CN202311568280.1A 2023-11-23 2023-11-23 一种多层次软件版本管理辅助系统 Pending CN117608638A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311568280.1A CN117608638A (zh) 2023-11-23 2023-11-23 一种多层次软件版本管理辅助系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311568280.1A CN117608638A (zh) 2023-11-23 2023-11-23 一种多层次软件版本管理辅助系统

Publications (1)

Publication Number Publication Date
CN117608638A true CN117608638A (zh) 2024-02-27

Family

ID=89957278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311568280.1A Pending CN117608638A (zh) 2023-11-23 2023-11-23 一种多层次软件版本管理辅助系统

Country Status (1)

Country Link
CN (1) CN117608638A (zh)

Similar Documents

Publication Publication Date Title
US6341291B1 (en) System for collaborative engineering using component and file-oriented tools
US6223187B1 (en) Distributed synchronization of databases
US7127509B2 (en) System and method for synchronizing objects between two devices
US7194489B2 (en) System, method and computer program product for collaborative engineering using component and file oriented tools
US6539399B1 (en) Stand alone data management system for facilitating sheet metal part production
US5897640A (en) Method and system of associating, synchronizing and reconciling computer files in an operating system
US20010027457A1 (en) Method and apparatus for storing changes to file attributes without having to store an additional copy of the file contents
US20110087738A1 (en) System and method for distributing shared storage for collaboration across multiple devices
JPH09179824A (ja) グループウェア文書をバックアップし復元するためのシステムおよび方法
JP2003520363A (ja) 部分的に複製されるデータベースシステムのネットワークにおけるデータメンテナンス方法
US6941309B2 (en) Object integrated management system
KR100500622B1 (ko) 작업 관리 시스템 및 작업 관리 방법
US6457011B1 (en) Method of updating a shared database in a computer network
US20230315757A1 (en) Systems and methods for flexible synchronization
CN102306355A (zh) 一种it运维配置管理系统
CN111737227A (zh) 数据修改方法及系统
US11016756B1 (en) Application repository protocol for disparate entity applications
CN105593839A (zh) 分布式灾难恢复文件同步服务器系统
CN110633250B (zh) 资源管理系统和方法
CN116401407A (zh) 思维导图的节点属性配置方法、装置、设备和存储介质
Colyer et al. Depot: A tool for managing software environments
CN105550342B (zh) 一种全透明的分布式数据库的数据处理方法
US20050131825A1 (en) Distributed knowledge management system
CN117608638A (zh) 一种多层次软件版本管理辅助系统
US5615372A (en) Network definition modifying system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination