CN105487912B - 公共问题修改多分支维护系统及方法 - Google Patents

公共问题修改多分支维护系统及方法 Download PDF

Info

Publication number
CN105487912B
CN105487912B CN201510866727.2A CN201510866727A CN105487912B CN 105487912 B CN105487912 B CN 105487912B CN 201510866727 A CN201510866727 A CN 201510866727A CN 105487912 B CN105487912 B CN 105487912B
Authority
CN
China
Prior art keywords
branch
list
hash
module
git
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.)
Active
Application number
CN201510866727.2A
Other languages
English (en)
Other versions
CN105487912A (zh
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.)
Wuxi Wentai Information Technology Co., Ltd
Original Assignee
Wuxi Wentai Information Technology 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 Wuxi Wentai Information Technology Co Ltd filed Critical Wuxi Wentai Information Technology Co Ltd
Priority to CN201510866727.2A priority Critical patent/CN105487912B/zh
Publication of CN105487912A publication Critical patent/CN105487912A/zh
Application granted granted Critical
Publication of CN105487912B publication Critical patent/CN105487912B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明揭示了一种公共问题修改多分支维护系统及方法,所述系统包括:hash_list修改模块、多分支辨析模块、分支创建模块、合入执行模块;通过脚本将所述hash_list修改模块所列出的hash_list自动上传合入到分支创建模块或/和分支创建模块所分析出的branch_list。本发明提出的公共问题修改多分支维护系统及方法,可提高软件维护效率。本发明尽可能采用替代人工录入的脚本执行方法,即帮助软件人员解决了多条修改需要多分支合入提交,解决软件人员行业存在的多分支管理维护难问题,也解决了多分支验证所花费的时间;本发明在多分支维护时,效果尤为明显。

Description

