本发明涉及云计算技术,尤指一种基于云管理平台的管理方法及系统。
背景技术:
技术实现要素:
为了解决上述技术问题,本发明提供了一种云管理平台的管理方法及系统,通过自动化为每个文件创建git工程,保证文件的分支版本和创建的工程的分支版本保持一致,实现了对单个文件的分支版本管理。
为了达到本发明目的,本发明提供了一种基于云管理平台的管理方法,所述云管理平台中设置有多分支管理系统,该多分支管理系统采用客户端/服务端架构;该方法包括:
服务端接收客户端发送的多个文件的文件信息,所述文件信息包含文件内容和分支版本;
所述服务端为每一个文件创建一个对应的git工程和该git工程的分支版本,每一个git工程中只有一个对应的文件,将每一个git工程对应的文件的分支版本作为所述git工程的分支版本;
所述服务端记录和保存文件与git工程对应关系表,所述文件与git工程对应关系表包括每一个git工程的工程名与对应的文件的标识的一一对应关系。
进一步地,所述文件的标识包括文件的工程名、文件夹层级结构和文件名称。
进一步地,每一个git工程的工程名为通过mysql的自增序列生成的32位的字符串。
进一步地,该方法还包括:
所述服务端接收到客户端发送的关于包含了文件名和分支版本的拉取命令后,将所述文件名和分支版本对应的git工程中的文件传输给所述客户端。
所述客户端显示所有文件以及每个文件对应的分支版本,当检测到任意一个文件以及该文件的分支版本被选择后,所述客户端向所述服务端发送所述拉取命令。
进一步地,所述将所述文件名和分支版本对应的git工程中的文件传输给所述客户端,包括:
自动识别所述拉取命令中包含的文件的标识,根据所述文件与git工程对应关系表和识别出的所述文件的标识找到对应的git工程,将所述对应的git工程中对应分支版本的文件加密后传输给所述客户端。
当所述客户端本地保存有相同文件名称的文件时,所述客户端自动计算git工程中的文件和客户端本地保存的文件的md5值,如果两个同名文件的md5值相同,则不从服务器端下载所述git工程中的文件;如果两个同名文件的md5值不相同,则修改本地保存的文件的文件名,然后下载所述git工程中的文件。
所述客户端在修改文件内容后向所述服务端发送所述修改后的文件;
所述服务端自动识别接收的文件的标识,如果在服务端本地没有找到所述修改后的文件对应的git工程,则为所述修改后的文件创建对应的git工程;如果在服务端本地找到所述修改后的文件对应的git工程,则将所述修改后的文件提交到对应的git工程中。
进一步地,该方法还包括:所述服务端定期查找所有git工程对应的文件,如果找不到某git工程对应的文件,则删除所述某git工程。
为了达到本发明目的,本发明还提供了一种基于云管理平台的管理系统,所述云管理平台中设置有多分支管理系统,该多分支管理系统采用客户端/服务端架构;该多分支管理系统包括:
服务端,用于接收客户端发送的多个文件的文件信息,所述文件信息包含文件内容和分支版本;
所述服务端,还用于为每一个文件创建一个对应的git工程和该git工程的分支版本,每一个git工程中只有一个对应的文件,将每一个git工程对应的文件的分支版本作为所述git工程的分支版本;
所述服务端,记录和保存文件与git工程对应关系表,所述文件与git工程对应关系表包括每一个git工程的工程名与对应文件的标识的一一对应关系。
本发明技术方案提供了一种基于云管理平台的管理方法及系统,所述云管理平台中设置有多分支管理系统,该多分支管理系统采用客户端/服务端架构;该方法包括:服务端接收客户端发送的多个文件的文件信息,所述文件信息包含文件内容和分支版本;所述服务端为每一个文件创建一个对应的git工程和该git工程的分支版本,每一个git工程中只有一个对应的文件,将每一个git工程对应的文件的分支版本作为所述git工程的分支版本;所述服务端记录和保存文件与git工程对应关系表,所述文件与git工程对应关系表包括每一个git工程的工程名与对应文件的标识的一一对应关系。本发明技术方案通过自动化为每个文件创建git工程,保证文件的分支版本和创建的工程的分支版本保持一致,实现了对单个文件的分支版本控制。进一步地,在客户端需要修改文件的代码的时候,只需要下载需要修改的文件,减少了不必要的文件传输,提高代码管理的效率,并缩短产品研发周期,提高产品竞争力。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例提供的基于云管理平台的管理方法流程示意图;
图2为本发明实施例提供的基于云管理平台的管理系统结构示意图。
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
一旦涉及到代码量巨大的项目,往往需要经过很多人协同工作数周乃至数月才能完成。开发过程中,会面临着代码的修改、增删、恢复等工作,开发人员不可能清楚的记得每次变化,这时候就需要借助版本管理工具来跟踪代码的变化历程。版本管理工具赋予每个文件一个版本号,每次修改之后,哪怕只改动了一个字母,版本管理工具都会精确地记录下来,并改变该文件的版本号。这样,每个版本号就对应着文件的一次变化,依此可以进行文件的对比、恢复等操作。
图1为本发明实施例提供的基于云管理平台的管理方法流程示意图,如图1所示,云管理平台中设置有多分支管理系统,该多分支管理系统采用客户端/服务端架构;该方法包括:
步骤101,服务端接收客户端发送的多个文件的文件信息,所述文件信息包含文件内容和分支版本;
步骤102,所述服务端为每一个文件创建一个对应的git工程和该git工程的分支版本,每一个git工程中只有一个对应的文件,将每一个git工程对应的文件的分支版本作为所述git工程的分支版本;
步骤103,所述服务端记录和保存文件与git工程对应关系表,所述文件与git工程对应关系表包括每一个git工程的工程名与对应文件的标识的一一对应关系。
进一步地,所述对应的文件的标识包括文件的工程名、文件夹层级结构和文件名称。
进一步地,每一个git工程的工程名为通过mysql的自增序列来生成的32位的字符串。
进一步地,所述服务端定期查找所有git工程对应的文件,如果找不到某git工程对应的文件,则删除所述某git工程。
实施例一
本发明实施例应用于云管理平台,云管理平台中设置有多分支管理系统。
首先,多分支管理系统采用cs架构,即提供一个客户端和一个服务端,服务端提供用户注册功能,服务端的后端采用git方式进行文件管理。服务端安装完成后,需要配置文件管理方式,输入svn地址,用户名和密码或者git地址、用户名和密码。
再次,用户首先在操作系统中安装客户端,然后,通过客户端创建文件,并在文件中添加代码以及文件的分支版本,然后提交到服务端。客户端和服务端都是采用java开发,客户端和服务端的数据传输和通信采用ssl加密方式进行加密。客户端通过ip、端口号和用户名密码连接服务端并传输数据,数据中包含文件内容以及每个文件的分支版本。客户端支持对文件、文件夹或多个文件进行分支版本设置。
再次,数据上传到服务端后,服务端自动识别所有文件以及分支版本,并在文件管理中进行工程创建,即在git中创建工程,创建的工程名字具有唯一性,创建工程时设置该工程的分支版本,分支版本信息为客户端传输的该文件的分支版本信息。工程名称通过mysql的自增序列来生成32位的字符串,保证工程名称的唯一性。每个工程中只有一个文件,服务端记录文件和创建的工程的一一对应关系并且保证文件的分支版本和工程中的分支版本相同,维护的对应关系为创建的工程的唯一名称和文件的工程名-文件夹层级结构-文件名称。举例如下文件所在工程名称为projecta,文件所在的文件夹层级为文件夹directoryb/文件夹directoryc文件名称为filed,则文件的标识为projecta-directoryb-directoryc-filed。
再次,修改文件的时候,客户端拉取文件。客户端能够浏览所有文件以及文件对应的分支版本。在客户端选择某个文件以及该文件的分支版本后,执行拉取命令,传输命令到服务端,服务端自动识别为文件的工程名-文件夹层级结构-文件名称,根据识别的名称找到对应的工程,把工程中对应分支版本的的文件加密传输给客户端。如果客户端本地没有文件,则直接下载文件,如果客户端的本地有同名文件,客户端自动计算文件的md5值,如果两个同名文件的md5值相同,则不作操作;如果md5值不同,则修改本地文件为文件名.bak,然后下载文件,不提供文件合并功能。
再次,文件修改完成,客户端提交文件。客户端加密传输文件到服务端,服务端自动识别文件标识,即文件的工程名-文件夹层级结构-文件名称,如果没有找到对应工程,即文件为新建的文件,则自动创建工程,并每个工程一个文件进行存储管理,如果有对应工程,则提交新的文件到对应工程中。
最后,服务端定期,比如每周末,自动执行定时任务,查找所有工程对应的文件,如果在多分支同步管理系统找不到对应的文件,则表示该工程对应的文件已经被删除,则删除该工程。减少无效的存储,降低存储压力。
图2为本发明实施例提供的的基于云管理平台的管理系统结构示意图,如图2所示,云管理平台中设置有多分支管理系统,该多分支管理系统采用客户端/服务端架构;该多分支管理系统包括:
所述服务端,记录和保存文件与git工程对应关系表,所述文件与git工程对应关系表包括每一个git工程的工程名与对应的文件的标识一一对应关系。
进一步地,服务端提供用户注册功能,服务端的后端采用git方式进行文件管理。服务端安装完成后,需要配置文件管理方式,输入svn地址、用户名和密码或者git地址、用户名和密码。
进一步地,管理代码以及代码的分支力度到文件级别。客户端将文件上传到服务端后,服务端自动识别所有文件以及分支版本,并在文件管理中进行工程创建,即在git中创建工程,创建的工程名字具有唯一性,创建工程时设置该工程的分支版本,分支版本信息为客户端传输的该文件的分支版本信息。工程名称通过mysql的自增序列来生成32位的字符串,保证工程名称的唯一性。每个工程中只有一个文件,服务端记录文件和创建的工程的一一对应关系并且保证文件的分支版本和工程中的分支版本相同,维护的对应关系为创建的工程的唯一名称和文件的工程名-文件夹层级结构-文件名称。举例如下文件所在工程名称为projecta,文件所在的文件夹层级为文件夹directoryb/文件夹directoryc文件名称为filed,则文件的标识为projecta-directoryb-directoryc-filed。
进一步地,修改代码以及分支可以只拉取单个文件。客户端能够浏览所有文件以及文件对应的分支版本。在客户端选择某个文件以及该文件的分支版本后,执行拉取命令,传输命令到服务端,服务端自动识别为文件的工程名-文件夹层级结构-文件名称,根据识别的名称找到对应的工程,把工程中对应分支版本的的文件加密传输给客户端。
进一步地,服务端可以自动去除无效数据。服务端定期,比如每周末,自动执行定时任务,查找所有工程对应的文件,如果在多分支同步管理系统找不到对应的文件,则表示该工程对应的文件已经被删除,则删除该工程。减少无效的存储,降低存储压力。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。