1. 背景
abapGit是为ABAP服务器开发的开源Git客户端,用于在ABAP系统之间导入和导出ABAP对象。
使用abapGit,可以将ABAP对象从任何系统导出到另一个系统,通常是从本地系统导出到云,或者从一个云系统导出到另一个云系统。
当然从本地系统A导入到本地系统B也是支持的。
有关abapGit的安装,可查看其官方文档abapGit - Welcome。今天,给大家介绍abapGit的一个离线功能,也即在离线模式下,将一个开发对象通过zip包的形式,从一个系统导入到另一个系统。
2. 导出、导入开发对象
注意,使用此功能前,请确认你已经完成了abapGit的安装。
接下来,我们要做这样一件事。
将A系统的本地的一个开发包TEST_GG_ZS4HRAP下的对象,导入到B系统,并重命名为$GG_ZS4HRAP。
2.1 导出
在A系统运行事务代码zabapgit, 进入abapGit页面,点击New Offine.

填写git repository的名字和要导出系统A中package名字,然后点击create offline repository。
这一步的目的是,在git上创建一个离线的repository,用于存放待导出对象,然后基于这个repository,生成离线可下载的zip包。

我们在这个offine的repository中,可以看到所有要导出的对象,然后点击Export, 将生成的zip包保存在本地。
这样,就完成了导出操作。
2.2 导入
接下来,登录待导入的系统B,运行zabapgit事务代码,并点击New Offline。

填写git repository的名字和要导入系统B中package名字 (若package不存在,系统会自动先创建这个package),然后点击create offline repository。
因为package $GG_ZS4HRAP在系统B还不存在,abapgit会自动创建这个package,在此提供这个package的描述信息。

点击Import,并选择上传刚刚从A系统下载出来的zip包。
这时,可以看到,zip包中待导入的对象会上传到git的repository中,点击Pull,将这些对象导入到系统B的package中。

导入完成后,使用SE80,可以在系统B中查看已经导入的对象包。

2.3 移除临时的repository
如果不再需要系统A和系统B上为了导出、导入代码生成的临时的repository,可以通过remove功能将其删除。

3.小结
本文介绍如何利用abapGit的一个离线模式,将一个开发对象包从一个系统导入到另一个系统,从而完成代码迁移。有关abapGit的online模式,大家可以根据官方文档,完成与github的链接,从而实现利用github管理ABAP代码。