CN111104151A - 一种基于Shell脚本的Git代码简化的管理方法 - Google Patents

一种基于Shell脚本的Git代码简化的管理方法 Download PDF

Info

Publication number
CN111104151A
CN111104151A CN201911175258.4A CN201911175258A CN111104151A CN 111104151 A CN111104151 A CN 111104151A CN 201911175258 A CN201911175258 A CN 201911175258A CN 111104151 A CN111104151 A CN 111104151A
Authority
CN
China
Prior art keywords
code
source codes
codes
txt
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.)
Granted
Application number
CN201911175258.4A
Other languages
English (en)
Other versions
CN111104151B (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.)
Shenzhen Huazhuo Intelligent Technology Co Ltd
Original Assignee
Shenzhen Huazhuo Intelligent 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 Shenzhen Huazhuo Intelligent Technology Co Ltd filed Critical Shenzhen Huazhuo Intelligent Technology Co Ltd
Priority to CN201911175258.4A priority Critical patent/CN111104151B/zh
Publication of CN111104151A publication Critical patent/CN111104151A/zh
Application granted granted Critical
Publication of CN111104151B publication Critical patent/CN111104151B/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/70Software maintenance or management

Landscapes

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

Abstract

本发明属于数据处理技术领域,公开了一种基于Shell脚本的Git代码简化的管理方法,包括如下步骤:S1:同步源码,并删除第一套源码中后缀名为.repo的代码信息;S2:建立代码仓库;S3:最新第二套源码,建立目标目录文件夹;S4:获取差异信息,并保存至更新代码文件中;S5:将更新代码文件中每个代码文件相对根目录的绝对路径进行拼接,并将其保存至路径文件中;S6:在第二套源码中提取对应的代码文件,并将代码文件保存至目标目录文件夹中;S7:将目标目录文件夹中的代码文件与第一套源码进行对比,获取源码的修改记录。本发明解决了现有技术存在的成本投入,并且不能直观的对比代码,进行代码管理的问题。

Description