公共问题修改多分支维护系统及方法
技术领域
本发明属于软件开发技术领域,涉及一种软件维护系统,尤其涉及一种公共问题修改多分支维护系统;同时,本发明还涉及一种公共问题修改多分支维护方法。
背景技术
现有的多分支维护方式,都是软件人员根据自己需要合入的hash值,来采用gitcherry-pick或者gitmerge的方法,人工建立新的分支回退到相应节点,来进行合入的。
现有方式占用了研发人员大量的时间,而且研发人员存在多分支提交无法及时验证编译,同时解决冲突不当,导致编译出问题的情况频频发生。
有鉴于此,如今迫切需要设计一种新的多分支维护方式,以便克服现有维护方式存在的上述缺陷。
发明内容
本发明所要解决的技术问题是:提供一种公共问题修改多分支维护系统,可提高软件维护效率。
此外,本发明还提供一种公共问题修改多分支维护方法,可提高软件维护效率。
为解决上述技术问题,本发明采用如下技术方案:
一种公共问题修改多分支维护系统,所述系统包括:修改hash_list模块、多分支辨析branch_list模块、分支创建模块、合入执行模块;
所述修改hash_list模块通过手动输入备份的方式做记录,或者由历史log关键字自行检索出生成;
所述多分支辨析branch_list模块采用的git方法,使用 python脚本语言获取生成,或者使用管理代码方法工具或手动录入;
所述分支创建模块用以将上述branch_list和hash_list使用git方法,新建本地分支追踪到远端,以供后续使用;
合入执行模块用以使用gitcherry-pick方式,通过轮询的方法逐一项合入hash_list到branch_list中去;
每次轮询合入后,根据界面提示字串是否包含git commit-c来确保合入是否冲突,如果冲突,则提示用户自行手动合入;
同时,每次轮询合入后,使用单独编译的方式,对合入git库进行编译验证,以确保初步的编译通过。
一种公共问题修改多分支维护系统,所述系统包括:修改hash_list模块、多分支辨析branch_list模块、分支创建模块、合入执行模块;
通过脚本将所述修改hash_list模块所列出的hash_list自动上传合入到分支创建模块或/和分支创建模块所分析出的 branch_list。
作为本发明的一种优选方案,所述修改hash_list模块通过手动输入备份的方式做记录,或者由历史log关键字自行检索出生成;
所述多分支辨析branch_list模块采用的git方法,使用 python脚本语言获取生成,或者使用管理代码方法工具或手动录入。
作为本发明的一种优选方案,所述分支创建模块用以将上述branch_list和hash_list使用git方法,新建本地分支追踪到远端,以供后续使用。
作为本发明的一种优选方案,合入执行模块用以使用 gitcherry-pick方式,通过轮询的方法逐一项合入hash_list到 branch_list中去;
每次轮询合入后,根据界面提示字串是否包含git commit-c来确保合入是否冲突,如果冲突,则提示用户自行手动合入;
同时,每次轮询合入后,使用单独编译的方式,对合入git库进行编译验证,以确保初步的编译通过。
一种公共问题修改多分支维护方法,所述方法包括:通过脚本将所述修改hash_list模块所列出的hash_list自动上传合入到分支创建模块或/和分支创建模块所分析出的branch_list。
作为本发明的一种优选方案,所述方法包括如下步骤:
修改hash_list步骤,通过手动输入备份的方式做记录,或者由历史log关键字自行检索出生成;
多分支辨析branch_list步骤,采用的git方法,使用 python脚本语言获取生成,或者使用管理代码方法工具或手动录入;
分支创建步骤,将上述branch_list和hash_list使用git方法,新建本地分支追踪到远端,以供后续使用;
合入执行步骤,使用git cherry-pick方式,通过轮询的方法逐一项合入hash_list到branch_list中去。
作为本发明的一种优选方案,每次轮询合入后,根据界面提示字串是否包含gitcommit-c来确保合入是否冲突,以提示用户自行手动合入;
同时,每次轮询合入后,使用单独编译的方式,对合入git库进行编译验证,以确保初步的编译通过。
作为本发明的一种优选方案,所述方法具体包括如下步骤:
(1)新建hash_list.txt,查找需要合入的问题hash备份, TP模拟PSENSOR校准起名为tp_psensor_hash_list.txt;在一次提交后,将所生成git库的提交都手动录入到tp_psensor_hash_list.txt;
(2)使用多分支辨析branch_list模块生成所需要录入的 branch_list,使用repo命令获取当前的所有分支名,存入到branch_list 数组,此部分模块在cherry-pick.pl中属于一个函数模块;
(3)使用分支创建模块搭建相应的环境,即调用分支创建模块的接口,开始执行合入,从branch_list中先获取一个分支名 target_branch_1,新建分支追踪到远端最新代码并切换到 target_branch_1,然后调用合入执行模块,即gitlog获取修改记录,循环判定tp_psensor_hash_list.txt中的每个hash是否在gitlog中,若存在,则继续下一个判定,即从branch_list中先获取第二个分支名 target_branch_2,若不存在,则使用git cherry-pick命令循环合入 tp_psensor_hash_list.txt中的所有hash值;
(4)合入完成后,使用单独编译命令进行验证,合入代码是否存在异常,若正常则使用repoupload直接提交推送到远端。
本发明的有益效果在于:本发明提出的公共问题修改多分支维护系统及方法,可提高软件维护效率。本发明尽可能采用替代人工录入的脚本执行方法,既帮助软件人员解决了多条修改需要多分支合入提交,也解决软件人员行业存在的多分支管理维护难问题,也解决了多分支验证所花费的时间;本发明在多分支维护时,效果尤为明显。
附图说明
图1为本发明公共问题修改多分支维护系统的组成示意图;
图2为实施例四中本发明公共问题修改多分支维护方法的流程图。
具体实施方式
下面结合附图详细说明本发明的优选实施例。
实施例一
请参阅图1,本发明揭示一种公共问题修改多分支维护系统,包括本发明包括:修改hash_list模块1、多分支辨析branch_list 模块2、分支创建模块3、合入执行模块4。
所述修改hash_list模块1可以由很多种方法生成,本案例仅仅是手动输入备份的方式做记录,亦可由历史log关键字自行检索出生成。
所述多分支辨析branch_list模块2可以采用的git方法,使用python脚本语言获取生成,其余管理代码方法工具如 svn,perl,shell,手动录入等均在本案例的保护范围以内。
所述分支创建模块3主要是将上述branch_list和 hash_list使用git方法,新建本地分支追踪到远端,好供后续使用。本方案采用git方法创建,凡符合本发明思想的,维护方式,均属保护范围以内。
合入执行模块4可以使用git cherry-pick方式,通过轮询的方法逐一项合入hash_list到branch_list中去,其他方式的库管理方式,均在本发明保护范围以内。
每次轮询合入后,会根据界面提示字串是否包含 gitcommit-c来确保合入是否冲突,以提示用户自行手动合入。
同时,每次轮询合入后,都会使用单独编译的方式,对合入git库进行编译验证,以确保初步的编译通过。
合入执行模块4可以使用repo方式统一管理提交到代码服务器上,其他方式的库管理方式,均在本发明保护范围以内。
凡运用工具实现公共问题修改多分支维护的思想,均在此发明保护范围以内。
实施例二
本发明揭示了一种公共问题修改多分支维护系统,所述系统包括:修改hash_list模块、多分支辨析branch_list模块、分支创建模块、合入执行模块;通过脚本将所述修改hash_list模块所列出的hash_list自动上传合入到分支创建模块或/和分支创建模块所分析出的branch_list。
实施例三
一种公共问题修改多分支维护方法,所述方法包括:通过脚本将修改hash_list模块所列出的hash_list自动上传合入到分支创建模块或/和分支创建模块所分析出的branch_list。
所述方法具体包括如下步骤:
修改hash_list步骤:通过手动输入备份的方式做记录,或者由历史log关键字自行检索出生成;
多分支辨析branch_list步骤:采用的git方法,使用 python脚本语言获取生成,或者使用管理代码方法工具或手动录入;
分支创建步骤:将上述branch_list和hash_list使用git方法,新建本地分支追踪到远端,以供后续使用;
合入执行步骤:使用git cherry-pick方式,通过轮询的方法逐一项合入hash_list到branch_list中去。
每次轮询合入后,根据界面提示字串是否包含git commit-c来确保合入是否冲突,以提示用户自行手动合入;
同时,每次轮询合入后,使用单独编译的方式,对合入git库进行编译验证,以确保初步的编译通过。
实施例四
请参阅图2,本实施例以以android代码管理为例,本发明公共问题修改多分支维护方法包括如下步骤:
(1)新建hash_list.txt,查找需要合入的问题hash备份,例如:TP模拟PSENSOR校准起名为tp_psensor_hash_list.txt;在一次提交后,将所生成git库的提交都手动录入到tp_psensor_hash_list.txt。
(2)使用模块(2)多分支辨析branch_list模块生成所需要录入的branch_list,使用repo命令获取当前的所有分支名,存入到branch_list数组,此部分模块在cherry-pick.pl中属于一个函数模块。
(3)使用模块(3)分支创建模块,搭建相应的环境,即调用分支创建模块的接口,开始执行合入,从branch_list中先获取一个分支名target_branch_1,新建分支追踪到远端最新代码并切换到target_branch_1,然后调用(4)合入执行模块,即gitlog获取修改记录,循环判定tp_psensor_hash_list.txt中的每个hash是否在gitlog 中,若存在,则继续下一个判定(即从branch_list中先获取第二个分支名target_branch_2),若不存在,则使用gitcherry-pick命令循环合入tp_psensor_hash_list.txt中的所有hash值。
(4)合入完成后,使用单独编译命令进行验证,合入代码是否存在异常,若正常则使用repoupload直接提交推送到远端。
综上所述,本发明提出的公共问题修改多分支维护系统及方法,可提高软件维护效率。本发明尽可能采用替代人工录入的脚本执行方法,既帮助软件人员解决了多条修改需要多分支合入提交,也解决软件人员行业存在的多分支管理维护难问题,也解决了多分支验证所花费的时间;本发明在多分支维护时,效果尤为明显。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。

