mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 04:36:49 +08:00
New Offline: Auto create package if non-existing (#5634)
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
This commit is contained in:
parent
402c970b5e
commit
f386846858
|
@ -99,6 +99,11 @@ CLASS zcl_abapgit_repo DEFINITION
|
||||||
ct_files TYPE zif_abapgit_definitions=>ty_files_tt
|
ct_files TYPE zif_abapgit_definitions=>ty_files_tt
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
|
METHODS check_and_create_package
|
||||||
|
IMPORTING
|
||||||
|
iv_package TYPE devclass
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
|
||||||
DATA mt_local TYPE zif_abapgit_definitions=>ty_files_item_tt .
|
DATA mt_local TYPE zif_abapgit_definitions=>ty_files_item_tt .
|
||||||
|
@ -159,6 +164,30 @@ ENDCLASS.
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD check_and_create_package.
|
||||||
|
|
||||||
|
DATA ls_item TYPE zif_abapgit_definitions=>ty_item.
|
||||||
|
DATA lv_package TYPE devclass.
|
||||||
|
|
||||||
|
ls_item-obj_type = 'DEVC'.
|
||||||
|
ls_item-obj_name = iv_package.
|
||||||
|
|
||||||
|
IF zcl_abapgit_objects=>exists( ls_item ) = abap_false.
|
||||||
|
" Check if any package is included in remote
|
||||||
|
READ TABLE mt_remote TRANSPORTING NO FIELDS
|
||||||
|
WITH KEY file
|
||||||
|
COMPONENTS filename = zcl_abapgit_filename_logic=>c_package_file.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
" If not, prompt to create it
|
||||||
|
lv_package = zcl_abapgit_services_basis=>create_package( iv_package ).
|
||||||
|
IF lv_package IS NOT INITIAL.
|
||||||
|
COMMIT WORK AND WAIT.
|
||||||
|
ENDIF.
|
||||||
|
ENDIF.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD bind_listener.
|
METHOD bind_listener.
|
||||||
mi_listener = ii_listener.
|
mi_listener = ii_listener.
|
||||||
|
|
|
@ -31,11 +31,7 @@ CLASS zcl_abapgit_repo_online DEFINITION
|
||||||
ALIASES get_switched_origin
|
ALIASES get_switched_origin
|
||||||
FOR zif_abapgit_repo_online~get_switched_origin.
|
FOR zif_abapgit_repo_online~get_switched_origin.
|
||||||
|
|
||||||
METHODS check_and_create_package
|
|
||||||
IMPORTING
|
|
||||||
!iv_package TYPE devclass
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
|
|
||||||
METHODS get_files_remote
|
METHODS get_files_remote
|
||||||
REDEFINITION .
|
REDEFINITION .
|
||||||
|
@ -79,32 +75,6 @@ ENDCLASS.
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_REPO_ONLINE IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_REPO_ONLINE IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD check_and_create_package.
|
|
||||||
|
|
||||||
DATA ls_item TYPE zif_abapgit_definitions=>ty_item.
|
|
||||||
DATA lv_package TYPE devclass.
|
|
||||||
|
|
||||||
ls_item-obj_type = 'DEVC'.
|
|
||||||
ls_item-obj_name = iv_package.
|
|
||||||
|
|
||||||
IF zcl_abapgit_objects=>exists( ls_item ) = abap_false.
|
|
||||||
" Check if any package is included in remote
|
|
||||||
READ TABLE mt_remote TRANSPORTING NO FIELDS
|
|
||||||
WITH KEY file
|
|
||||||
COMPONENTS filename = zcl_abapgit_filename_logic=>c_package_file.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
" If not, prompt to create it
|
|
||||||
lv_package = zcl_abapgit_services_basis=>create_package( iv_package ).
|
|
||||||
IF lv_package IS NOT INITIAL.
|
|
||||||
COMMIT WORK AND WAIT.
|
|
||||||
ENDIF.
|
|
||||||
ENDIF.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD fetch_remote.
|
METHOD fetch_remote.
|
||||||
|
|
||||||
DATA: li_progress TYPE REF TO zif_abapgit_progress,
|
DATA: li_progress TYPE REF TO zif_abapgit_progress,
|
||||||
|
|
|
@ -522,6 +522,8 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
|
||||||
|
|
||||||
ls_repo-local_settings-main_language_only = iv_main_lang_only.
|
ls_repo-local_settings-main_language_only = iv_main_lang_only.
|
||||||
lo_repo->set_local_settings( ls_repo-local_settings ).
|
lo_repo->set_local_settings( ls_repo-local_settings ).
|
||||||
|
lo_repo->check_and_create_package( iv_package ).
|
||||||
|
|
||||||
ri_repo = lo_repo.
|
ri_repo = lo_repo.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user