CN111638920A - 计算机程序同步任务处理方法、装置、电子设备和介质 - Google Patents

计算机程序同步任务处理方法、装置、电子设备和介质 Download PDF

Info

Publication number
CN111638920A
CN111638920A CN202010481871.5A CN202010481871A CN111638920A CN 111638920 A CN111638920 A CN 111638920A CN 202010481871 A CN202010481871 A CN 202010481871A CN 111638920 A CN111638920 A CN 111638920A
Authority
CN
China
Prior art keywords
synchronization
branch
information
task
computer program
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.)
Granted
Application number
CN202010481871.5A
Other languages
English (en)
Other versions
CN111638920B (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202010481871.5A priority Critical patent/CN111638920B/zh
Publication of CN111638920A publication Critical patent/CN111638920A/zh
Application granted granted Critical
Publication of CN111638920B publication Critical patent/CN111638920B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44552Conflict resolution, i.e. enabling coexistence of conflicting executables

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了计算机程序同步任务处理方法,包括:获取分支同步清单,所述分支同步清单包括所述计算机程序的至少一个同步任务的任务信息,每个所述同步任务的同步任务信息包括源分支的源分支信息、目标分支的目标分支信息和冲突处理策略;基于所述分支同步清单指示的所述至少一个同步任务的执行顺序,依次执行所述每个同步任务,所述每个同步任务包括将源分支的第一计算机程序同步到目标分支;以及在所述第一计算机程序与所述目标分支中的第二计算机程序冲突的情况下,根据所述冲突处理策略处理所述同步任务。本公开还提供了一种计算机程序同步任务处理装置、电子设备和介质。

Description

计算机程序同步任务处理方法、装置、电子设备和介质
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种计算机程序同步任务处理方法、装置、电子设备和介质。
背景技术
对IT企业来说,由于计算机程序库个数成千上万,因此,计算机程序管理的成本非常高,例如同一代码库中多个不同分支之间的计算机程序同步和同步冲突跟踪会非常棘手。
目前,通常采用手工或半自动的方式进行分支同步。
发明内容
有鉴于此,本公开提供了一种计算机程序同步任务处理方法、装置、电子设备和介质。
本公开的一个方面提供了一种计算机程序同步任务处理方法,包括:获取分支同步清单,所述分支同步清单包括所述计算机程序的至少一个同步任务的任务信息,每个所述同步任务的同步任务信息包括源分支的源分支信息、目标分支的目标分支信息和冲突处理策略;基于所述分支同步清单指示的所述至少一个同步任务的执行顺序,依次执行所述每个同步任务,所述每个同步任务包括将源分支的第一计算机程序同步到目标分支;以及在所述第一计算机程序与所述目标分支中的第二计算机程序冲突的情况下,根据所述冲突处理策略处理所述同步任务。
根据本公开的实施例,该方法还包括:获取用户在前端界面上输入的同步信息,所述同步信息包括版本库的版本库信息、目标分支信息、源分支信息以及投产时间信息;基于所述同步信息,在所述版本库中创建所述目标分支;以及在创建所述目标分支的情况下,基于所述投产时间信息和所述同步信息,生成所述分支同步清单。
根据本公开的实施例,该方法还包括:每隔预设时间段对存储版本库的分支信息的数据库进行访问,以获得所述版本库中分支的更新信息;在所述更新信息指示所述版本库中存在新建分支或者旧分支被删除的情况下,更新所述分支同步清单。
根据本公开的实施例,冲突处理策略包括:第一计算机程序为准策略、第二计算机程序为准策略和同步中断策略,根据所述冲突处理策略处理所述同步任务包括:在同步任务的冲突处理策略为第一计算机程序为准的策略的情况下,将所述第二计算机程序修改为所述第一计算机程序;在同步任务的冲突处理策略为第二计算机程序为准的策略的情况下,保持所述第二计算机程序不改变;在同步任务的冲突策略为同步中断策略的情况,中止同步任务的执行。
根据本公开的实施例,方法还包括:记录每个同步任务的执行结果,所述执行结果包括同步冲突和同步成功;在所述执行结果中包括同步冲突的情况下,基于所述同步任务的任务信息和与所述同步任务相关联的用户信息,生成跟踪任务;以及根据所述用户信息,向电子设备发送通知消息,以通知用户完成所述跟踪任务。
本公开的另一个方面提供了一种计算机程序同步任务处理装置,包括:第一获取模块,用于获取分支同步清单,所述分支同步清单包括所述计算机程序的至少一个同步任务的任务信息,每个所述同步任务的同步任务信息包括源分支的源分支信息、目标分支的目标分支信息和冲突处理策略;同步模块,用于基于所述分支同步清单指示的所述至少一个同步任务的执行顺序,依次执行所述每个同步任务,所述每个同步任务包括将源分支的第一计算机程序同步到目标分支;以及处理模块,用于在所述第一计算机程序与所述目标分支中的第二计算机程序冲突的情况下,根据所述冲突处理策略处理所述同步任务。
根据本公开的实施例,该装置还包括:第二获取模块,用于获取用户在前端界面上输入的同步信息,所述同步信息包括版本库的版本库信息、目标分支信息、源分支信息以及投产时间信息;创建模块,用于基于所述同步信息,在所述版本库中创建所述目标分支;以及生成模块,用于在创建所述目标分支的情况下,基于所述投产时间信息和所述同步信息,生成所述分支同步清单。
根据本公开的实施例,该装置还包括:第三获取模块,用于每隔预设时间段对存储版本库的分支信息的数据库进行访问,以获得所述版本库中分支的更新信息;更新模块,用于在所述更新信息指示所述版本库中存在新建分支或者旧分支被删除的情况下,更新所述分支同步清单。
本公开的另一个方面提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行上述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的计算机程序同步任务处理方法的应用场景;
图2示意性示出了根据本公开实施例的计算机程序同步任务处理方法的流程图;
图3示意性示出了根据本公开另一实施例的计算机程序同步任务处理方法流程图;
图4示意性示出了根据本公开另一实施例计算机程序同步任务处理的方法流程图;
图5A示意性示出了根据本公开实施例的应用于计算机程序同步任务处理方法的系统架构;
图5B示意性示出了根据本公开实施例的分支同步处理模块的结构图;
图6示意性示出了根据本公开另一实施例的计算机程序同步任务处理方法流程图;
图7示意性示出了根据本公开实施例的计算机程序同步任务处理装置的方框图;以及
图8示意性示出了根据本公开实施例的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
本公开的实施例提供了一种计算机程序同步任务处理方法,包括:获取分支同步清单,所述分支同步清单包括计算机程序的至少一个同步任务的任务信息,每个同步任务的同步任务信息包括源分支的源分支信息、目标分支的目标分支信息和冲突处理策略。接下来可以基于分支同步清单指示的至少一个同步任务的执行顺序,依次执行每个同步任务,每个同步任务包括将源分支的第一计算机程序同步到目标分支;以及在第一计算机程序与目标分支中的第二计算机程序冲突的情况下,根据冲突处理策略处理同步任务。
图1示意性示出了根据本公开实施例的计算机程序同步任务处理方法的应用场景100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该应用场景中包括代码分支1、代码分支2和代码分支3。
代码分支1例如是为应用程序的第一次投产开发的代码,该代码例如可以是代码A。为了使得应用程序的运行更加优化,可以创建代码分支2,代码分支2可以包括用于第二次投产而开发的代码B和从代码分支1中同步过来的代码A。类似地,为了使得应用程序的运行进一步优化,可以创建代码分支3,代码分支3可以包括用于第三次投产而开发的代码C和从代码分支2中同步过来的代码A和代码B。
根据本公开的实施例的计算机程序同步任务处理方法,可以根据分支同步清单自动地将代码分支1中的代码A同步到代码分支2,以及将代码分支2中的代码A和代码B同步到代码分支3,不需要人工处理。
图2示意性示出了根据本公开实施例的计算机程序同步任务处理方法的流程图。
如图2所示,该方法可以包括操作S201~S203。
在操作S201,获取分支同步清单,分支同步清单包括计算机程序的至少一个同步任务的任务信息,每个同步任务的同步任务信息包括源分支的源分支信息、目标分支的目标分支信息和冲突处理策略。
根据本公开的实施例,例如可以从第一数据库中获取分支同步清单,或者与其他电子设备进行交互来获得分支同步清单。
分支同步清单例如可以以数据表的形式存储于第一数据库中。该数据表可以包括源分支信息、目标分支的目标分支信息、冲突处理策略、以及投产日期等字段。该数据表还可以包括源分支和目标分支的版本库地址。
源分支信息例如可以包括源分支的名称、源分支的存储地址等。类似地,目标分支信息可以包括目标分支的名称、目标分支的存储地址等。
冲突处理策略可以指示了当源分支的计算机程序与目标分支的计算机程序发生冲突的情况下,如何将源分支的计算机程序同步到目标分支。
在操作S202,基于分支同步清单指示的至少一个同步任务的执行顺序,依次执行每个同步任务,每个同步任务包括将源分支的第一计算机程序同步到目标分支。
根据本公开的实施例,分支同步清单中的多个同步任务可以是按照同步任务发生时间的先后顺序排列的。例如可以按照投产日期对多个同步任务进行排序,或者按照用户预先设定的同步时间对同步任务进行排序。
根据本公开的实施例,例如可以对分支同步清单进行解析,获取多个同步任务,以及每个同步任务的待同步的版本库地址、源分支信息、目标分支的目标分支信息和冲突处理策略。
根据本公开的实施例,例如可以通过Git(一个开源的分布式版本控制系统)的同步命令控制Git执行每个同步任务。
在操作S203,在第一计算机程序与目标分支中的第二计算机程序冲突的情况下,根据冲突处理策略处理同步任务。
根据本公开的实施例,冲突处理策略可以包括第一计算机程序为准策略、第二计算机程序为准策略和同步中断策略。根据冲突处理策略处理同步任务包括:在同步任务的冲突处理策略为第一计算机程序为准的策略的情况下,将所述第二计算机程序修改为所述第一计算机程序,在同步任务的冲突处理策略为第二计算机程序为准的策略的情况下,保持第二计算机程序不改变;在同步任务的冲突策略为同步中断策略的情况,中止所述同步任务的执行。例如在源分支中用于实现某个特定功能的代码与目标分支中用于实现某个特定功能的代码不一致的情况下,若冲突处理策略为第一计算机程序为准策略,则将目标分支中该特定功能的代码修改为第一计算机程序中用于实现该特定功能的代码。
根据本公开的实施例,该方法可以根据分支同步清单自动地将源分支中的计算机程序同步到目标分支中,并且在同步过程中出现冲突的情况下,可以按照冲突处理策略自动处理,从而至少部分地解决了人工或半自动方式进行分支同步及同步冲突跟踪中易出错、效率低下、容易漏同步等问题。
根据本公开的实施例,冲突处理策略还可以包括中断同步。在该实施例中,计算机程序同步任务处理方法还可以包括图3所示的方法。
图3示意性示出了根据本公开另一实施例的计算机程序同步任务处理方法流程图。
如图3所示,该方法在前述实施例的基础上还可以包括操作S301~S303。
在操作S301,记录每个同步任务的执行结果,执行结果包括同步冲突和同步成功。
根据本公开的实施例,记录每个同步任务的执行结果可以包括向同步结果文件中写入每个同步任务的执行结果。另外,记录每个同步任务的执行结果还可以包括,在每个同步任务结束的情况下,可以在生成提交标记,以指示分支同步的过程。例如可以使用Git生成提交标记,提交标记可以是在目标分支的树结构中创建新的节点。
在操作S302,在执行结果中包括同步冲突的情况下,基于同步任务的任务信息和与同步任务相关联的用户信息,生成跟踪任务。
根据本公开的实施例,例如可以读取同步结果文件,以从同步结果文件中确定出同步冲突的同步任务。根据本公开的实施例,可以将同步冲突的同步任务写入第二数据库中。第二数据库用于存储发生同步冲突的同步任务,并且可以在第二数据库中记录发生同步冲突的同步任务的记录状态。例如可以将发生同步冲突,但是未被处理的同步任务的记录状态设置为未创建JIRA任务。在第二数据库中发生同步冲突的同步任务被处理后,例如可以将该同步任务的记录状态更新为已处理、已建JIRA任务等记录状态。其中,JIRA是一种事物跟踪工具。
根据本公开的实施例,例如可以从第二数据库中获取未创建JIRA任务或创建JIRA任务失败的同步冲突清单。接下来,可以对同步冲突清单中的记录逐一进行处理,例如可以包括获取同步冲突的版本库、冲突程序名、源分支名、源分支的提交人信息、目标分支名、目标分支的提交人信息、冲突处理策略以及与源分支和目标分支相关联的用户信息库中的至少一个。根据用户信息库确定源分支的提交人和目标分支的提交人是否存在。若确定源分支的提交人和目标分支的提交人存在,调用JIRA管理系统任务创建接口,对源分支提交人创建JIRA任务,并将同步任务的记录状态设置为已建JIRA任务。根据本公开的实施例,创建的JIRA任务可以存储在任务数据库中。
在操作S303,根据用户信息,向电子设备发送通知消息,以通知用户完成跟踪任务。
根据本公开的实施例,用户信息可以是从与源分支和目标分支相关联的用户信息库获取的。用户信息例如可以包括源分支的提交人的姓名、邮箱地址等以及目标分支的提交人的姓名、邮箱地址等。
例如可以根据源分支的提交人的邮箱地址,向源分支提交人的邮箱发送通知消息,以及根据目标分支的提交人的邮箱地址,向目标分支提交人的邮箱发送通知消息。
根据本公开的实施例,在源分支提交人有多个的情况下,可以通知所有源分支提交人,使得该多个源分支提交人可以共同对冲突进行处理,处理完成后,JIRA任务流转到目标分支提交人,目标分支提交人处理完毕,同步冲突JIRA任务置为完成。
根据本公开的实施例,该方法还可以包括定期扫描JIRA系统中逾期未处理的同步冲突JIRA任务,并且从用户信息库中获取逾期未处理的同步冲突JIRA任务的经办人(例如可以是源分支提交人或者目标分支提交人)的邮箱,关联邮箱管理系统,对这些JIRA任务经办人及其他干系人自动发送提醒邮件,直到同步冲突JIRA任务完成为止。
根据本公开的实施例,该方法可以对同步冲突自动进行提醒和跟踪,降低因为分支同步造成的投产问题。
根据本公开的实施例,对于发生同步冲突的同步任务可以通知到提交人,并且可以对该同步任务的处理情况进行跟踪。对于发生同步冲突但是根据冲突策略确定以第一计算机程序或者第二计算机程序为准的同步任务,也可以通知到提交人,以使提交人确认是否按照冲突策略执行。
图4示意性示出了根据本公开另一实施例计算机程序同步任务处理的方法流程图。
如图4所示,该方法在前述实施例的基础上还可以包括操作S401~S403。
在操作S401,获取用户在前端界面上输入的同步信息,同步信息包括版本库的版本库信息、目标分支信息、源分支信息以及投产时间信息。
根据本公开的实施例,用户还可以在前端界面上设置同步任务的同步时间,从而可以根据用户设置的同步时间对分支进行同步。
在操作S402,基于同步信息,在版本库中创建目标分支。
例如可以根据目标分支信息中目标分支的目标名称,在版本库中建立名称为目标名称的目标分支。
在操作S403,在创建目标分支的情况下,基于投产时间信息和同步信息,生成分支同步清单。
例如可以根据不同分支投产时间的先后顺序来生成分支同步清单。
根据本公开的实施例,该计算机程序同步任务处理方法还可以包括每隔预设时间段对存储版本库的分支信息的数据库进行访问,以获得版本库中分支的更新信息,以及在更新信息指示版本库中存在新建分支或者旧分支被删除的情况下,更新分支同步清单。
根据本公开的实施例,例如根据用户在前端界面上选择版本库、输入源分支名称、目标分支名称、目标分支投产日期等分支信息,在版本库中创建目标分支的情况下,该目标分支的分支信息(例如可以包括版本库、新建或删除的分支、投产日期、分支更新日期等信息)可以自动存储到例如可以是第三数据库中。根据本公开的实施例,例如可以每隔预设时间段对第三数据库进行访问,以获得版本库中分支的更新信息,在更新信息指示版本库中存在新建分支或者旧分支被删除的情况下,更新分支同步清单。
例如可以根据新建分支的投产时间,在分支同步清单中添加新同步任务,并且该新同步任务在分支同步清单中的位序与投产时间相关。或者在旧分支被删除的情况下,删除分支同步清单中该旧分支的同步任务。
图5A示意性示出了根据本公开实施例的应用于计算机程序同步任务处理方法的系统架构500。
如图5A所示,该系统架构500可以包括前端界面001、调度系统002、分支同步处理模块003和数据存储模块004。
前端界面001提供面向用户的参数输入及操作界面。用户可以在前端界面001上执行输入操作以输入同步任务的相关参数。参数例如可以包括版本库的版本库信息、目标分支信息、源分支信息以及投产时间信息等。
调度系统002例如可以实现任务定时和自动执行。例如调度系统002可以按照用户设定的同步时间调用分支同步处理模块003来实现任务定时和自动执行。
分支同步处理模块003用于实现分支同步任务。在分支同步处理过程中,分支同步处理模块003可以与Git版本控制系统005、JIRA管理系统006、邮件通知系统007交互。并且分支同步处理模块003可以记录分支信息、分支同步清单、分支同步结果、同步冲突数据、JIRA跟踪情况等数据到数据存储模块004中。
图5B示意性示出了根据本公开实施例的分支同步处理模块003的结构图。
如图5B所示,该分支同步处理模块003可以包括分支创建模块201、同步清单维护模块202、分支同步模块203和同步结果分析和跟踪模块204。
分支创建模块201例如可以从前端界面获取用户输入的版本库、源分支名、目标分支名等相关参数,并且自动在版本库下创建目标分支以及打初始标签,初始标签例如可以是创建目标分支的时间。另外,分支创建模块201还可以记录分支创建信息,分支创建信息例如可以包括记录创建目标分支的时间、源分支名、目标分支名等。
同步清单维护模块202例如可以用于筛选分支发生变动的版本库,更新对应版本库的分支同步清单。
分支同步模块203例如可以基于各个版本库的分支同步清单,对分支同步清单逐行解析,获取待同步的版本库、源分支和目标分支、冲突处理策略等信息,通过Git中的同步命令实现分支同步,记录同步日志,并将同步结果写到数据库中。
同步结果分析和跟踪模块204例如可以对同步结果进行解析,筛选出同步冲突清单,逐条确定同步冲突清单中的同步冲突在Git版本控制系统005上的源版本提交人、目标版本提交人创建同步冲突JIRA任务进行同步冲突跟踪。除此之外,同步结果分析和跟踪模块204还可以定期扫描同步冲突JIRA督办逾期未处理清单,对JIRA任务经办人及其他干系人自动发送提醒邮件,直到同步冲突处理为止。
图6示意性示出了根据本公开另一实施例的计算机程序同步任务处理方法流程图。
如图6所示,该方法可以包括操作S601~S608。
在操作S601,获取同步清单,根据同步清单进行分支同步。例如可以执行上文参考图2描述的操作S201和操作S202。例如可以基于分支同步清单指示的至少一个同步任务的执行顺序,依次执行每个同步任务。
在操作S602,将每个同步任务的执行结果写入同步结果文件。执行结果可以包括同步冲突和同步成功。例如可以执行上文参考图3描述的操作S301。
在操作S603,解析同步结果文件,以从同步结果文件中确定冲突数据,并且将同步冲突数据写入第二数据库。
在操作S604,从第二数据库获取同步冲突清单。
在操作S605,对冲突数据的源分支的提交人和目标分支的提交人建立JIRA任务。例如可以对同步冲突清单中的记录逐一进行处理,获取同步冲突源分支的提交人和目标分支的提交人以及与源分支和目标分支相关联的用户信息库,以从用户信息库中获取用户信息,进而可以建立JIRA任务。
其中,操作S603~操作S605例如可以是执行上文参考图3描述的操作S302。
在操作S606,将新创建的JIRA任务添加到自动同步冲突JIRA任务清单中。
在操作S607,定期扫描定期扫描JIRA系统自动同步冲突JIRA任务清单中逾期未处理的同步冲突JIRA任务。
在操作S608,从邮件系统中获取源分支提交人和目标分支提交人的邮件地址,以通过邮件提醒提交人存在未处理冲突。
图7示意性示出了根据本公开实施例的计算机程序同步任务处理装置700的方框图。
如图7所示,计算机程序同步任务处理装置700可以包括第一获取模块710、同步模块720和处理模块730。
第一获取模块710,例如可以执行上文参考图2描述的操作S201,用于获取分支同步清单,所述分支同步清单包括所述计算机程序的至少一个同步任务的任务信息,每个所述同步任务的同步任务信息包括源分支的源分支信息、目标分支的目标分支信息和冲突处理策略;
同步模块720,例如可以执行上文参考图2描述的操作S202,用于基于所述分支同步清单指示的所述至少一个同步任务的执行顺序,依次执行所述每个同步任务,所述每个同步任务包括将源分支的第一计算机程序同步到目标分支。
处理模块730,例如可以执行上文参考图2描述的操作S203,用于在所述第一计算机程序与所述目标分支中的第二计算机程序冲突的情况下,根据所述冲突处理策略处理所述同步任务。
根据本公开的实施例,该装置700还可以包括:第二获取模块,用于获取用户在前端界面上输入的同步信息,所述同步信息包括版本库的版本库信息、目标分支信息、源分支信息以及投产时间信息;创建模块,用于基于所述同步信息,在所述版本库中创建所述目标分支;以及生成模块,用于在创建所述目标分支的情况下,基于所述投产时间信息和所述同步信息,生成所述分支同步清单。
根据本公开的实施例,该装置700还可以包括:第三获取模块,用于每隔预设时间段对存储版本库的分支信息的数据库进行访问,以获得所述版本库中分支的更新信息;更新模块,用于在所述更新信息指示所述版本库中存在新建分支或者旧分支被删除的情况下,更新所述分支同步清单。
根据本公开的实施例,冲突处理策略包括:第一代码计算机程序为准策略、第二代码计算机程序为准策略和同步中断策略,根据所述冲突处理策略处理所述同步任务包括:在同步任务的冲突处理策略为第一代码计算机程序为准的策略的情况下,将所述第二代码计算机程序修改为所述第一代码计算机程序;在同步任务的冲突处理策略为第二代码计算机程序为准的策略的情况下,保持所述第二代码计算机程序不改变,在同步任务的冲突策略为同步中断策略的情况,中止所述同步任务的执行。
根据本公开的实施例,冲突处理策略还包括中断同步,所述装置700还可以包括:记录模块,用于记录每个同步任务的执行结果,所述执行结果包括同步冲突和同步成功;生成任务模块,用于在所述执行结果中包括同步冲突的情况下,基于所述同步任务的任务信息和与所述同步任务相关联的用户信息,生成跟踪任务;以及通知模块,用于根据所述用户信息,向电子设备发送通知消息,以通知用户完成所述跟踪任务。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一获取模块710、同步模块720和处理模块730中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一获取模块710、同步模块720和处理模块730中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获取模块710、同步模块720和处理模块730中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的电子设备的方框图。图8示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,根据本公开实施例的计算机电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器801还可以包括用于缓存用途的板载存储豁。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分807;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (10)

1.一种计算机程序同步任务处理方法,包括:
获取分支同步清单,所述分支同步清单包括所述计算机程序的至少一个同步任务的任务信息,每个所述同步任务的同步任务信息包括源分支的源分支信息、目标分支的目标分支信息和冲突处理策略;
基于所述分支同步清单指示的所述至少一个同步任务的执行顺序,依次执行所述每个同步任务,所述每个同步任务包括将源分支的第一计算机程序同步到目标分支;以及
在所述第一计算机程序与所述目标分支中的第二计算机程序冲突的情况下,根据所述冲突处理策略处理所述同步任务。
2.根据权利要求1所述的方法,还包括:
获取用户在前端界面上输入的同步信息,所述同步信息包括版本库的版本库信息、目标分支信息、源分支信息以及投产时间信息;
基于所述同步信息,在所述版本库中创建所述目标分支;以及
在创建所述目标分支的情况下,基于所述投产时间信息和所述同步信息,生成所述分支同步清单。
3.根据权利要求2所述的方法,还包括:
每隔预设时间段对存储版本库的分支信息的数据库进行访问,以获得所述版本库中分支的更新信息;
在所述更新信息指示所述版本库中存在新建分支或者旧分支被删除的情况下,更新所述分支同步清单。
4.根据权利要求1所述的方法,其中,所述冲突处理策略包括:第一计算机程序为准策略、第二计算机程序为准策略和同步中断策略,
根据所述冲突处理策略处理所述同步任务包括:
在同步任务的冲突处理策略为第一计算机程序为准的策略的情况下,将所述第二计算机程序修改为所述第一计算机程序;
在同步任务的冲突处理策略为第二计算机程序为准的策略的情况下,保持所述第二计算机程序不改变;
在同步任务的冲突策略为同步中断策略的情况,中止所述同步任务的执行。
5.根据权利要求1所述的方法,还包括:
记录每个同步任务的执行结果,所述执行结果包括同步冲突和同步成功;
在所述执行结果中包括同步冲突的情况下,基于所述同步任务的任务信息和与所述同步任务相关联的用户信息,生成跟踪任务;以及
根据所述用户信息,向电子设备发送通知消息,以通知用户完成所述跟踪任务。
6.一种计算机程序同步任务处理装置,包括:
第一获取模块,用于获取分支同步清单,所述分支同步清单包括所述计算机程序的至少一个同步任务的任务信息,每个所述同步任务的同步任务信息包括源分支的源分支信息、目标分支的目标分支信息和冲突处理策略;
同步模块,用于基于所述分支同步清单指示的所述至少一个同步任务的执行顺序,依次执行所述每个同步任务,所述每个同步任务包括将源分支的第一计算机程序同步到目标分支;以及
处理模块,用于在所述第一计算机程序与所述目标分支中的第二计算机程序冲突的情况下,根据所述冲突处理策略处理所述同步任务。
7.根据权利要求6所述的装置,还包括:
第二获取模块,用于获取用户在前端界面上输入的同步信息,所述同步信息包括版本库的版本库信息、目标分支信息、源分支信息以及投产时间信息;
创建模块,用于基于所述同步信息,在所述版本库中创建所述目标分支;以及
生成模块,用于在创建所述目标分支的情况下,基于所述投产时间信息和所述同步信息,生成所述分支同步清单。
8.根据权利要求7所述的装置,还包括:
第三获取模块,用于每隔预设时间段对存储版本库的分支信息的数据库进行访问,以获得所述版本库中分支的更新信息;
更新模块,用于在所述更新信息指示所述版本库中存在新建分支或者旧分支被删除的情况下,更新所述分支同步清单。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1~5任意一项所述的方法。
10.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如权利要求1~5任意一项所述的方法。
CN202010481871.5A 2020-05-29 2020-05-29 计算机程序同步任务处理方法、装置、电子设备和介质 Active CN111638920B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010481871.5A CN111638920B (zh) 2020-05-29 2020-05-29 计算机程序同步任务处理方法、装置、电子设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010481871.5A CN111638920B (zh) 2020-05-29 2020-05-29 计算机程序同步任务处理方法、装置、电子设备和介质

Publications (2)

Publication Number Publication Date
CN111638920A true CN111638920A (zh) 2020-09-08
CN111638920B CN111638920B (zh) 2023-09-22

Family

ID=72332914

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010481871.5A Active CN111638920B (zh) 2020-05-29 2020-05-29 计算机程序同步任务处理方法、装置、电子设备和介质

Country Status (1)

Country Link
CN (1) CN111638920B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113485744A (zh) * 2021-07-23 2021-10-08 中国工商银行股份有限公司 代码同步方法及装置
CN115277681A (zh) * 2022-07-29 2022-11-01 山石网科通信技术股份有限公司 避免同步过程冲突的文件同步方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105302533A (zh) * 2014-07-25 2016-02-03 腾讯科技(深圳)有限公司 代码同步方法和装置
US9430229B1 (en) * 2013-03-15 2016-08-30 Atlassian Pty Ltd Merge previewing in a version control system
CN109725926A (zh) * 2017-10-31 2019-05-07 阿里巴巴集团控股有限公司 管理基线的方法和装置以及数据处理方法
US20190163478A1 (en) * 2017-11-27 2019-05-30 Oracle International Corporation Synchronizing a set of code branches
US20200019411A1 (en) * 2018-07-12 2020-01-16 Bank Of America Corporation Resource configuration migration and implementation utilizing multiple branches

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9430229B1 (en) * 2013-03-15 2016-08-30 Atlassian Pty Ltd Merge previewing in a version control system
CN105302533A (zh) * 2014-07-25 2016-02-03 腾讯科技(深圳)有限公司 代码同步方法和装置
CN109725926A (zh) * 2017-10-31 2019-05-07 阿里巴巴集团控股有限公司 管理基线的方法和装置以及数据处理方法
US20190163478A1 (en) * 2017-11-27 2019-05-30 Oracle International Corporation Synchronizing a set of code branches
US20200019411A1 (en) * 2018-07-12 2020-01-16 Bank Of America Corporation Resource configuration migration and implementation utilizing multiple branches

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113485744A (zh) * 2021-07-23 2021-10-08 中国工商银行股份有限公司 代码同步方法及装置
CN115277681A (zh) * 2022-07-29 2022-11-01 山石网科通信技术股份有限公司 避免同步过程冲突的文件同步方法和装置
CN115277681B (zh) * 2022-07-29 2024-04-02 山石网科通信技术股份有限公司 避免同步过程冲突的文件同步方法和装置

Also Published As

Publication number Publication date
CN111638920B (zh) 2023-09-22

Similar Documents

Publication Publication Date Title
US10127143B2 (en) Generating an evolving set of test cases
US8423963B2 (en) Computer implemented API management mechanism for generating upgrade risk level handling
US20070038983A1 (en) Systems and methods for enterprise software management
US8887149B2 (en) Time shift configuration management for software product installation
US20030084063A1 (en) Method, system, and program for performing an impact analysis of program statements in at least one source code file
US20160306612A1 (en) Determining errors and warnings corresponding to a source code revision
US20060268321A1 (en) Method and system for scheduling jobs in a computer system
US7933866B2 (en) Systems, methods and software programs for data synchronization
CN108255620B (zh) 一种业务逻辑处理方法、装置、业务服务器及系统
US8219541B2 (en) System and method for automatically detecting, reporting, and tracking conflicts in a change management system
US20200349172A1 (en) Managing code and data in multi-cluster environments
US20200133658A1 (en) Change governance using blockchain
CN102971711A (zh) 用于处理批工作单元的设备
CN104965879A (zh) 修改数据表的表结构的方法及装置
US20090013321A1 (en) Managing virtual computers
CN110727539A (zh) 批处理任务中的异常处理方法、系统及电子设备
CN111638920A (zh) 计算机程序同步任务处理方法、装置、电子设备和介质
US11200136B2 (en) Data monitoring methods, apparatuses, electronic devices, and computer readable storage media
CN108733671B (zh) 数据历史归档的方法和装置
US8122060B2 (en) Tracking of object versions in different project stages
US20160253157A1 (en) Software refactoring
CN113138757A (zh) 前端代码自动生成方法、装置、服务器、系统及介质
US8290916B2 (en) Rule-based record profiles to automate record declaration of electronic documents
US20080294670A1 (en) Method and system for hierarchical logging
CN110502486B (zh) 日志处理方法、装置、电子设备和计算机可读存储介质

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
GR01 Patent grant
GR01 Patent grant