Claims (3)

1.一种公共问题修改多分支维护系统,其特征在于,所述系统包括:修改hash_list模块、多分支辨析branch_list模块、分支创建模块、合入执行模块;
所述修改hash_list模块通过手动输入备份的方式做记录,或者由历史log关键字自行检索出生成;具体的包括:新建hash_list,查找需要合入的问题hash备份,在一次提交后,将所生成git库的提交都手动录入到hash_list中;
所述多分支辨析branch_list模块采用的git方法,使用python脚本语言获取生成,或者使用管理代码方法工具或手动录入;具体包括:使用多分支辨析branch_list模块生成所需要录入的branch_list,使用repo命令获取当前的所有分支名,存入到branch_list数组;
所述分支创建模块用以将上述branch_list和hash_list使用git方法,新建本地分支追踪到远端,以供后续使用;
合入执行模块用以使用git cherry-pick方式,通过轮询的方法逐一项合入hash_list到branch_list中去;
每次轮询合入后,根据界面提示字串是否包含git commit-c来确保合入是否冲突,如果冲突,则提示用户自行手动合入;
同时,每次轮询合入后,使用单独编译的方式,对合入git库进行编译验证,以确保初步的编译通过。
2.一种公共问题修改多分支维护方法,其特征在于,所述方法包括:通过脚本将修改hash_list模块所列出的hash_list自动上传合入到分支创建模块或/和分支创建模块所分析出的branch_list;
所述方法包括如下步骤:
修改hash_list步骤,通过手动输入备份的方式做记录,或者由历史log关键字自行检索生成;具体的包括:新建hash_list,查找需要合入的问题hash备份,在一次提交后,将所生成git库的提交都手动录入到hash_list中;
多分支辨析branch_list步骤,采用的git方法,使用python脚本语言获取生成,或者使用管理代码方法工具或手动录入;具体包括:使用多分支辨析branch_list模块生成所需要录入的branch_list,使用repo命令获取当前的所有分支名,存入到branch_list数组;
分支创建步骤,将上述branch_list和hash_list使用git方法,新建本地分支追踪到远端,以供后续使用;
合入执行步骤,使用git cherry-pick方式,通过轮询的方法逐一项合入hash_list到branch_list中去;
每次轮询合入后,根据界面提示字串是否包含git commit-c来确保合入是否冲突,如果冲突,则提示用户自行手动合入;
同时,每次轮询合入后,使用单独编译的方式,对合入git库进行编译验证,以确保初步的编译通过。
3.根据权利要求2所述的公共问题修改多分支维护方法,其特征在于:所述方法具体包括如下步骤:
(1)新建hash_list.txt,查找需要合入的问题hash备份,TP模拟PSENSOR校准起名为tp_psensor_hash_list.txt;在一次提交后,将所生成git库的提交都手动录入到tp_psensor_hash_list.txt;
(2)使用多分支辨析branch_list模块生成所需要录入的branch_list,使用repo命令获取当前的所有分支名,存入到branch_list数组,此部分模块在cherry-pick.pl中属于一个函数模块;
(3)使用分支创建模块搭建相应的环境,即调用分支创建模块的接口,开始执行合入,从branch_list中先获取一个分支名target_branch_1,新建分支追踪到远端最新代码并切换到target_branch_1,然后调用合入执行模块,即gitlog获取修改记录,循环判定tp_psensor_hash_list.txt中的每个hash是否在gitlog中,若存在,则继续下一个判定,即从branch_list中先获取第二个分支名target_branch_2,若不存在,则使用git cherry-pick命令循环合入tp_psensor_hash_list.txt中的所有hash值;
(4)合入完成后,使用单独编译命令进行验证,合入代码是否存在异常,若正常则使用repoupload直接提交推送到远端。
CN201510866727.2A 2015-11-30 2015-11-30 公共问题修改多分支维护系统及方法 Active CN105487912B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510866727.2A CN105487912B (zh) 2015-11-30 2015-11-30 公共问题修改多分支维护系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510866727.2A CN105487912B (zh) 2015-11-30 2015-11-30 公共问题修改多分支维护系统及方法