一种基于Shell脚本的Git代码简化的管理方法
技术领域
本发明属于数据处理技术领域,具体涉及一种基于Shell脚本的Git代码简化的管理方法。
背景技术
Git是一个开源版本管理系统,只在处理各种知识库发布的大型项目,比如本地分支化、提交、对比和编辑。Repo是基于Git工具的知识库管理系统工具,改工具可以统一管理Git知识库并提交源码到版本管理系统,是的Android项目的开发流程自动化。
在Android的版本迭代史中,Git曾经是我们开发者最熟悉的代码管理工具。随着Android版本的更新,越来越多的功能兼容进系统中最直接的表现是,代码越来越大,对于Google来讲使用单一的Git管理整个Android源码已经无法满足他们的需求,故而推出了repo。repo的本质类似Shell脚本,使用它讲Android源码分解为一千多个仓库,这样可以方便原厂开发时更好的管理代码。
对于小公司来讲,其开发的内容较少并不需要分解源码,现有技术将源码分解为多个仓库,反而加大了成本投入,并且不能直观的对比代码,进行代码管理。故而现在需要一种能在使用repo同步原厂代码后,能够高效生成以及合并到自己创建的git仓库的一种方法。
发明内容
为了解决现有技术存在的上述问题,本发明目的在于提供一种基于Shell脚本的Git代码简化的管理方法。
本发明所采用的技术方案为:
一种基于Shell脚本的Git代码简化的管理方法,包括如下步骤:
S1:将源码同步至本地服务器,所述源码包括代码相同的第一套源码和第二套源码,并删除第一套源码中后缀名为.repo的代码信息;
S2:进行初始化,即建立代码仓库,并将第一套源码和第二套源码保存至代码仓库中;
S3:将本地服务器上最新的修改记录同步至第二套源码,并使用脚本命令在代码仓库中存放源码的根目录中建立目标目录文件夹patch_out;
S4:在代码仓库中建立更新代码文件updatecode.txt,使用repo命令获取第一套源码和同步后的第二套源码的差异信息,并使用指定格式将差异信息保存至updatecode.txt中;
S5:在代码仓库中建立路径文件path.txt,使用脚本命令将updatecode.txt进行转换,即将updatecode.txt中每个代码文件相对根目录的绝对路径进行拼接,并将拼接后的绝对路径保存至path.txt中;
S6:使用脚本命令根据path.txt中所有的绝对路径在第二套源码中提取对应的代码文件,并将代码文件保存至patch_out中;
S7:将patch_out中的代码文件与第一套源码进行对比,获取源码的修改记录,实现代码的管理。
进一步地,代码仓库为Git仓库。
进一步地,脚本为Shell脚本,脚本命令为Shell命令。
进一步地,步骤S6和步骤S7之间,还包括步骤S6.5,步骤S6.5:判断步骤S6提取的代码文件中是否包括需要删除的代码文件,若是则进行提示,并进入步骤S7,否则直接进入步骤S7。
进一步地,提示方法为:根据需要删除的代码文件建立提示文件NoSuchFile.txt,并将NoSuchFile.txt保存至patch_out中。
进一步地,步骤S7中,使用BCompare工具将patch_out中的代码文件与第一套源码进行对比。
本发明的有益效果为:
本发明在进行代码的管理时只需要生成一个单一的Git仓库,从而能够直观的直接观察整套代码的状态,同时将生成的patch_out文件中的代码文件与Git仓库中的源码进行对比,只需要对比更新的几个文件,而不需要将整套的源码进行对比,就能获取修改信息,大大简化了Git仓库中需要与源码进行对比的代码,节省了大量的时间和成本投入,对代码的管理更加便捷。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是基于Shell脚本的Git代码简化的管理方法流程框图。
具体实施方式
下面结合附图及具体实施例来对本发明作进一步阐述。在此需要说明的是,对于这些实施例方式的说明虽然是用于帮助理解本发明,但并不构成对本发明的限定。本发明公开的功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本发明阐述的实施例中。
应当理解,本发明使用的术语仅用于描述特定实施例,并不意在限制本发明的示例实施例。若术语“包括”、“包括了”、“包含”和/或“包含了”在本发明中被使用时,指定所声明的特征、整数、步骤、操作、单元和/或组件的存在性,并且不排除一个或多个其他特征、数量、步骤、操作、单元、组件和/或他们的组合存在性或增加。
应当理解,还应当注意到在一些备选实施例中,所出现的功能/动作可能与附图出现的顺序不同。例如,取决于所涉及的功能/动作,实际上可以实质上并发地执行,或者有时可以以相反的顺序来执行连续示出的两个图。
应当理解,在下面的描述中提供了特定的细节,以便于对示例实施例的完全理解。然而,本领域普通技术人员应当理解可以在没有这些特定细节的情况下实现示例实施例。例如可以在框图中示出系统,以避免用不必要的细节来使得示例不清楚。在其他实例中,可以不以不必要的细节来示出众所周知的过程、结构和技术,以避免使得示例实施例不清楚。
实施例1:
实施例中所包含的目标目录文件夹patch_out、更新代码文件updatecode.txt、路径文件path.txt以及提示文件NoSuchFile.txt,在实际实施过程中,文件和文件夹的名称或表达方式可能不同,但实际采用的方式是一样的。
本实施例提供一种基于Shell脚本的Git代码简化的管理方法,如图1所示,包括如下步骤:
S1:将源码同步至本地服务器,所述源码包括代码相同的第一套源码和第二套源码,并删除第一套源码中后缀名为.repo的代码信息;
S2:进行初始化,即建立Git仓库,并将第一套源码和第二套源码保存至Git仓库中;
S3:将本地服务器上最新的修改记录同步至第二套源码,并使用Shell命令在Git仓库中存放源码的根目录中建立目标目录文件夹patch_out,用于存放以下步骤生成的中间文件;
建立目标目录文件夹patch_out的具体代码为:
Figure BDA0002289793140000051
S4:在Git仓库中建立更新代码文件updatecode.txt,使用repo命令获取第一套源码和同步后的第二套源码的差异信息,并使用指定格式将差异信息保存至updatecode.txt中;
建立更新代码文件updatecode.txt的具体代码为:
Figure BDA0002289793140000052
Figure BDA0002289793140000061
updatecode.txt的具体代码为:
Figure BDA0002289793140000062
S5:在Git仓库中建立路径文件path.txt,使用Shell命令将updatecode.txt进行转换,即将updatecode.txt中每个代码文件相对根目录的绝对路径进行拼接,并将拼接后的绝对路径保存至path.txt中;
本步骤的具体代码为:
Figure BDA0002289793140000071
Figure BDA0002289793140000081
path.txt的具体代码为:
art/libartbase/base/os_linux.cc
art/runtime/jit/profile_saver_options.h
bionic/linker/linker.cpp
bionic/linker/linker.h
bionic/linker/linker_allocator.cpp
bionic/linker/linker_allocator.h
bionic/linker/linker_block_allocator.cpp
bionic/linker/linker_block_allocator.h
bionic/linker/linker_main.cpp
build/make/core/version_defaults.mk
S6:使用Shell命令根据path.txt中所有的绝对路径在第二套源码中提取对应的代码文件,并将代码文件保存至patch_out中;
本步骤的具体代码为:
Figure BDA0002289793140000091
S6.5:判断步骤S6提取的代码文件中是否包括需要删除的代码文件,若是则进行提示,并进入步骤S7,否则直接进入步骤S7;
提示方法为:根据需要删除的代码文件建立提示文件NoSuchFile.txt,并将NoSuchFile.txt保存至patch_out中;
NoSuchFile.txt的具体代码为:
Figure BDA0002289793140000092
Figure BDA0002289793140000101
S7:使用BCompare工具将patch_out中的代码文件与第一套源码进行对比,获取源码的修改记录,实现代码的管理,并等待下一次本地服务器上对源码进行修改的最新的修改记录,然后初始化Git仓库、目标目录文件夹patch_out、更新代码文件updatecode.txt、路径文件path.txt以及提示文件NoSuchFile.txt,并重新开始步骤S1。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
本发明不局限于上述可选的实施方式,任何人在本发明的启示下都可得出其他各种形式的产品。上述具体实施方式不应理解成对本发明的保护范围的限制,本发明的保护范围应当以权利要求书中界定的为准,并且说明书可以用于解释权利要求书。

