一种基于Node.js管理Submodule项目Git的实现方法与流程

文档序号:36473407发布日期:2023-12-22 00:08阅读:47来源:国知局
一种基于的制作方法

本发明涉及代码版本控制,具体为一种基于node.js管理submodule项目git的实现方法。


背景技术:

1、git的全称是分布式版本控制系统,是世界上最流行的版本控制系统,它提供了一种优雅、健壮的方式管理这些依赖关系;git通常在编程中会用到,并且git支持分布式部署,可以有效、高速的处理从很小到非常大的项目版本管理。分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的git仓库。

2、现有技术中,git的“submodule”概念允许我们引用和管理第三方库,同时保持与我们自己的代码清晰的隔离。当我们的项目很大很复杂的时候,需要将各个模块文件进行抽离,以此来降低项目文件之间的耦合程度。这个时候就可以使用git submodule来对项目文件进行抽离,最终使抽离出来的文件可以单独成为一个git仓库。这样做的好处是整个主项目对抽离出来的子项目(子模块)有依赖关系,却又并不关心子项目(子模块)的内部开发流程细节。node.js发布于2009年5月,由ryan dahl开发,是一个基于chrome v8引擎的javascript运行环境,使用了一个事件驱动、非阻塞式i/o模型,让javascript运行在服务端的开发平台,它让javascript成为与php、python、perl、ruby等服务端语言平起平坐的脚本语言。node.js对一些特殊用例进行优化,提供替代的api,使得v8在非浏览器环境下运行得更好,v8引擎执行javascript的速度非常快,性能非常好,基于chrome javascript运行时建立的平台,用于方便地搭建响应速度快、易于扩展的网络应用。

3、但是,采用git submodule方式对项目进行拆解,将一个git项目拆解成多个git项目,降低了功能的耦合度,但是也存在部分问题,一是项目业务复杂,需要拆解成很多submodule项目,甚至十几个项目,日常维护起来相对复杂烦琐,例如代码提交、打git标签操作需要一个个进行,非常耗时;二是git submodule部分操作命令目前尚不完善,例如没有直接删除子版本库的功能,需要开发人员手动执行删除多个目录的文件命令,操作比较复杂。


技术实现思路

1、本发明的目的在于提供一种基于node.js管理submodule项目git的实现方法,以解决上述背景技术中提出的问题。

2、为实现上述目的,本发明提供如下技术方案:一种基于node.js管理submodule项目git的实现方法,所述方法包括以下步骤:

3、加载node.js的相关模块;

4、使用node-xlsx模块,创建batch-git.tml.xlsx文件,并初始化;

5、使用fs模块,读取.gitmodules文件,解析git submodule项目结构;

6、使用child_process模块,调用git命令,读取各个git submodule项目的提交日志,标签日志,分支;

7、封装常用相关命令。

8、优选的,node.js的相关模块包括child_process、fs以及node-xlsx三个模块;

9、child_process,异步子进程调用模块,用于执行git相关命令;

10、fs,文件读取模块模块,用于读取git submodule的配置文件;

11、node-xlsx,excel操作模块,用于读写excel模板的内容。

12、优选的,在git主项目根目录下创建xlsx文件,任何使用node-xlsx模块的api,插入表头。

13、优选的,表头包含项目/子模块,分支,最近提交,最新提交哈希值,变更文件数量,是否拉取,是否提交,提交内容,是否打标签,标签内容。

14、优选的,读取git submodule的配置文件.gitmodules文件,进行解析。

15、优选的,文件解析包含git submodule项目的名称、path、url,将项目名添加到excel模板的项目列。

16、优选的,使用child_process模块来调用git的命令,然后解析,将解析后的提交日志、标签日志、当前分支,填充到excel模板。

17、与现有技术相比,本发明的有益效果是:

18、本发明提出的基于node.js管理submodule项目git的实现方法,通过支持一键化的、快速的、批量的对多个git submodule项目版本控制,整合部分命令及excel模板管理git submodule项目,有效提高开发人员开发效率、简化操作复杂度;通过excel的方式,自动的将主git项目与git submodule项目的结构展示、分支、最近提交等内容展示,使版本控制一目了然;支持适应于不同语言git submodule项目,具有良好的通用性和可拓展性。



技术特征:

1.一种基于node.js管理submodule项目git的实现方法,其特征在于:所述方法包括以下步骤:

2.根据权利要求1所述的一种基于node.js管理submodule项目git的实现方法,其特征在于:node.js的相关模块包括child_process、fs以及node-xlsx三个模块;

3.根据权利要求1所述的一种基于node.js管理submodule项目git的实现方法,其特征在于:在git主项目根目录下创建xlsx文件,任何使用node-xlsx模块的api,插入表头。

4.根据权利要求3所述的一种基于node.js管理submodule项目git的实现方法,其特征在于:表头包含项目/子模块,分支,最近提交,最新提交哈希值,变更文件数量,是否拉取,是否提交,提交内容,是否打标签,标签内容。

5.根据权利要求1所述的一种基于node.js管理submodule项目git的实现方法,其特征在于:读取git submodule的配置文件.gitmodules文件,进行解析。

6.根据权利要求5所述的一种基于node.js管理submodule项目git的实现方法,其特征在于:文件解析包含git submodule项目的名称、path、url,将项目名添加到excel模板的项目列。

7.根据权利要求1所述的一种基于node.js管理submodule项目git的实现方法,其特征在于:使用child_process模块来调用git的命令,然后解析,将解析后的提交日志、标签日志、当前分支,填充到excel模板。


技术总结
本发明涉及代码版本控制技术领域,具体为一种基于Node.js管理Submodule项目Git的实现方法,包括以下步骤:加载Node.js的相关模块;使用node‑xlsx模块,创建batch‑git.tml.xlsx文件,并初始化;使用fs模块,读取.gitmodules文件,解析Git Submodule项目结构;使用child_process模块,调用Git命令,读取各个Git Submodule项目的提交日志,标签日志,分支;封装常用相关命令;有益效果为:本发明提出的基于Node.js管理Submodule项目Git的实现方法,通过支持一键化的、快速的、批量的对多个Git Submodule项目版本控制,整合部分命令及Excel模板管理Git Submodule项目,有效提高开发人员开发效率、简化操作复杂度。

技术研发人员:朱继学,杨镇铭,安晓博
受保护的技术使用者:浪潮云信息技术股份公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1