Publications (2)

Publication Number Publication Date
CN105487912A CN105487912A (zh) 2016-04-13
CN105487912B true CN105487912B (zh) 2020-01-10

Family

ID=55674908

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510866727.2A Active CN105487912B (zh) 2015-11-30 2015-11-30 公共问题修改多分支维护系统及方法

Country Status (1)

Country Link
CN (1) CN105487912B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107728996A (zh) * 2017-10-11 2018-02-23 郑州云海信息技术有限公司 一种git分支管理方法及装置
CN108415694A (zh) * 2018-02-28 2018-08-17 山东汇贸电子口岸有限公司 一种基于GitFlow工作流的Android敏捷开发系统及方法
CN108762736B (zh) * 2018-03-21 2022-09-02 五八有限公司 项目分支的管理方法、装置、设备及计算机可读存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101963908B (zh) * 2010-09-30 2013-04-24 山东中创软件工程股份有限公司 一种实现无结构化流程中分支动态合并的方法及装置
US9444731B2 (en) * 2013-05-24 2016-09-13 Cisco Technology, Inc. Methods and systems for data packet routing
CN104199667B (zh) * 2014-09-10 2020-04-07 漳州万利达科技有限公司 一种新建mtk工程和提交代码的方法及系统
CN104461670B (zh) * 2014-11-21 2017-11-28 闻泰通讯股份有限公司 多项目公用代码管理方法
CN104461671A (zh) * 2014-12-05 2015-03-25 闻泰通讯股份有限公司 代码修改汇报的定时管理方法及系统
CN104461578B (zh) * 2014-12-26 2018-09-11 广州品唯软件有限公司 代码自动合并方法和系统
CN104462599B (zh) * 2014-12-31 2017-11-28 闻泰通讯股份有限公司 多分支管理模式下客制化文件的维护方法
CN104484192B (zh) * 2015-01-07 2017-11-14 南威软件股份有限公司 一种复杂多分支结构代码自动生成的方法
CN105094851A (zh) * 2015-09-06 2015-11-25 浪潮软件股份有限公司 一种基于Git随时发布代码的实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于Git的分布式版本控制系统的设计与实现;刘悦之;《科技传播》;20121231;197-198 *
基于GIT的实时测控软件分布式管理方法研究;王鹏宇孙君亮项树林;《自动化技术与应用》;20150625;98-100+104 *