Claims (6)

1.一种基于Shell脚本的Git代码简化的管理方法,其特征在于:包括如下步骤:
S1:将源码同步至本地服务器,所述源码包括代码相同的第一套源码和第二套源码,并删除第一套源码中后缀名为.repo的代码信息;
S2:进行初始化,即建立代码仓库,并将第一套源码和第二套源码保存至代码仓库中;
S3:将本地服务器上最新的修改记录同步至第二套源码,并使用脚本命令在代码仓库中存放源码的根目录中建立目标目录文件夹patch_out;
S4:在代码仓库中建立更新代码文件updatecode.txt,使用repo命令获取第一套源码和同步后的第二套源码的差异信息,并使用指定格式将差异信息保存至updatecode.txt中;
S5:在代码仓库中建立路径文件path.txt,使用脚本命令将updatecode.txt进行转换,即将updatecode.txt中每个代码文件相对根目录的绝对路径进行拼接,并将拼接后的绝对路径保存至path.txt中;
S6:使用脚本命令根据path.txt中所有的绝对路径在第二套源码中提取对应的代码文件,并将代码文件保存至patch_out中;
S7:将patch_out中的代码文件与第一套源码进行对比,获取源码的修改记录,实现代码的管理。
2.根据权利要求1所述的基于Shell脚本的Git代码简化的管理方法,其特征在于:所述代码仓库为Git仓库。
3.根据权利要求1所述的基于Shell脚本的Git代码简化的管理方法,其特征在于:所述脚本为Shell脚本,所述脚本命令为Shell命令。
4.根据权利要求1所述的基于Shell脚本的Git代码简化的管理方法,其特征在于:所述步骤S6和步骤S7之间,还包括步骤S6.5,所述步骤S6.5:判断步骤S6提取的代码文件中是否包括需要删除的代码文件,若是则进行提示,并进入步骤S7,否则直接进入步骤S7。
5.根据权利要求4所述的基于Shell脚本的Git代码简化的管理方法,其特征在于:所述提示方法为:根据需要删除的代码文件建立提示文件NoSuchFile.txt,并将NoSuchFile.txt保存至patch_out中。
6.根据权利要求1所述的基于Shell脚本的Git代码简化的管理方法,其特征在于:所述步骤S7中,使用BCompare工具将patch_out中的代码文件与第一套源码进行对比。
CN201911175258.4A 2019-11-26 2019-11-26 一种基于Shell脚本的Git代码简化的管理方法 Active CN111104151B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911175258.4A CN111104151B (zh) 2019-11-26 2019-11-26 一种基于Shell脚本的Git代码简化的管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911175258.4A CN111104151B (zh) 2019-11-26 2019-11-26 一种基于Shell脚本的Git代码简化的管理方法

Publications (2)

Publication Number Publication Date
CN111104151A true CN111104151A (zh) 2020-05-05
CN111104151B CN111104151B (zh) 2023-02-28

Family

ID=70421222

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911175258.4A Active CN111104151B (zh) 2019-11-26 2019-11-26 一种基于Shell脚本的Git代码简化的管理方法

Country Status (1)

Country Link
CN (1) CN111104151B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111613116A (zh) * 2020-05-09 2020-09-01 广州大学 基于ArduBlock的实体化积木、编程方法及系统
CN112732331A (zh) * 2021-01-07 2021-04-30 苏州浪潮智能科技有限公司 一种代码历史记录恢复方法、系统及介质
CN112925561A (zh) * 2021-03-23 2021-06-08 北京字节跳动网络技术有限公司 一种软件开发方法、装置、计算机设备及存储介质
CN113590172A (zh) * 2021-07-28 2021-11-02 北京百度网讯科技有限公司 一种代码文件发布方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110035726A1 (en) * 2009-08-07 2011-02-10 International Business Machines Corporation Identifying source code elements for refactoring
CN105373388A (zh) * 2015-11-30 2016-03-02 西安闻泰电子科技有限公司 自动上传patch修改的代码管理方法
US20160313989A1 (en) * 2013-12-16 2016-10-27 Zte Corporation Method and Apparatus for Manufacturing File System Update Package, Method and Apparatus for Updating File System Update Package, and Terminal
CN106843914A (zh) * 2017-03-31 2017-06-13 惠州华阳通用电子有限公司 一种软件源代码差异文件提取方法
CN106844730A (zh) * 2017-02-10 2017-06-13 网易(杭州)网络有限公司 文件内容的显示方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110035726A1 (en) * 2009-08-07 2011-02-10 International Business Machines Corporation Identifying source code elements for refactoring
US20160313989A1 (en) * 2013-12-16 2016-10-27 Zte Corporation Method and Apparatus for Manufacturing File System Update Package, Method and Apparatus for Updating File System Update Package, and Terminal
CN105373388A (zh) * 2015-11-30 2016-03-02 西安闻泰电子科技有限公司 自动上传patch修改的代码管理方法
CN106844730A (zh) * 2017-02-10 2017-06-13 网易(杭州)网络有限公司 文件内容的显示方法及装置
CN106843914A (zh) * 2017-03-31 2017-06-13 惠州华阳通用电子有限公司 一种软件源代码差异文件提取方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111613116A (zh) * 2020-05-09 2020-09-01 广州大学 基于ArduBlock的实体化积木、编程方法及系统
CN112732331A (zh) * 2021-01-07 2021-04-30 苏州浪潮智能科技有限公司 一种代码历史记录恢复方法、系统及介质
CN112732331B (zh) * 2021-01-07 2022-07-12 苏州浪潮智能科技有限公司 一种代码历史记录恢复方法、系统及介质
CN112925561A (zh) * 2021-03-23 2021-06-08 北京字节跳动网络技术有限公司 一种软件开发方法、装置、计算机设备及存储介质
CN113590172A (zh) * 2021-07-28 2021-11-02 北京百度网讯科技有限公司 一种代码文件发布方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN111104151B (zh) 2023-02-28

Similar Documents

Publication Publication Date Title
CN111104151B (zh) 一种基于Shell脚本的Git代码简化的管理方法
CN109840429B (zh) 智能合约部署、调用方法和装置
US9411576B2 (en) Software version management for executing replacement actions
CN107391104B (zh) 一种客户端与react native代码的更新依赖管理方法、装置及系统
US9218137B2 (en) System and method for providing data migration services
US9779126B2 (en) Hybrid database upgrade migration
CN103984582A (zh) 一种热更新方法和装置
US10248409B1 (en) Limiting the effects of source code patches on corresponding native-code patches
CN110442371B (zh) 一种发布代码的方法、装置、介质及计算机设备
CN112214221B (zh) 一种用于Linux系统构建的方法与设备
CN102193841B (zh) 一种Subversion配置库的备份方法及装置
US11544050B1 (en) Software patch automation
CN115421764A (zh) 一种待升级模块识别方法、装置、设备及存储介质
CN114942933A (zh) 一种自动更新数据库的方法及相关装置
CN111984264B (zh) 一种静态库的生成方法和装置
US11675772B2 (en) Updating attributes in data
CN111796855B (zh) 一种增量版本更新方法、装置、存储介质及计算机设备
CN106776824B (zh) Android数据库的升级方法及系统
CN115129740B (zh) 一种云原生环境下的分布式微服务数据库更新方法及系统
CN108536447B (zh) 运维管理方法
CN113821228B (zh) 一种基于分层容器镜像构建ros或类ros项目的方法
CN115080114A (zh) 应用程序的移植处理方法、装置和介质
CN114625373A (zh) 应用转换方法、装置、电子设备和存储介质
CN114706608A (zh) 升级固件的方法和电子设备
CN113821249A (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