System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及软件开发,提供一种基于fttr的日志管理与版本控制方法、装置、设备及介质。
技术介绍
1、随着科学技术的发展,版本控制系统(version control system,vcs)逐渐成为现代软件开发的基石,其中,分布式版本控制系统git作为最流行的版本控制系统之一,其提供了强大的分支和合并能力。然而,随着项目规模的扩大,git的日志管理和版本回溯功能变得越来越不够直观和高效。
2、特别是在处理大量提交和分支时,会存在以下几个问题:(1)由于传统的git日志展示方式会包含大量的合并记录,因此,容易导致开发者在查看提交历史时难以追踪每个提交的详细信息,进而,使得对特定提交的审查和追溯变得困难、日志信息展示不直观;(2)在git中,由于查找特定版本的详细信息需要执行多个命令或查看多个文件,因此,增加了开发者在历史审查和错误追踪过程中的工作量和复杂性,进而,使得版本信息检索困难;(3)由于传统git在版本回滚和分支管理方面的灵活性有限,因此,如果需要将仓库回溯到特定的历史版本,则需要执行多个命令或手动操作,进而,会引入错误或不必要的复杂性,从而,导致版本控制灵活性受限。
技术实现思路
1、本申请提供一种基于fttr的日志管理与版本控制方法、装置、设备及介质,用于解决日志信息展示不直观和版本信息检索困难的问题。
2、一方面,提供一种基于fttr的日志管理与版本控制方法,应用于fttr框架中,所述方法包括:
3、在无参数的情况下,采用--no-me
4、将多个版本号加入初始git.log文件中,获得目标git.log文件;
5、采用-v<version>选项,显示所述目标git.log文件中指定版本号的详细信息。
6、可选的,在将多个版本号加入初始git.log文件中,获得目标git.log文件之前,所述方法还包括:
7、采用--no-merges--remotes--reverse选项,获取一个按提交顺序倒序的日志视图;其中,所述日志视图无合并记录;
8、将所述日志视图经处理后存储至git.log空文件中,获得所述初始git.log文件中。
9、可选的,在将多个版本号加入初始git.log文件中,获得目标git.log文件之前,所述方法还包括:
10、采用len(output.strip().split(“\n”))函数,将output变量中的内容拆分为lines行列表,并生成序列号和关键字的映射关系表;
11、采用enumerate(lines)函数,遍历所述lines行列表,生成元素索引和值。
12、可选的,所述将多个版本号加入初始git.log文件中,获得目标git.log文件的步骤,包括:
13、采用mapping.items()函数,对所述映射关系表进行遍历,确定所述映射关系表中是否存在与所述lines行列表匹配的关键字;
14、若确定所述映射关系表中存在与所述lines行列表匹配的关键字,则生成一个包含版本信息的字符串version_line;
15、采用content.insert(i+1,version_line)函数,将所述字符串version_line插入到content列表中的下一行,获得更新后的content列表;
16、采用file.truncate()函数,清空所述初始git.log文件的原本内容,获得第一git.log文件;
17、采用file.writelines(content)函数,将所述更新后的content列表写入所述第一git.log文件中,获得所述目标git.log文件。
18、可选的,所述采用-v<version>选项,显示所述目标git.log文件中指定版本号的详细信息的步骤,包括:
19、针对任一个版本号,采用-v<version>选项,确定所述任一个版本号是否存在于所述映射关系表中;
20、若确定所述任一个版本号存在于所述映射关系表中,则构建git show --no-patch<commit hash>命令;其中,所述git show --no-patch<commit hash>命令与所述任一个版本号的关键字对应;
21、采用subprocess模块执行所述git show --no-patch<commit hash>命令,获得执行结果,并将所述执行结果存储于所述output变量中;
22、根据所述output变量的内容,查找change-id行,并将所述change-id行存储于change_id变量中;
23、展示所述任一个版本号的change-id行、提交日期以及提交人。
24、可选的,在将多个版本号加入初始git.log文件中,获得目标git.log文件之后,所述方法还包括:
25、采用git.log文件名选项,确定git日志中所有提交的版本详细信息,并显示每个提交的版本信息的版本号;
26、采用open函数,显示所述目标git.log文件中的各种信息。
27、可选的,在将多个版本号加入初始git.log文件中,获得目标git.log文件之后,所述方法还包括:
28、针对任一个版本号,使用-reset<version>选项,确定所述任一个版本号是否存在于所述映射关系表;
29、若确定所述任一个版本号存在于所述映射关系表中,则获取所述任一个版本号的关键字;
30、构建git reset--hard<commit hash>命令,其中,所述git reset --hard<commithash>命令与所述任一个版本号的关键字对应;
31、采用subprocess模块执行所述git reset--hard<commit hash>命令,将所述git仓库重置于所述任一个版本号的位置。
32、一方面,提供一种基于fttr的日志管理与版本控制装置,应用于fttr框架中,所述装置包括:
33、日志显示单元,用于在无参数的情况下,采用--no-merges--remotes--reverse选项,显示git日志;
34、文件获得单元,用于将多个版本号加入初始git.log文件中,获得目标git.log文件;
35、版本号显示单元,用于采用-v<version>选项,显示所述目标git.log文件中指定版本号的详细信息。
36、与现有技术相比,本申请的有益效果为:
37、在本申请实施例中,首先,可以在无参数的情况下,采用--no-m本文档来自技高网...
【技术保护点】
1.一种基于FTTR的日志管理与版本控制方法,其特征在于,应用于FTTR框架中,所述方法包括:
2.如权利要求1所述的方法,其特征在于,在将多个版本号加入初始git.log文件中,获得目标git.log文件之前,所述方法还包括:
3.如权利要求1所述的方法,其特征在于,在将多个版本号加入初始git.log文件中,获得目标git.log文件之前,所述方法还包括:
4.如权利要求3所述的方法,其特征在于,所述将多个版本号加入初始git.log文件中,获得目标git.log文件的步骤,包括:
5.如权利要求3所述的方法,其特征在于,所述采用-v<version>选项,显示所述目标git.log文件中指定版本号的详细信息的步骤,包括:
6.如权利要求1所述的方法,其特征在于,在将多个版本号加入初始git.log文件中,获得目标git.log文件之后,所述方法还包括:
7.如权利要求3所述的方法,其特征在于,在将多个版本号加入初始git.log文件中,获得目标git.log文件之后,所述方法还包括:
...【技术特征摘要】
1.一种基于fttr的日志管理与版本控制方法,其特征在于,应用于fttr框架中,所述方法包括:
2.如权利要求1所述的方法,其特征在于,在将多个版本号加入初始git.log文件中,获得目标git.log文件之前,所述方法还包括:
3.如权利要求1所述的方法,其特征在于,在将多个版本号加入初始git.log文件中,获得目标git.log文件之前,所述方法还包括:
4.如权利要求3所述的方法,其特征在于,所述将多个版本号加入初始git.log文件中,获得目标git.log文件的步骤,包括:
5.如权利要求3所述的方法,其特征在于,所述采用-v<version>选项,显示所述目标git.lo...
【专利技术属性】
技术研发人员:李鹏程,袁俊杰,孙建,
申请(专利权)人:四川天邑康和通信股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。