Also Published As

Publication number Publication date
CN105487912A (zh) 2016-04-13

Similar Documents

Publication Publication Date Title
CN109271326B (zh) 云数据库的测试方法及其装置、设备和存储介质
US8533664B2 (en) Method and system to automatically generate GUI object addressing queries
CN108763091B (zh) 用于回归测试的方法、装置及系统
US20110289489A1 (en) Concurrent cross browser testing
KR101320264B1 (ko) 웹 기반의 소프트웨어 개발 및 테스트 자동화 장치
CN102567201B (zh) 跨模型的图形用户界面测试脚本自动修复方法
CN104090776A (zh) 一种软件开发方法及系统
US9116779B2 (en) Test management domain asset discovery and analysis
CN105205053A (zh) 一种数据库增量日志解析方法及系统
CN109542765A (zh) 数据库脚本验证方法、装置、计算机设备和存储介质
CN110442371B (zh) 一种发布代码的方法、装置、介质及计算机设备
CN105487912B (zh) 公共问题修改多分支维护系统及方法
US11416512B2 (en) Systems and methods for facilitating data transformation
CN111158656B (zh) 基于因果树法的测试代码生成方法及装置
US8050785B2 (en) Apparatus and method for handling orders
CN111104155A (zh) 数据库脚本管理平台、方法及电子设备和存储介质
CN114780109B (zh) Python项目第三方库依赖自动化解析与安装方法
US20130016875A1 (en) Method, apparatus, and computer program product for generation of traceability matrices from video media
CN116630990B (zh) Rpa流程元素路径智能修复方法及系统
WO2021262283A1 (en) Reduced processing loads via selective validation specifications
CN117312270A (zh) 一种数据库自动化构建和部署的变更管理方法
CN112256365B (zh) 一种自动化管理多语言版本的方法及终端
CN105653445A (zh) 一种满足do-178c测试结果的实现方法
GB2507874A (en) Comparing man-hours for manual and automated testing
CN111414194B (zh) 一种接口信息生成方法、系统、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20191210

Address after: 214000 building a, No. 11, Changjiang South Road, Xinwu District, Wuxi City, Jiangsu Province

Applicant after: Wuxi Wentai Information Technology Co., Ltd

Address before: 10 building, 42 middle building, No. six, 710075 hi tech Road, Xi'an hi tech Zone, Shaanxi, China

Applicant before: Xi'an Wingtech Electronic Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant