Repo Refactoring: Use interfaces instead of classes (#7189)
Some checks are pending
main-build / build-merged (push) Waiting to run
main-build / auto-tag (push) Waiting to run
main-build / auto-tag-artifact (push) Blocked by required conditions
main-build / coverage (push) Waiting to run

Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Christian Günter 2025-04-10 08:52:51 +02:00 committed by GitHub
parent aaec314b14
commit d79887c0a2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
59 changed files with 1108 additions and 875 deletions

View File

@ -135,13 +135,14 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
METHOD run.
DATA: lo_per TYPE REF TO zcl_abapgit_persist_background,
lo_repo TYPE REF TO zcl_abapgit_repo_online,
lt_list TYPE zcl_abapgit_persist_background=>ty_background_keys,
li_background TYPE REF TO zif_abapgit_background,
li_log TYPE REF TO zif_abapgit_log,
lx_error TYPE REF TO zcx_abapgit_exception,
lv_repo_name TYPE string.
DATA: lo_per TYPE REF TO zcl_abapgit_persist_background,
li_repo TYPE REF TO zif_abapgit_repo,
li_repo_online TYPE REF TO zif_abapgit_repo_online,
lt_list TYPE zcl_abapgit_persist_background=>ty_background_keys,
li_background TYPE REF TO zif_abapgit_background,
li_log TYPE REF TO zif_abapgit_log,
lx_error TYPE REF TO zcx_abapgit_exception,
lv_repo_name TYPE string.
FIELD-SYMBOLS: <ls_list> LIKE LINE OF lt_list.
@ -161,12 +162,13 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
CREATE OBJECT li_log TYPE zcl_abapgit_log.
TRY.
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( <ls_list>-key ).
lv_repo_name = lo_repo->get_name( ).
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( <ls_list>-key ).
li_repo_online ?= li_repo.
lv_repo_name = li_repo->get_name( ).
WRITE: / <ls_list>-method, lv_repo_name.
zcl_abapgit_login_manager=>set(
iv_uri = lo_repo->get_url( )
iv_uri = li_repo_online->get_url( )
iv_username = <ls_list>-username
iv_password = <ls_list>-password ).
@ -174,16 +176,16 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
CREATE OBJECT li_background TYPE (<ls_list>-method).
li_background->run(
io_repo = lo_repo
ii_log = li_log
it_settings = <ls_list>-settings ).
ii_repo_online = li_repo_online
ii_log = li_log
it_settings = <ls_list>-settings ).
CATCH cx_sy_create_object_error.
li_log->add_warning( |{ <ls_list>-method } could not be executed,|
& | as it is not accessible (local/global class).| ).
ENDTRY.
" Decrease memory usage for repository already processed (but keep log)
lo_repo->refresh(
li_repo->refresh(
iv_drop_cache = abap_true
iv_drop_log = abap_false ).
CATCH zcx_abapgit_exception INTO lx_error.

View File

@ -11,7 +11,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_BACKGROUND_PULL IMPLEMENTATION.
CLASS zcl_abapgit_background_pull IMPLEMENTATION.
METHOD zif_abapgit_background~get_description.
@ -30,12 +30,14 @@ CLASS ZCL_ABAPGIT_BACKGROUND_PULL IMPLEMENTATION.
DATA: ls_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks,
lo_settings TYPE REF TO zcl_abapgit_settings,
li_repo TYPE REF TO zif_abapgit_repo,
lv_activation_setting TYPE zif_abapgit_definitions=>ty_s_user_settings-activate_wo_popup.
FIELD-SYMBOLS: <ls_overwrite> LIKE LINE OF ls_checks-overwrite.
li_repo = ii_repo_online.
ls_checks = io_repo->deserialize_checks( ).
ls_checks = li_repo->deserialize_checks( ).
LOOP AT ls_checks-overwrite ASSIGNING <ls_overwrite>.
<ls_overwrite>-decision = zif_abapgit_definitions=>c_yes.
@ -49,11 +51,11 @@ CLASS ZCL_ABAPGIT_BACKGROUND_PULL IMPLEMENTATION.
" pass decisions to delete
zcl_abapgit_services_repo=>delete_unnecessary_objects(
io_repo = io_repo
ii_repo = li_repo
is_checks = ls_checks
ii_log = ii_log ).
io_repo->deserialize( is_checks = ls_checks
li_repo->deserialize( is_checks = ls_checks
ii_log = ii_log ).
lo_settings->set_activate_wo_popup( lv_activation_setting ).

View File

@ -17,7 +17,7 @@ CLASS zcl_abapgit_background_push_au DEFINITION
VALUE(rv_comment) TYPE string .
METHODS push_auto
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo_online
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
RAISING
zcx_abapgit_exception .
METHODS determine_user_details
@ -27,8 +27,8 @@ CLASS zcl_abapgit_background_push_au DEFINITION
VALUE(rs_user) TYPE zif_abapgit_git_definitions=>ty_git_user .
METHODS push_deletions
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo_online
!is_files TYPE zif_abapgit_definitions=>ty_stage_files
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
!is_files TYPE zif_abapgit_definitions=>ty_stage_files
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
@ -110,7 +110,7 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
<ls_local> LIKE LINE OF ls_files-local.
ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( io_repo ).
ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( ii_repo_online ).
LOOP AT ls_files-local ASSIGNING <ls_local>.
lv_changed_by = zcl_abapgit_objects=>changed_by(
@ -172,13 +172,13 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
ls_comment-comment = build_comment( ls_user_files ).
io_repo->push( is_comment = ls_comment
io_stage = lo_stage ).
ii_repo_online->push( is_comment = ls_comment
io_stage = lo_stage ).
ENDLOOP.
IF lines( ls_files-remote ) > 0.
push_deletions( io_repo = io_repo
is_files = ls_files ).
push_deletions( ii_repo_online = ii_repo_online
is_files = ls_files ).
ENDIF.
ENDMETHOD.
@ -212,8 +212,8 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
ls_comment-committer-name = 'Deletion'.
ls_comment-committer-email = 'deletion@localhost'.
io_repo->push( is_comment = ls_comment
io_stage = lo_stage ).
ii_repo_online->push( is_comment = ls_comment
io_stage = lo_stage ).
ENDMETHOD.
@ -237,14 +237,14 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
DATA: ls_files TYPE zif_abapgit_definitions=>ty_stage_files.
mi_log = ii_log.
ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( io_repo ).
ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( ii_repo_online ).
IF lines( ls_files-local ) = 0 AND lines( ls_files-remote ) = 0.
ii_log->add_info( 'Nothing to stage' ).
RETURN.
ENDIF.
push_auto( io_repo ).
push_auto( ii_repo_online ).
ENDMETHOD.
ENDCLASS.

View File

@ -22,9 +22,9 @@ CLASS zcl_abapgit_background_push_fi DEFINITION
VALUE(rv_comment) TYPE string .
METHODS push_fixed
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo_online
!iv_name TYPE string
!iv_email TYPE string
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
!iv_name TYPE string
!iv_email TYPE string
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
@ -73,7 +73,7 @@ CLASS zcl_abapgit_background_push_fi IMPLEMENTATION.
<ls_remote> LIKE LINE OF ls_files-remote.
ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( io_repo ).
ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( ii_repo_online ).
ASSERT lines( ls_files-local ) > 0
OR lines( ls_files-remote ) > 0.
@ -99,8 +99,8 @@ CLASS zcl_abapgit_background_push_fi IMPLEMENTATION.
ls_comment-committer-email = iv_email.
ls_comment-comment = build_comment( ls_files ).
io_repo->push( is_comment = ls_comment
io_stage = lo_stage ).
ii_repo_online->push( is_comment = ls_comment
io_stage = lo_stage ).
ENDMETHOD.
@ -142,7 +142,7 @@ CLASS zcl_abapgit_background_push_fi IMPLEMENTATION.
lv_email TYPE string.
mi_log = ii_log.
ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( io_repo ).
ls_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( ii_repo_online ).
IF lines( ls_files-local ) = 0 AND lines( ls_files-remote ) = 0.
ii_log->add_info( 'Nothing to stage' ).
@ -156,9 +156,9 @@ CLASS zcl_abapgit_background_push_fi IMPLEMENTATION.
lv_email = ls_setting-value.
push_fixed(
io_repo = io_repo
iv_name = lv_name
iv_email = lv_email ).
ii_repo_online = ii_repo_online
iv_name = lv_name
iv_email = lv_email ).
ENDMETHOD.
ENDCLASS.

View File

@ -18,9 +18,9 @@ INTERFACE zif_abapgit_background
ct_settings TYPE ty_settings_tt .
METHODS run
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo_online
!ii_log TYPE REF TO zif_abapgit_log
!it_settings TYPE ty_settings_tt OPTIONAL
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
!ii_log TYPE REF TO zif_abapgit_log
!it_settings TYPE ty_settings_tt OPTIONAL
RAISING
zcx_abapgit_exception .
ENDINTERFACE.

View File

@ -71,7 +71,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_TRANSPORT IMPLEMENTATION.
CLASS zcl_abapgit_transport IMPLEMENTATION.
METHOD add_all_objects_to_trans_req.
@ -146,7 +146,7 @@ CLASS ZCL_ABAPGIT_TRANSPORT IMPLEMENTATION.
lt_objects TYPE scts_tadir,
lt_objects_all LIKE lt_objects,
ls_e071 LIKE LINE OF rt_objects,
lo_repo TYPE REF TO zcl_abapgit_repo,
li_repo TYPE REF TO zif_abapgit_repo,
lv_package TYPE zif_abapgit_persistence=>ty_repo-package,
lt_packages TYPE zif_abapgit_sap_package=>ty_devclass_tt.
@ -154,8 +154,8 @@ CLASS ZCL_ABAPGIT_TRANSPORT IMPLEMENTATION.
<lv_package> TYPE devclass,
<ls_object> TYPE tadir.
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
lv_package = lo_repo->get_package( ).
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
lv_package = li_repo->get_package( ).
lt_packages = zcl_abapgit_factory=>get_sap_package( lv_package )->list_subpackages( ).
INSERT lv_package INTO TABLE lt_packages.

View File

@ -7,7 +7,7 @@ CLASS zcl_abapgit_transport_2_branch DEFINITION
METHODS create
IMPORTING
!io_repository TYPE REF TO zcl_abapgit_repo_online
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
!is_transport_to_branch TYPE zif_abapgit_definitions=>ty_transport_to_branch
!it_transport_objects TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
@ -46,13 +46,13 @@ CLASS zcl_abapgit_transport_2_branch IMPLEMENTATION.
lv_branch_name = zcl_abapgit_git_branch_list=>complete_heads_branch_name(
zcl_abapgit_git_branch_list=>normalize_branch_name( is_transport_to_branch-branch_name ) ).
io_repository->create_branch( lv_branch_name ).
ii_repo_online->create_branch( lv_branch_name ).
CREATE OBJECT lo_stage.
ls_stage_objects = zcl_abapgit_stage_logic=>get_stage_logic( )->get( io_repository ).
ls_stage_objects = zcl_abapgit_stage_logic=>get_stage_logic( )->get( ii_repo_online ).
lt_object_statuses = zcl_abapgit_repo_status=>calculate( io_repository ).
lt_object_statuses = zcl_abapgit_repo_status=>calculate( ii_repo_online ).
stage_transport_objects(
it_transport_objects = it_transport_objects
@ -62,8 +62,8 @@ CLASS zcl_abapgit_transport_2_branch IMPLEMENTATION.
ls_comment = generate_commit_message( is_transport_to_branch ).
io_repository->push( is_comment = ls_comment
io_stage = lo_stage ).
ii_repo_online->push( is_comment = ls_comment
io_stage = lo_stage ).
ENDMETHOD.

View File

@ -44,7 +44,7 @@ CLASS zcl_abapgit_data_deserializer DEFINITION
zcx_abapgit_exception .
METHODS determine_transport_request
IMPORTING
io_repo TYPE REF TO zcl_abapgit_repo
ii_repo TYPE REF TO zif_abapgit_repo
iv_transport_type TYPE zif_abapgit_definitions=>ty_transport_type
RETURNING
VALUE(rv_transport_request) TYPE trkorr.
@ -88,11 +88,11 @@ CLASS zcl_abapgit_data_deserializer IMPLEMENTATION.
" Use transport from repo settings if maintained, or determine via user exit.
" If transport keeps empty here, it'll requested later via popup.
rv_transport_request = io_repo->get_local_settings( )-customizing_request.
rv_transport_request = ii_repo->get_local_settings( )-customizing_request.
li_exit->determine_transport_request(
EXPORTING
io_repo = io_repo
ii_repo = ii_repo
iv_transport_type = iv_transport_type
CHANGING
cv_transport_request = rv_transport_request ).
@ -337,7 +337,7 @@ CLASS zcl_abapgit_data_deserializer IMPLEMENTATION.
rs_checks-type-request = zif_abapgit_cts_api=>c_transport_type-cust_request.
rs_checks-type-task = zif_abapgit_cts_api=>c_transport_type-cust_task.
rs_checks-transport = determine_transport_request(
io_repo = io_repo
ii_repo = ii_repo
iv_transport_type = rs_checks-type ).
ENDIF.

View File

@ -15,7 +15,7 @@ INTERFACE zif_abapgit_data_deserializer
METHODS deserialize_check
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
!ii_config TYPE REF TO zif_abapgit_data_config
RETURNING
VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_deserialize_checks-customizing

View File

@ -317,8 +317,8 @@ CLASS zcl_abapgit_exit IMPLEMENTATION.
TRY.
gi_exit->determine_transport_request(
EXPORTING
io_repo = io_repo
iv_transport_type = iv_transport_type
ii_repo = ii_repo
iv_transport_type = iv_transport_type
CHANGING
cv_transport_request = cv_transport_request ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
@ -452,9 +452,9 @@ CLASS zcl_abapgit_exit IMPLEMENTATION.
IF gi_exit IS NOT INITIAL.
TRY.
gi_exit->validate_before_push(
is_comment = is_comment
io_stage = io_stage
io_repo = io_repo ).
is_comment = is_comment
io_stage = io_stage
ii_repo_online = ii_repo_online ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.

View File

@ -111,7 +111,7 @@ INTERFACE zif_abapgit_exit PUBLIC.
METHODS determine_transport_request
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
!iv_transport_type TYPE zif_abapgit_definitions=>ty_transport_type
CHANGING
!cv_transport_request TYPE trkorr.
@ -167,9 +167,9 @@ INTERFACE zif_abapgit_exit PUBLIC.
METHODS validate_before_push
IMPORTING
!is_comment TYPE zif_abapgit_git_definitions=>ty_comment
!io_stage TYPE REF TO zcl_abapgit_stage
!io_repo TYPE REF TO zcl_abapgit_repo_online
!is_comment TYPE zif_abapgit_git_definitions=>ty_comment
!io_stage TYPE REF TO zcl_abapgit_stage
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
RAISING
zcx_abapgit_exception.

View File

@ -7,9 +7,9 @@ CLASS zcl_abapgit_git_url DEFINITION
METHODS get_commit_display_url
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo_online
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
RETURNING
VALUE(rv_url) TYPE string
VALUE(rv_url) TYPE string
RAISING
zcx_abapgit_exception .
@ -40,18 +40,21 @@ CLASS zcl_abapgit_git_url IMPLEMENTATION.
METHOD get_commit_display_url.
DATA li_exit TYPE REF TO zif_abapgit_exit.
DATA li_repo TYPE REF TO zif_abapgit_repo.
li_repo = ii_repo_online.
rv_url = get_default_commit_display_url(
iv_repo_url = io_repo->get_url( )
iv_hash = io_repo->get_current_remote( ) ).
iv_repo_url = ii_repo_online->get_url( )
iv_hash = ii_repo_online->get_current_remote( ) ).
li_exit = zcl_abapgit_exit=>get_instance( ).
li_exit->adjust_display_commit_url(
EXPORTING
iv_repo_url = io_repo->get_url( )
iv_repo_name = io_repo->get_name( )
iv_repo_key = io_repo->get_key( )
iv_commit_hash = io_repo->get_current_remote( )
iv_repo_url = ii_repo_online->get_url( )
iv_repo_name = li_repo->get_name( )
iv_repo_key = li_repo->get_key( )
iv_commit_hash = ii_repo_online->get_current_remote( )
CHANGING
cv_display_url = rv_url ).

View File

@ -6,7 +6,7 @@ CLASS zcl_abapgit_file_deserialize DEFINITION
CLASS-METHODS get_results
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
!ii_log TYPE REF TO zif_abapgit_log OPTIONAL
RETURNING
VALUE(rt_results) TYPE zif_abapgit_definitions=>ty_results_tt
@ -139,7 +139,7 @@ CLASS zcl_abapgit_file_deserialize IMPLEMENTATION.
DATA lt_results TYPE zif_abapgit_definitions=>ty_results_tt.
lt_results = filter_files_to_deserialize(
it_results = zcl_abapgit_repo_status=>calculate( io_repo )
it_results = zcl_abapgit_repo_status=>calculate( ii_repo )
ii_log = ii_log ).
rt_results = prioritize_deser(

View File

@ -6,7 +6,7 @@ CLASS zcl_abapgit_objects_check DEFINITION
CLASS-METHODS deserialize_checks
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_deserialize_checks
RAISING
@ -14,7 +14,7 @@ CLASS zcl_abapgit_objects_check DEFINITION
CLASS-METHODS class_constructor.
CLASS-METHODS checks_adjust
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
!is_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks
CHANGING
!ct_results TYPE zif_abapgit_definitions=>ty_results_tt
@ -39,7 +39,7 @@ CLASS zcl_abapgit_objects_check DEFINITION
VALUE(rt_overwrite) TYPE zif_abapgit_definitions=>ty_overwrite_tt.
CLASS-METHODS warning_package_adjust
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
!it_overwrite TYPE zif_abapgit_definitions=>ty_overwrite_tt
CHANGING
!ct_results TYPE zif_abapgit_definitions=>ty_results_tt
@ -48,14 +48,14 @@ CLASS zcl_abapgit_objects_check DEFINITION
CLASS-METHODS warning_package_find
IMPORTING
!it_results TYPE zif_abapgit_definitions=>ty_results_tt
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(rt_overwrite) TYPE zif_abapgit_definitions=>ty_overwrite_tt
RAISING
zcx_abapgit_exception.
CLASS-METHODS determine_transport_request
IMPORTING
io_repo TYPE REF TO zcl_abapgit_repo
ii_repo TYPE REF TO zif_abapgit_repo
iv_transport_type TYPE zif_abapgit_definitions=>ty_transport_type
RETURNING
VALUE(rv_transport_request) TYPE trkorr.
@ -81,7 +81,7 @@ CLASS zcl_abapgit_objects_check IMPLEMENTATION.
warning_package_adjust(
EXPORTING
io_repo = io_repo
ii_repo = ii_repo
it_overwrite = is_checks-warning_package
CHANGING
ct_results = ct_results ).
@ -134,23 +134,23 @@ CLASS zcl_abapgit_objects_check IMPLEMENTATION.
li_package TYPE REF TO zif_abapgit_sap_package.
" get unfiltered status to evaluate properly which warnings are required
lt_results = zcl_abapgit_repo_status=>calculate( io_repo ).
lt_results = zcl_abapgit_repo_status=>calculate( ii_repo ).
check_multiple_files( lt_results ).
rs_checks-overwrite = warning_overwrite_find( lt_results ).
rs_checks-warning_package = warning_package_find(
io_repo = io_repo
ii_repo = ii_repo
it_results = lt_results ).
IF lines( lt_results ) > 0.
li_package = zcl_abapgit_factory=>get_sap_package( io_repo->get_package( ) ).
li_package = zcl_abapgit_factory=>get_sap_package( ii_repo->get_package( ) ).
rs_checks-transport-required = li_package->are_changes_recorded_in_tr_req( ).
IF NOT rs_checks-transport-required IS INITIAL.
rs_checks-transport-type = li_package->get_transport_type( ).
rs_checks-transport-transport = determine_transport_request(
io_repo = io_repo
ii_repo = ii_repo
iv_transport_type = rs_checks-transport-type ).
ENDIF.
ENDIF.
@ -162,11 +162,11 @@ CLASS zcl_abapgit_objects_check IMPLEMENTATION.
" Use transport from repo settings if maintained, or determine via user exit.
" If transport keeps empty here, it'll requested later via popup.
rv_transport_request = io_repo->get_local_settings( )-transport_request.
rv_transport_request = ii_repo->get_local_settings( )-transport_request.
gi_exit->determine_transport_request(
EXPORTING
io_repo = io_repo
ii_repo = ii_repo
iv_transport_type = iv_transport_type
CHANGING
cv_transport_request = rv_transport_request ).
@ -310,7 +310,7 @@ CLASS zcl_abapgit_objects_check IMPLEMENTATION.
* make sure to get the current status, as something might have changed in the meanwhile
lt_overwrite = warning_package_find(
it_results = ct_results
io_repo = io_repo ).
ii_repo = ii_repo ).
LOOP AT lt_overwrite ASSIGNING <ls_overwrite>.
@ -351,8 +351,8 @@ CLASS zcl_abapgit_objects_check IMPLEMENTATION.
LOOP AT it_results ASSIGNING <ls_result> WHERE match IS INITIAL AND packmove IS INITIAL.
lv_package = lo_folder_logic->path_to_package(
iv_top = io_repo->get_package( )
io_dot = io_repo->get_dot_abapgit( )
iv_top = ii_repo->get_package( )
io_dot = ii_repo->get_dot_abapgit( )
iv_path = <ls_result>-path
iv_create_if_not_exists = abap_false ).

View File

@ -14,7 +14,7 @@ CLASS zcl_abapgit_objects DEFINITION
zcx_abapgit_exception .
CLASS-METHODS deserialize
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
!is_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks
!ii_log TYPE REF TO zif_abapgit_log
RETURNING
@ -23,7 +23,7 @@ CLASS zcl_abapgit_objects DEFINITION
zcx_abapgit_exception .
CLASS-METHODS deserialize_checks
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_deserialize_checks
RAISING
@ -681,8 +681,8 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
lt_steps = get_deserialize_steps( ).
lv_package = io_repo->get_package( ).
lo_dot = io_repo->get_dot_abapgit( ).
lv_package = ii_repo->get_package( ).
lo_dot = ii_repo->get_dot_abapgit( ).
IF is_checks-transport-required = abap_true.
zcl_abapgit_factory=>get_default_transport( )->set( is_checks-transport-transport ).
@ -690,10 +690,10 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
zcl_abapgit_objects_activation=>clear( ).
lt_remote = io_repo->get_files_remote( iv_ignore_files = abap_true ).
lt_remote = ii_repo->get_files_remote( iv_ignore_files = abap_true ).
lt_results = zcl_abapgit_file_deserialize=>get_results(
io_repo = io_repo
ii_repo = ii_repo
ii_log = ii_log ).
IF lt_results IS INITIAL.
@ -702,7 +702,7 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
zcl_abapgit_objects_check=>checks_adjust(
EXPORTING
io_repo = io_repo
ii_repo = ii_repo
is_checks = is_checks
CHANGING
ct_results = lt_results ).
@ -723,10 +723,10 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
check_original_system(
it_items = lt_items
ii_log = ii_log
io_dot = io_repo->get_dot_abapgit( ) ).
io_dot = ii_repo->get_dot_abapgit( ) ).
lo_i18n_params = zcl_abapgit_i18n_params=>new( is_params =
lo_dot->determine_i18n_parameters( io_repo->get_local_settings( )-main_language_only ) ).
lo_dot->determine_i18n_parameters( ii_repo->get_local_settings( )-main_language_only ) ).
IF lines( lt_items ) = 1.
ii_log->add_info( |>>> Deserializing 1 object| ).
@ -754,7 +754,7 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
IF ls_item-obj_type <> 'NSPC'.
" If package does not exist yet, it will be created with this call
lv_package = lo_folder_logic->path_to_package(
iv_top = io_repo->get_package( )
iv_top = ii_repo->get_package( )
io_dot = lo_dot
iv_path = <ls_result>-path ).
@ -862,7 +862,7 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
" TODO: LXE translations (objects has been activated by now)
update_package_tree( io_repo->get_package( ) ).
update_package_tree( ii_repo->get_package( ) ).
" Set the original system for all updated objects to what's defined in repo settings
update_original_system(
@ -880,7 +880,7 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
METHOD deserialize_checks.
rs_checks = zcl_abapgit_objects_check=>deserialize_checks( io_repo ).
rs_checks = zcl_abapgit_objects_check=>deserialize_checks( ii_repo ).
ENDMETHOD.

View File

@ -8,7 +8,7 @@ CLASS zcl_abapgit_merge DEFINITION
METHODS constructor
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo_online
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
!iv_source_branch TYPE string
RAISING
zcx_abapgit_exception .
@ -20,7 +20,7 @@ CLASS zcl_abapgit_merge DEFINITION
TYPES:
ty_visit_tt TYPE STANDARD TABLE OF zif_abapgit_git_definitions=>ty_sha1 WITH DEFAULT KEY .
DATA mo_repo TYPE REF TO zcl_abapgit_repo_online .
DATA mi_repo_online TYPE REF TO zif_abapgit_repo_online .
DATA ms_merge TYPE zif_abapgit_merge=>ty_merge .
DATA mt_conflicts TYPE zif_abapgit_merge=>ty_merge_conflict_tt .
DATA mt_objects TYPE zif_abapgit_definitions=>ty_objects_tt .
@ -237,11 +237,11 @@ CLASS zcl_abapgit_merge IMPLEMENTATION.
METHOD constructor.
IF iv_source_branch = io_repo->get_selected_branch( ).
IF iv_source_branch = ii_repo_online->get_selected_branch( ).
zcx_abapgit_exception=>raise( 'source = target' ).
ENDIF.
mo_repo = io_repo.
mi_repo_online = ii_repo_online.
mv_source_branch = iv_source_branch.
ENDMETHOD.
@ -252,21 +252,21 @@ CLASS zcl_abapgit_merge IMPLEMENTATION.
DATA: lo_branch_list TYPE REF TO zcl_abapgit_git_branch_list,
lt_upload TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt.
lo_branch_list = zcl_abapgit_git_factory=>get_git_transport( )->branches( ms_merge-repo->get_url( ) ).
lo_branch_list = zcl_abapgit_git_factory=>get_git_transport( )->branches( ms_merge-repo_online->get_url( ) ).
ms_merge-source = lo_branch_list->find_by_name(
zcl_abapgit_git_branch_list=>complete_heads_branch_name( mv_source_branch ) ).
ms_merge-target = lo_branch_list->find_by_name(
zcl_abapgit_git_branch_list=>complete_heads_branch_name( mo_repo->get_selected_branch( ) ) ).
zcl_abapgit_git_branch_list=>complete_heads_branch_name( mi_repo_online->get_selected_branch( ) ) ).
APPEND ms_merge-source TO lt_upload.
APPEND ms_merge-target TO lt_upload.
zcl_abapgit_git_transport=>upload_pack_by_branch(
EXPORTING
iv_url = ms_merge-repo->get_url( )
iv_branch_name = ms_merge-repo->get_selected_branch( )
iv_url = ms_merge-repo_online->get_url( )
iv_branch_name = ms_merge-repo_online->get_selected_branch( )
iv_deepen_level = 0
it_branches = lt_upload
IMPORTING
@ -419,7 +419,7 @@ CLASS zcl_abapgit_merge IMPLEMENTATION.
CLEAR: ms_merge, mt_objects, mt_conflicts.
ms_merge-repo = mo_repo.
ms_merge-repo_online = mi_repo_online.
mt_objects = fetch_git( ).
lt_asource = find_ancestors( ms_merge-source-sha1 ).

View File

@ -21,7 +21,7 @@ CLASS zcl_abapgit_stage_logic DEFINITION
CLASS-METHODS:
remove_ignored
IMPORTING io_repo TYPE REF TO zcl_abapgit_repo_online
IMPORTING ii_repo TYPE REF TO zif_abapgit_repo
CHANGING cs_files TYPE zif_abapgit_definitions=>ty_stage_files,
remove_identical
CHANGING cs_files TYPE zif_abapgit_definitions=>ty_stage_files.
@ -81,7 +81,7 @@ CLASS zcl_abapgit_stage_logic IMPLEMENTATION.
LOOP AT cs_files-remote ASSIGNING <ls_remote>.
lv_index = sy-tabix.
IF io_repo->get_dot_abapgit( )->is_ignored(
IF ii_repo->get_dot_abapgit( )->is_ignored(
iv_path = <ls_remote>-path
iv_filename = <ls_remote>-filename ) = abap_true.
DELETE cs_files-remote INDEX lv_index.
@ -96,7 +96,7 @@ CLASS zcl_abapgit_stage_logic IMPLEMENTATION.
LOOP AT cs_files-local ASSIGNING <ls_local>.
lv_index = sy-tabix.
IF io_repo->get_dot_abapgit( )->is_ignored(
IF ii_repo->get_dot_abapgit( )->is_ignored(
iv_path = <ls_local>-file-path
iv_filename = <ls_local>-file-filename ) = abap_true.
DELETE cs_files-local INDEX lv_index.
@ -115,19 +115,19 @@ CLASS zcl_abapgit_stage_logic IMPLEMENTATION.
METHOD zif_abapgit_stage_logic~get.
" Getting REMOTE before LOCAL is critical to ensure that DATA config is loaded first
rs_files-remote = io_repo->get_files_remote( ii_obj_filter ).
rs_files-remote = ii_repo_online->get_files_remote( ii_obj_filter ).
IF ii_obj_filter IS INITIAL.
rs_files-local = io_repo->get_files_local( ).
rs_files-local = ii_repo_online->get_files_local( ).
ELSE.
rs_files-local = io_repo->get_files_local_filtered( ii_obj_filter ).
rs_files-local = ii_repo_online->get_files_local_filtered( ii_obj_filter ).
ENDIF.
rs_files-status = zcl_abapgit_repo_status=>calculate( ii_repo = io_repo
rs_files-status = zcl_abapgit_repo_status=>calculate( ii_repo = ii_repo_online
ii_obj_filter = ii_obj_filter ).
remove_identical( CHANGING cs_files = rs_files ).
remove_ignored( EXPORTING io_repo = io_repo
remove_ignored( EXPORTING ii_repo = ii_repo_online
CHANGING cs_files = rs_files ).
ENDMETHOD.

View File

@ -2,16 +2,16 @@ INTERFACE zif_abapgit_merge PUBLIC .
TYPES:
BEGIN OF ty_merge,
repo TYPE REF TO zcl_abapgit_repo_online,
source TYPE zif_abapgit_git_definitions=>ty_git_branch,
target TYPE zif_abapgit_git_definitions=>ty_git_branch,
common TYPE zif_abapgit_definitions=>ty_ancestor,
stree TYPE zif_abapgit_git_definitions=>ty_expanded_tt,
ttree TYPE zif_abapgit_git_definitions=>ty_expanded_tt,
ctree TYPE zif_abapgit_git_definitions=>ty_expanded_tt,
result TYPE zif_abapgit_git_definitions=>ty_expanded_tt,
stage TYPE REF TO zcl_abapgit_stage,
conflict TYPE string,
repo_online TYPE REF TO zif_abapgit_repo_online,
source TYPE zif_abapgit_git_definitions=>ty_git_branch,
target TYPE zif_abapgit_git_definitions=>ty_git_branch,
common TYPE zif_abapgit_definitions=>ty_ancestor,
stree TYPE zif_abapgit_git_definitions=>ty_expanded_tt,
ttree TYPE zif_abapgit_git_definitions=>ty_expanded_tt,
ctree TYPE zif_abapgit_git_definitions=>ty_expanded_tt,
result TYPE zif_abapgit_git_definitions=>ty_expanded_tt,
stage TYPE REF TO zcl_abapgit_stage,
conflict TYPE string,
END OF ty_merge .
TYPES:
BEGIN OF ty_merge_conflict,

View File

@ -3,7 +3,7 @@ INTERFACE zif_abapgit_stage_logic
METHODS get
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo_online
!ii_repo_online TYPE REF TO zif_abapgit_repo
!ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL
RETURNING
VALUE(rs_files) TYPE zif_abapgit_definitions=>ty_stage_files

View File

@ -20,7 +20,7 @@ CLASS zcl_abapgit_repo_news DEFINITION
CLASS-METHODS create " TODO REFACTOR
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_repo_news
RAISING
@ -113,27 +113,27 @@ CLASS zcl_abapgit_repo_news IMPLEMENTATION.
lv_version TYPE string,
lv_last_seen TYPE string,
lv_url TYPE string,
lo_repo_online TYPE REF TO zcl_abapgit_repo_online,
li_repo_online TYPE REF TO zif_abapgit_repo_online,
lv_version_constant TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit-version_constant.
FIELD-SYMBOLS <ls_file> LIKE LINE OF lt_remote.
IF io_repo->is_offline( ) = abap_true.
IF ii_repo->is_offline( ) = abap_true.
RETURN.
ENDIF.
lo_repo_online ?= io_repo.
lv_url = lo_repo_online->get_url( ).
li_repo_online ?= ii_repo.
lv_url = li_repo_online->get_url( ).
lo_apack = io_repo->get_dot_apack( ).
lo_apack = ii_repo->get_dot_apack( ).
IF lo_apack IS BOUND.
lv_version = lo_apack->get_manifest_descriptor( )-version.
ENDIF.
IF lv_version IS INITIAL.
TRY.
lv_version_constant = io_repo->get_dot_abapgit( )->get_version_constant( ).
lv_version_constant = ii_repo->get_dot_abapgit( )->get_version_constant( ).
IF lv_version_constant IS NOT INITIAL.
lv_version = zcl_abapgit_version=>get_version_constant_value( lv_version_constant ).
ENDIF.
@ -149,7 +149,7 @@ CLASS zcl_abapgit_repo_news IMPLEMENTATION.
lv_last_seen = zcl_abapgit_persistence_user=>get_instance( )->get_repo_last_change_seen( lv_url ).
TRY. " Find changelog
lt_remote = io_repo->get_files_remote( ).
lt_remote = ii_repo->get_files_remote( ).
CATCH zcx_abapgit_exception.
RETURN.
ENDTRY.

View File

@ -9,100 +9,42 @@ CLASS zcl_abapgit_repo DEFINITION
ALIASES ms_data
FOR zif_abapgit_repo~ms_data .
ALIASES deserialize
FOR zif_abapgit_repo~deserialize .
ALIASES deserialize_checks
FOR zif_abapgit_repo~deserialize_checks .
ALIASES get_dot_abapgit
FOR zif_abapgit_repo~get_dot_abapgit .
ALIASES get_tadir_objects
FOR zif_abapgit_repo~get_tadir_objects .
ALIASES get_files_local
FOR zif_abapgit_repo~get_files_local .
ALIASES get_files_local_filtered
FOR zif_abapgit_repo~get_files_local_filtered .
ALIASES get_files_remote
FOR zif_abapgit_repo~get_files_remote .
ALIASES get_key
FOR zif_abapgit_repo~get_key .
ALIASES get_local_settings
FOR zif_abapgit_repo~get_local_settings .
ALIASES get_name
FOR zif_abapgit_repo~get_name .
ALIASES get_package
FOR zif_abapgit_repo~get_package .
ALIASES is_offline
FOR zif_abapgit_repo~is_offline .
ALIASES refresh
FOR zif_abapgit_repo~refresh .
ALIASES set_dot_abapgit
FOR zif_abapgit_repo~set_dot_abapgit .
ALIASES find_remote_dot_abapgit
FOR zif_abapgit_repo~find_remote_dot_abapgit .
ALIASES has_remote_source
FOR zif_abapgit_repo~has_remote_source .
METHODS bind_listener
IMPORTING
!ii_listener TYPE REF TO zif_abapgit_repo_listener .
ALIASES get_key FOR zif_abapgit_repo~get_key.
ALIASES get_name FOR zif_abapgit_repo~get_name.
ALIASES is_offline FOR zif_abapgit_repo~is_offline.
ALIASES get_package FOR zif_abapgit_repo~get_package.
ALIASES get_local_settings FOR zif_abapgit_repo~get_local_settings.
ALIASES get_tadir_objects FOR zif_abapgit_repo~get_tadir_objects.
ALIASES get_files_local_filtered FOR zif_abapgit_repo~get_files_local_filtered.
ALIASES get_files_local FOR zif_abapgit_repo~get_files_local.
ALIASES get_files_remote FOR zif_abapgit_repo~get_files_remote.
ALIASES refresh FOR zif_abapgit_repo~refresh.
ALIASES get_dot_abapgit FOR zif_abapgit_repo~get_dot_abapgit.
ALIASES set_dot_abapgit FOR zif_abapgit_repo~set_dot_abapgit.
ALIASES find_remote_dot_abapgit FOR zif_abapgit_repo~find_remote_dot_abapgit.
ALIASES deserialize FOR zif_abapgit_repo~deserialize.
ALIASES deserialize_checks FOR zif_abapgit_repo~deserialize_checks.
ALIASES checksums FOR zif_abapgit_repo~checksums.
ALIASES has_remote_source FOR zif_abapgit_repo~has_remote_source.
ALIASES get_log FOR zif_abapgit_repo~get_log.
ALIASES create_new_log FOR zif_abapgit_repo~create_new_log.
ALIASES get_dot_apack FOR zif_abapgit_repo~get_dot_apack.
ALIASES delete_checks FOR zif_abapgit_repo~delete_checks.
ALIASES set_files_remote FOR zif_abapgit_repo~set_files_remote.
ALIASES get_unsupported_objects_local FOR zif_abapgit_repo~get_unsupported_objects_local.
ALIASES set_local_settings FOR zif_abapgit_repo~set_local_settings.
ALIASES switch_repo_type FOR zif_abapgit_repo~switch_repo_type.
ALIASES refresh_local_object FOR zif_abapgit_repo~refresh_local_object.
ALIASES refresh_local_objects FOR zif_abapgit_repo~refresh_local_objects.
ALIASES get_data_config FOR zif_abapgit_repo~get_data_config.
ALIASES bind_listener FOR zif_abapgit_repo~bind_listener.
ALIASES remove_ignored_files FOR zif_abapgit_repo~remove_ignored_files.
METHODS constructor
IMPORTING
!is_data TYPE zif_abapgit_persistence=>ty_repo .
METHODS create_new_log
IMPORTING
!iv_title TYPE string OPTIONAL
RETURNING
VALUE(ri_log) TYPE REF TO zif_abapgit_log .
METHODS delete_checks
RETURNING
VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_delete_checks
RAISING
zcx_abapgit_exception .
METHODS get_data_config
RETURNING
VALUE(ri_config) TYPE REF TO zif_abapgit_data_config
RAISING
zcx_abapgit_exception .
METHODS get_dot_apack
RETURNING
VALUE(ro_dot_apack) TYPE REF TO zcl_abapgit_apack_reader
RAISING
zcx_abapgit_exception.
METHODS get_log
RETURNING
VALUE(ri_log) TYPE REF TO zif_abapgit_log .
METHODS get_unsupported_objects_local
RETURNING
VALUE(rt_objects) TYPE zif_abapgit_definitions=>ty_items_tt
RAISING
zcx_abapgit_exception .
METHODS refresh_local_object
IMPORTING
!iv_obj_type TYPE tadir-object
!iv_obj_name TYPE tadir-obj_name
RAISING
zcx_abapgit_exception .
METHODS refresh_local_objects
RAISING
zcx_abapgit_exception .
METHODS remove_ignored_files
CHANGING
!ct_files TYPE zif_abapgit_git_definitions=>ty_files_tt
RAISING
zcx_abapgit_exception .
METHODS set_files_remote
IMPORTING
!it_files TYPE zif_abapgit_git_definitions=>ty_files_tt .
METHODS set_local_settings
IMPORTING
!is_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings
RAISING
zcx_abapgit_exception .
METHODS switch_repo_type
IMPORTING
!iv_offline TYPE abap_bool
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
DATA mt_local TYPE zif_abapgit_definitions=>ty_files_item_tt .
@ -140,7 +82,6 @@ CLASS zcl_abapgit_repo DEFINITION
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
METHODS check_language
RAISING
zcx_abapgit_exception .
@ -195,7 +136,7 @@ ENDCLASS.
CLASS zcl_abapgit_repo IMPLEMENTATION.
METHOD bind_listener.
METHOD zif_abapgit_repo~bind_listener.
mi_listener = ii_listener.
ENDMETHOD.
@ -270,7 +211,7 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
ENDMETHOD.
METHOD create_new_log.
METHOD zif_abapgit_repo~create_new_log.
CREATE OBJECT mi_log TYPE zcl_abapgit_log.
mi_log->set_title( iv_title ).
@ -280,7 +221,7 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
ENDMETHOD.
METHOD delete_checks.
METHOD zif_abapgit_repo~delete_checks.
DATA: li_package TYPE REF TO zif_abapgit_sap_package.
@ -327,7 +268,7 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
TRY.
lt_updated_files = zcl_abapgit_objects=>deserialize(
io_repo = me
ii_repo = me
is_checks = is_checks
ii_log = ii_log ).
CATCH zcx_abapgit_exception INTO lx_error.
@ -361,7 +302,7 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
ENDMETHOD.
METHOD get_data_config.
METHOD zif_abapgit_repo~get_data_config.
FIELD-SYMBOLS: <ls_remote> LIKE LINE OF mt_remote.
@ -384,7 +325,7 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
ENDMETHOD.
METHOD get_dot_apack.
METHOD zif_abapgit_repo~get_dot_apack.
IF mo_apack_reader IS NOT BOUND.
mo_apack_reader = zcl_abapgit_apack_reader=>create_instance( ms_data-package ).
ENDIF.
@ -394,12 +335,12 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
ENDMETHOD.
METHOD get_log.
METHOD zif_abapgit_repo~get_log.
ri_log = mi_log.
ENDMETHOD.
METHOD get_unsupported_objects_local.
METHOD zif_abapgit_repo~get_unsupported_objects_local.
DATA: lt_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt,
lt_supported_types TYPE zif_abapgit_objects=>ty_types_tt.
@ -446,7 +387,7 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
ENDMETHOD.
METHOD refresh_local_object.
METHOD zif_abapgit_repo~refresh_local_object.
DATA:
ls_tadir TYPE zif_abapgit_definitions=>ty_tadir,
@ -480,7 +421,7 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
ENDMETHOD.
METHOD refresh_local_objects.
METHOD zif_abapgit_repo~refresh_local_objects.
mv_request_local_refresh = abap_true.
get_files_local( ).
@ -488,7 +429,7 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
ENDMETHOD.
METHOD remove_ignored_files.
METHOD zif_abapgit_repo~remove_ignored_files.
DATA lo_dot TYPE REF TO zcl_abapgit_dot_abapgit.
DATA lv_index TYPE sy-index.
@ -629,7 +570,7 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
ENDMETHOD.
METHOD set_files_remote.
METHOD zif_abapgit_repo~set_files_remote.
mt_remote = it_files.
mv_request_remote_refresh = abap_false.
@ -637,14 +578,14 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
ENDMETHOD.
METHOD set_local_settings.
METHOD zif_abapgit_repo~set_local_settings.
set( is_local_settings = is_settings ).
ENDMETHOD.
METHOD switch_repo_type.
METHOD zif_abapgit_repo~switch_repo_type.
IF iv_offline = ms_data-offline.
zcx_abapgit_exception=>raise( |Cannot switch_repo_type, offline already = "{ ms_data-offline }"| ).
@ -725,7 +666,7 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
CLEAR mt_local. " Should be before CS update which uses NEW local
zif_abapgit_repo~checksums( )->update( lt_updated_files ).
checksums( )->update( lt_updated_files ).
update_last_deserialize( ).
@ -755,7 +696,7 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
rs_checks-dependencies-met = zcl_abapgit_apack_helper=>are_dependencies_met( lt_dependencies ).
rs_checks-customizing = zcl_abapgit_data_factory=>get_deserializer( )->deserialize_check(
io_repo = me
ii_repo = me
ii_config = get_data_config( ) ).
ENDMETHOD.

View File

@ -21,7 +21,7 @@ CLASS ltcl_find_remote_dot_abapgit DEFINITION FINAL FOR TESTING
iv_number_of_files TYPE i.
DATA:
mo_repo TYPE REF TO zcl_abapgit_repo,
mi_repo TYPE REF TO zif_abapgit_repo,
mx_error TYPE REF TO zcx_abapgit_exception,
mo_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit.
@ -63,7 +63,7 @@ CLASS ltcl_find_remote_dot_abapgit IMPLEMENTATION.
ls_data-key = c_dummy_repo_key.
" online/offline doesn't matter...
CREATE OBJECT mo_repo TYPE zcl_abapgit_repo_offline
CREATE OBJECT mi_repo TYPE zcl_abapgit_repo_offline
EXPORTING
is_data = ls_data.
@ -98,7 +98,7 @@ CLASS ltcl_find_remote_dot_abapgit IMPLEMENTATION.
&& |</asx:abap>| ).
INSERT ls_file INTO TABLE lt_files.
mo_repo->set_files_remote( lt_files ).
mi_repo->set_files_remote( lt_files ).
ENDMETHOD.
@ -111,7 +111,7 @@ CLASS ltcl_find_remote_dot_abapgit IMPLEMENTATION.
METHOD when_find_remote_dot_abapgit.
TRY.
mo_dot_abapgit = mo_repo->find_remote_dot_abapgit( ).
mo_dot_abapgit = mi_repo->find_remote_dot_abapgit( ).
CATCH zcx_abapgit_exception INTO mx_error.
ENDTRY.
@ -145,7 +145,7 @@ CLASS ltcl_find_remote_dot_abapgit IMPLEMENTATION.
INSERT ls_file INTO TABLE lt_files.
ENDDO.
mo_repo->set_files_remote( lt_files ).
mi_repo->set_files_remote( lt_files ).
ENDMETHOD.

View File

@ -283,6 +283,32 @@ CLASS lcl_repo_mock IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_repo_srv~get_label_list.
ENDMETHOD.
METHOD zif_abapgit_repo~create_new_log.
ENDMETHOD.
METHOD zif_abapgit_repo~delete_checks.
ENDMETHOD.
METHOD zif_abapgit_repo~get_dot_apack.
ENDMETHOD.
METHOD zif_abapgit_repo~get_log.
ENDMETHOD.
METHOD zif_abapgit_repo~get_data_config.
ENDMETHOD.
METHOD zif_abapgit_repo~get_unsupported_objects_local.
ENDMETHOD.
METHOD zif_abapgit_repo~refresh_local_object.
ENDMETHOD.
METHOD zif_abapgit_repo~refresh_local_objects.
ENDMETHOD.
METHOD zif_abapgit_repo~set_files_remote.
ENDMETHOD.
METHOD zif_abapgit_repo~set_local_settings.
ENDMETHOD.
METHOD zif_abapgit_repo~switch_repo_type.
ENDMETHOD.
METHOD zif_abapgit_repo~bind_listener.
ENDMETHOD.
METHOD zif_abapgit_repo~remove_ignored_files.
ENDMETHOD.
ENDCLASS.

View File

@ -5,7 +5,7 @@ CLASS zcl_abapgit_repo_content_list DEFINITION
PUBLIC SECTION.
METHODS constructor
IMPORTING io_repo TYPE REF TO zcl_abapgit_repo.
IMPORTING ii_repo TYPE REF TO zif_abapgit_repo.
METHODS list
IMPORTING iv_path TYPE string
@ -28,7 +28,7 @@ CLASS zcl_abapgit_repo_content_list DEFINITION
inactive TYPE i VALUE 4,
END OF c_sortkey.
DATA: mo_repo TYPE REF TO zcl_abapgit_repo,
DATA: mi_repo TYPE REF TO zif_abapgit_repo,
mi_log TYPE REF TO zif_abapgit_log.
METHODS build_repo_items
@ -123,7 +123,7 @@ CLASS zcl_abapgit_repo_content_list IMPLEMENTATION.
lt_status = zcl_abapgit_repo_status=>calculate(
ii_repo = mo_repo
ii_repo = mi_repo
ii_log = mi_log ).
LOOP AT lt_status ASSIGNING <ls_status>.
@ -186,7 +186,7 @@ CLASS zcl_abapgit_repo_content_list IMPLEMENTATION.
DATA lt_remote TYPE zif_abapgit_git_definitions=>ty_files_tt.
lt_remote = mo_repo->get_files_remote( ).
lt_remote = mi_repo->get_files_remote( ).
IF lines( lt_remote ) > lc_new_repo_size.
" Less files means it's a new repo (with just readme and license, for example) which is ok
@ -203,7 +203,7 @@ CLASS zcl_abapgit_repo_content_list IMPLEMENTATION.
METHOD constructor.
mo_repo = io_repo.
mi_repo = ii_repo.
CREATE OBJECT mi_log TYPE zcl_abapgit_log.
ENDMETHOD.
@ -246,7 +246,7 @@ CLASS zcl_abapgit_repo_content_list IMPLEMENTATION.
ri_log = mi_log.
"add warning and error messages from repo log
li_repo_log = mo_repo->get_log( ).
li_repo_log = mi_repo->get_log( ).
IF li_repo_log IS BOUND.
lt_repo_msg = li_repo_log->get_messages( ).
LOOP AT lt_repo_msg REFERENCE INTO lr_repo_msg WHERE type CA 'EW'.
@ -272,7 +272,7 @@ CLASS zcl_abapgit_repo_content_list IMPLEMENTATION.
rt_repo_items = build_repo_items( ).
check_repo_size( ).
IF mo_repo->has_remote_source( ) = abap_false.
IF mi_repo->has_remote_source( ) = abap_false.
" If there's no remote source, ignore the item state
LOOP AT rt_repo_items ASSIGNING <ls_repo_item>.
CLEAR: <ls_repo_item>-changes, <ls_repo_item>-lstate, <ls_repo_item>-rstate.

View File

@ -8,30 +8,18 @@ CLASS zcl_abapgit_repo_online DEFINITION
INTERFACES zif_abapgit_repo_online .
ALIASES create_branch
FOR zif_abapgit_repo_online~create_branch .
ALIASES get_current_remote
FOR zif_abapgit_repo_online~get_current_remote .
ALIASES get_selected_branch
FOR zif_abapgit_repo_online~get_selected_branch .
ALIASES get_selected_commit
FOR zif_abapgit_repo_online~get_selected_commit .
ALIASES get_url
FOR zif_abapgit_repo_online~get_url .
ALIASES push
FOR zif_abapgit_repo_online~push .
ALIASES select_branch
FOR zif_abapgit_repo_online~select_branch .
ALIASES select_commit
FOR zif_abapgit_repo_online~select_commit .
ALIASES set_url
FOR zif_abapgit_repo_online~set_url .
ALIASES switch_origin
FOR zif_abapgit_repo_online~switch_origin .
ALIASES get_switched_origin
FOR zif_abapgit_repo_online~get_switched_origin.
ALIASES get_url FOR zif_abapgit_repo_online~get_url.
ALIASES get_selected_branch FOR zif_abapgit_repo_online~get_selected_branch.
ALIASES set_url FOR zif_abapgit_repo_online~set_url.
ALIASES select_branch FOR zif_abapgit_repo_online~select_branch.
ALIASES get_selected_commit FOR zif_abapgit_repo_online~get_selected_commit.
ALIASES get_current_remote FOR zif_abapgit_repo_online~get_current_remote.
ALIASES select_commit FOR zif_abapgit_repo_online~select_commit.
ALIASES switch_origin FOR zif_abapgit_repo_online~switch_origin.
ALIASES get_switched_origin FOR zif_abapgit_repo_online~get_switched_origin.
ALIASES push FOR zif_abapgit_repo_online~push.
ALIASES create_branch FOR zif_abapgit_repo_online~create_branch.
ALIASES check_for_valid_branch FOR zif_abapgit_repo_online~check_for_valid_branch.
METHODS zif_abapgit_repo~get_files_remote
REDEFINITION .
@ -39,6 +27,9 @@ CLASS zcl_abapgit_repo_online DEFINITION
REDEFINITION .
METHODS zif_abapgit_repo~has_remote_source
REDEFINITION .
METHODS constructor
IMPORTING
is_data TYPE zif_abapgit_persistence=>ty_repo.
PROTECTED SECTION.
PRIVATE SECTION.
@ -75,6 +66,11 @@ ENDCLASS.
CLASS zcl_abapgit_repo_online IMPLEMENTATION.
METHOD constructor.
super->constructor( is_data ).
ENDMETHOD.
METHOD fetch_remote.
@ -154,7 +150,9 @@ CLASS zcl_abapgit_repo_online IMPLEMENTATION.
lt_branches TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt,
lv_display_name TYPE string.
lt_branches = zcl_abapgit_git_factory=>get_git_transport( )->branches( get_url( ) )->get_branches_only( ).
lt_branches = zcl_abapgit_git_factory=>get_git_transport(
)->branches( get_url( )
)->get_branches_only( ).
READ TABLE lt_branches WITH TABLE KEY name_key
COMPONENTS name = iv_name
@ -299,7 +297,7 @@ CLASS zcl_abapgit_repo_online IMPLEMENTATION.
mv_current_commit = ls_push-branch.
zif_abapgit_repo~checksums( )->update( ls_push-updated_files ).
checksums( )->update( ls_push-updated_files ).
ENDMETHOD.

View File

@ -83,7 +83,6 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
METHOD add.
DATA li_repo LIKE LINE OF mt_list.
DATA lo_repo TYPE REF TO zcl_abapgit_repo.
LOOP AT mt_list INTO li_repo.
IF li_repo->ms_data-key = ii_repo->ms_data-key.
@ -94,8 +93,7 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
ENDIF.
ENDLOOP.
lo_repo ?= ii_repo. " TODO, refactor later
lo_repo->bind_listener( me ).
ii_repo->bind_listener( me ).
APPEND ii_repo TO mt_list.
ENDMETHOD.
@ -484,17 +482,17 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
li_repo TYPE REF TO zif_abapgit_repo,
lv_url TYPE string,
lv_package TYPE devclass,
lo_repo_online TYPE REF TO zcl_abapgit_repo_online,
li_repo_online TYPE REF TO zif_abapgit_repo_online,
lv_err TYPE string.
lt_repo = zif_abapgit_repo_srv~list( ).
LOOP AT lt_repo INTO li_repo.
CHECK li_repo->is_offline( ) = abap_false.
lo_repo_online ?= li_repo.
li_repo_online ?= li_repo.
lv_url = lo_repo_online->get_url( ).
lv_package = lo_repo_online->get_package( ).
lv_url = li_repo_online->get_url( ).
lv_package = li_repo->get_package( ).
CHECK to_upper( lv_url ) = to_upper( iv_url ).
" Validate bindings
@ -557,7 +555,6 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
DATA: ls_repo TYPE zif_abapgit_persistence=>ty_repo,
lv_key TYPE zif_abapgit_persistence=>ty_repo-key,
lo_repo TYPE REF TO zcl_abapgit_repo_offline,
lo_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit.
@ -590,7 +587,7 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
zcx_abapgit_exception=>raise( 'new_offline not found' ).
ENDTRY.
lo_repo ?= instantiate_and_add( ls_repo ).
ri_repo = instantiate_and_add( ls_repo ).
" Local Settings
IF ls_repo-local_settings-ignore_subpackages <> iv_ign_subpkg.
@ -599,9 +596,7 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
ls_repo-local_settings-main_language_only = iv_main_lang_only.
ls_repo-local_settings-labels = iv_labels.
lo_repo->set_local_settings( ls_repo-local_settings ).
ri_repo = lo_repo.
ri_repo->set_local_settings( ls_repo-local_settings ).
ENDMETHOD.
@ -609,7 +604,6 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
METHOD zif_abapgit_repo_srv~new_online.
DATA: ls_repo TYPE zif_abapgit_persistence=>ty_repo,
lo_repo TYPE REF TO zcl_abapgit_repo_online,
lv_branch_name LIKE iv_branch_name,
lv_key TYPE zif_abapgit_persistence=>ty_repo-key,
lo_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit,
@ -655,7 +649,7 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
zcx_abapgit_exception=>raise( 'new_online not found' ).
ENDTRY.
lo_repo ?= instantiate_and_add( ls_repo ).
ri_repo = instantiate_and_add( ls_repo ).
" Local Settings
IF ls_repo-local_settings-ignore_subpackages <> iv_ign_subpkg.
@ -664,12 +658,10 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
ls_repo-local_settings-main_language_only = iv_main_lang_only.
ls_repo-local_settings-labels = iv_labels.
lo_repo->set_local_settings( ls_repo-local_settings ).
ri_repo->set_local_settings( ls_repo-local_settings ).
lo_repo->refresh( ).
lo_repo->find_remote_dot_abapgit( ).
ri_repo = lo_repo.
ri_repo->refresh( ).
ri_repo->find_remote_dot_abapgit( ).
ENDMETHOD.
@ -682,10 +674,8 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
DATA: lt_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt.
DATA: lx_error TYPE REF TO zcx_abapgit_exception.
DATA lo_repo TYPE REF TO zcl_abapgit_repo.
lo_repo ?= ii_repo. " TODO, remove later
ri_log = lo_repo->create_new_log( 'Uninstall Log' ).
ri_log = ii_repo->create_new_log( 'Uninstall Log' ).
IF ii_repo->get_local_settings( )-write_protected = abap_true.
zcx_abapgit_exception=>raise( 'Cannot purge. Local code is write-protected by repo config' ).
@ -693,7 +683,7 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
zcx_abapgit_exception=>raise( 'Not authorized' ).
ENDIF.
lt_tadir = lo_repo->get_tadir_objects( ).
lt_tadir = ii_repo->get_tadir_objects( ).
TRY.
zcl_abapgit_objects=>delete( it_tadir = lt_tadir

View File

@ -92,5 +92,63 @@ INTERFACE zif_abapgit_repo
METHODS has_remote_source
RETURNING
VALUE(rv_yes) TYPE abap_bool .
METHODS get_log
RETURNING
VALUE(ri_log) TYPE REF TO zif_abapgit_log .
METHODS create_new_log
IMPORTING
iv_title TYPE string OPTIONAL
RETURNING
VALUE(ri_log) TYPE REF TO zif_abapgit_log .
METHODS get_dot_apack
RETURNING
VALUE(ro_dot_apack) TYPE REF TO zcl_abapgit_apack_reader
RAISING
zcx_abapgit_exception.
METHODS delete_checks
RETURNING
VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_delete_checks
RAISING
zcx_abapgit_exception .
METHODS set_files_remote
IMPORTING
it_files TYPE zif_abapgit_git_definitions=>ty_files_tt .
METHODS get_unsupported_objects_local
RETURNING
VALUE(rt_objects) TYPE zif_abapgit_definitions=>ty_items_tt
RAISING
zcx_abapgit_exception .
METHODS set_local_settings
IMPORTING
is_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings
RAISING
zcx_abapgit_exception .
METHODS switch_repo_type
IMPORTING
iv_offline TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS refresh_local_object
IMPORTING
iv_obj_type TYPE tadir-object
iv_obj_name TYPE tadir-obj_name
RAISING
zcx_abapgit_exception .
METHODS refresh_local_objects
RAISING
zcx_abapgit_exception .
METHODS get_data_config
RETURNING
VALUE(ri_config) TYPE REF TO zif_abapgit_data_config
RAISING
zcx_abapgit_exception .
METHODS bind_listener
IMPORTING
ii_listener TYPE REF TO zif_abapgit_repo_listener .
METHODS remove_ignored_files
CHANGING
ct_files TYPE zif_abapgit_git_definitions=>ty_files_tt
RAISING
zcx_abapgit_exception .
ENDINTERFACE.

View File

@ -1,10 +1,10 @@
CLASS zcl_abapgit_flow_logic DEFINITION PUBLIC.
PUBLIC SECTION.
CLASS-METHODS get_information
RETURNING
VALUE(rt_features) TYPE zif_abapgit_gui_page_flow=>ty_features
RAISING
zcx_abapgit_exception.
RETURNING
VALUE(rt_features) TYPE zif_abapgit_gui_page_flow=>ty_features
RAISING
zcx_abapgit_exception.
PRIVATE SECTION.
CONSTANTS c_main TYPE string VALUE 'main'.
@ -20,14 +20,14 @@ CLASS zcl_abapgit_flow_logic DEFINITION PUBLIC.
CLASS-METHODS build_repo_data
IMPORTING
io_online TYPE REF TO zif_abapgit_repo
ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(rs_data) TYPE zif_abapgit_gui_page_flow=>ty_feature-repo.
CLASS-METHODS map_files_to_objects
IMPORTING
it_files TYPE zif_abapgit_gui_page_flow=>ty_path_name_tt
io_online TYPE REF TO zcl_abapgit_repo_online
ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(rt_changed_objects) TYPE zif_abapgit_definitions=>ty_items_ts
RAISING
@ -35,7 +35,7 @@ CLASS zcl_abapgit_flow_logic DEFINITION PUBLIC.
CLASS-METHODS find_changed_files_all
IMPORTING
io_online TYPE REF TO zcl_abapgit_repo_online
ii_repo_online TYPE REF TO zif_abapgit_repo_online
it_branches TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt
EXPORTING
et_main_expanded TYPE zif_abapgit_git_definitions=>ty_expanded_tt
@ -84,7 +84,7 @@ CLASS zcl_abapgit_flow_logic DEFINITION PUBLIC.
CLASS-METHODS add_local_status
IMPORTING
io_online TYPE REF TO zcl_abapgit_repo_online
ii_repo TYPE REF TO zif_abapgit_repo
CHANGING
ct_features TYPE zif_abapgit_gui_page_flow=>ty_features
RAISING
@ -134,21 +134,21 @@ CLASS zcl_abapgit_flow_logic IMPLEMENTATION.
ENDMETHOD.
METHOD build_repo_data.
rs_data-name = io_online->get_name( ).
rs_data-key = io_online->get_key( ).
rs_data-package = io_online->get_package( ).
rs_data-name = ii_repo->get_name( ).
rs_data-key = ii_repo->get_key( ).
rs_data-package = ii_repo->get_package( ).
ENDMETHOD.
METHOD get_information.
DATA lt_branches TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt.
DATA ls_branch LIKE LINE OF lt_branches.
DATA ls_result LIKE LINE OF rt_features.
DATA lt_favorites TYPE zif_abapgit_repo_srv=>ty_repo_list.
DATA li_favorite LIKE LINE OF lt_favorites.
DATA lo_online TYPE REF TO zcl_abapgit_repo_online.
DATA lt_features LIKE rt_features.
DATA lt_transports TYPE ty_transports_tt.
DATA lt_branches TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt.
DATA ls_branch LIKE LINE OF lt_branches.
DATA ls_result LIKE LINE OF rt_features.
DATA lt_favorites TYPE zif_abapgit_repo_srv=>ty_repo_list.
DATA li_favorite LIKE LINE OF lt_favorites.
DATA li_repo_online TYPE REF TO zif_abapgit_repo_online.
DATA lt_features LIKE rt_features.
DATA lt_transports TYPE ty_transports_tt.
DATA lt_main_expanded TYPE zif_abapgit_git_definitions=>ty_expanded_tt.
FIELD-SYMBOLS <ls_feature> LIKE LINE OF lt_features.
@ -166,15 +166,15 @@ CLASS zcl_abapgit_flow_logic IMPLEMENTATION.
CONTINUE.
ENDIF.
lo_online ?= li_favorite.
li_repo_online ?= li_favorite.
lt_branches = zcl_abapgit_git_factory=>get_v2_porcelain( )->list_branches(
iv_url = lo_online->get_url( )
iv_url = li_repo_online->get_url( )
iv_prefix = 'refs/heads/' )->get_all( ).
CLEAR lt_features.
LOOP AT lt_branches INTO ls_branch WHERE display_name <> c_main.
ls_result-repo = build_repo_data( lo_online ).
ls_result-repo = build_repo_data( li_repo_online ).
ls_result-branch-display_name = ls_branch-display_name.
ls_result-branch-sha1 = ls_branch-sha1.
INSERT ls_result INTO TABLE lt_features.
@ -182,7 +182,7 @@ CLASS zcl_abapgit_flow_logic IMPLEMENTATION.
find_changed_files_all(
EXPORTING
io_online = lo_online
ii_repo_online = li_repo_online
it_branches = lt_branches
IMPORTING
et_main_expanded = lt_main_expanded
@ -199,20 +199,20 @@ CLASS zcl_abapgit_flow_logic IMPLEMENTATION.
find_up_to_date(
EXPORTING
iv_url = lo_online->get_url( )
iv_url = li_repo_online->get_url( )
it_branches = lt_branches
CHANGING
ct_features = lt_features ).
find_prs(
EXPORTING
iv_url = lo_online->get_url( )
iv_url = li_repo_online->get_url( )
CHANGING
ct_features = lt_features ).
add_local_status(
EXPORTING
io_online = lo_online
ii_repo = li_repo_online
CHANGING
ct_features = lt_features ).
@ -473,19 +473,22 @@ CLASS zcl_abapgit_flow_logic IMPLEMENTATION.
DATA lv_starting_folder TYPE string.
DATA ls_main LIKE LINE OF it_branches.
DATA lt_expanded TYPE zif_abapgit_git_definitions=>ty_expanded_tt.
DATA li_repo TYPE REF TO zif_abapgit_repo.
FIELD-SYMBOLS <ls_branch> LIKE LINE OF ct_features.
li_repo = ii_repo_online.
LOOP AT it_branches INTO ls_branch WHERE is_head = abap_false.
APPEND ls_branch-sha1 TO lt_sha1.
ENDLOOP.
lt_objects = zcl_abapgit_git_factory=>get_v2_porcelain( )->list_no_blobs_multi(
iv_url = io_online->get_url( )
iv_url = ii_repo_online->get_url( )
it_sha1 = lt_sha1 ).
lv_starting_folder = io_online->get_dot_abapgit( )->get_starting_folder( ) && '*'.
lv_starting_folder = li_repo->get_dot_abapgit( )->get_starting_folder( ) && '*'.
READ TABLE it_branches INTO ls_main WITH KEY display_name = c_main.
ASSERT sy-subrc = 0.
@ -506,8 +509,8 @@ CLASS zcl_abapgit_flow_logic IMPLEMENTATION.
it_expanded2 = et_main_expanded ).
<ls_branch>-changed_objects = map_files_to_objects(
io_online = io_online
it_files = <ls_branch>-changed_files ).
ii_repo = li_repo
it_files = <ls_branch>-changed_files ).
ENDLOOP.
ENDMETHOD.
@ -540,7 +543,7 @@ CLASS zcl_abapgit_flow_logic IMPLEMENTATION.
ENDIF.
CREATE OBJECT lo_filter EXPORTING it_filter = lt_filter.
lt_local = io_online->get_files_local_filtered( lo_filter ).
lt_local = ii_repo->get_files_local_filtered( lo_filter ).
LOOP AT ct_features ASSIGNING <ls_branch>.
LOOP AT <ls_branch>-changed_files ASSIGNING <ls_changed_file>.
@ -566,8 +569,8 @@ CLASS zcl_abapgit_flow_logic IMPLEMENTATION.
EXPORTING
iv_filename = <ls_file>-filename
iv_path = <ls_file>-path
iv_devclass = io_online->get_package( )
io_dot = io_online->get_dot_abapgit( )
iv_devclass = ii_repo->get_package( )
io_dot = ii_repo->get_dot_abapgit( )
IMPORTING
es_item = ls_item ).
INSERT ls_item INTO TABLE rt_changed_objects.

View File

@ -79,12 +79,12 @@ CLASS zcl_abapgit_gui_page_flow IMPLEMENTATION.
METHOD refresh.
DATA ls_feature LIKE LINE OF mt_features.
DATA lo_online TYPE REF TO zcl_abapgit_repo_online.
DATA li_repo TYPE REF TO zif_abapgit_repo.
LOOP AT mt_features INTO ls_feature.
lo_online ?= zcl_abapgit_repo_srv=>get_instance( )->get( ls_feature-repo-key ).
lo_online->refresh( ).
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( ls_feature-repo-key ).
li_repo->refresh( ).
ENDLOOP.
CLEAR mt_features.
@ -166,13 +166,13 @@ CLASS zcl_abapgit_gui_page_flow IMPLEMENTATION.
METHOD set_branch.
DATA lv_branch TYPE string.
DATA lo_online TYPE REF TO zcl_abapgit_repo_online.
DATA li_repo_online TYPE REF TO zif_abapgit_repo_online.
IF iv_branch IS NOT INITIAL.
lv_branch = 'refs/heads/' && iv_branch.
lo_online ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
IF lo_online->get_selected_branch( ) <> lv_branch.
lo_online->select_branch( lv_branch ).
li_repo_online ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
IF li_repo_online->get_selected_branch( ) <> lv_branch.
li_repo_online->select_branch( lv_branch ).
ENDIF.
ENDIF.
@ -186,7 +186,7 @@ CLASS zcl_abapgit_gui_page_flow IMPLEMENTATION.
DATA lo_filter TYPE REF TO lcl_filter.
DATA lt_filter TYPE zif_abapgit_definitions=>ty_tadir_tt.
DATA lv_index TYPE i.
DATA lo_online TYPE REF TO zcl_abapgit_repo_online.
DATA li_repo_online TYPE REF TO zif_abapgit_repo_online.
DATA ls_feature LIKE LINE OF mt_features.
DATA ls_event_result TYPE zif_abapgit_flow_exit=>ty_event_result.
@ -209,7 +209,7 @@ CLASS zcl_abapgit_gui_page_flow IMPLEMENTATION.
lv_key = ii_event->query( )->get( 'KEY' ).
lv_index = ii_event->query( )->get( 'INDEX' ).
lv_branch = ii_event->query( )->get( 'BRANCH' ).
lo_online ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
li_repo_online ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
READ TABLE mt_features INTO ls_feature INDEX lv_index.
ASSERT sy-subrc = 0.
@ -227,8 +227,8 @@ CLASS zcl_abapgit_gui_page_flow IMPLEMENTATION.
rs_handled-page = zcl_abapgit_gui_page_stage=>create(
ii_force_refresh = abap_false
io_repo = lo_online
ii_obj_filter = lo_filter ).
ii_repo_online = li_repo_online
ii_obj_filter = lo_filter ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page_w_bookmark.
@ -237,7 +237,7 @@ CLASS zcl_abapgit_gui_page_flow IMPLEMENTATION.
lv_key = ii_event->query( )->get( 'KEY' ).
lv_index = ii_event->query( )->get( 'INDEX' ).
lv_branch = ii_event->query( )->get( 'BRANCH' ).
lo_online ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
li_repo_online ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
READ TABLE mt_features INTO ls_feature INDEX lv_index.
ASSERT sy-subrc = 0.
@ -254,7 +254,7 @@ CLASS zcl_abapgit_gui_page_flow IMPLEMENTATION.
iv_key = lv_key ).
rs_handled-page = zcl_abapgit_gui_page_pull=>create(
io_repo = lo_online
ii_repo = li_repo_online
iv_trkorr = ls_feature-transport-trkorr
ii_obj_filter = lo_filter ).

View File

@ -26,7 +26,7 @@ CLASS zcl_abapgit_gui_chunk_lib DEFINITION
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
CLASS-METHODS render_repo_top
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
!iv_show_package TYPE abap_bool DEFAULT abap_true
!iv_show_branch TYPE abap_bool DEFAULT abap_true
!iv_show_commit TYPE abap_bool DEFAULT abap_true
@ -105,7 +105,7 @@ CLASS zcl_abapgit_gui_chunk_lib DEFINITION
IMPORTING
!iv_branch TYPE string OPTIONAL
!iv_repo_key TYPE zif_abapgit_persistence=>ty_value OPTIONAL
!io_repo TYPE REF TO zcl_abapgit_repo_online OPTIONAL
!ii_repo_online TYPE REF TO zif_abapgit_repo_online OPTIONAL
!iv_interactive TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
@ -215,7 +215,7 @@ CLASS zcl_abapgit_gui_chunk_lib DEFINITION
CLASS-METHODS render_repo_top_commit_hash
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!io_repo_online TYPE REF TO zcl_abapgit_repo_online
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
@ -352,31 +352,33 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
lv_text TYPE string,
lv_icon TYPE string,
lv_hint TYPE string,
lv_class TYPE string.
lv_class TYPE string,
li_repo TYPE REF TO zif_abapgit_repo.
IF iv_repo_key IS NOT INITIAL.
lv_key = iv_repo_key.
ELSEIF io_repo IS BOUND.
lv_key = io_repo->get_key( ).
ELSEIF ii_repo_online IS BOUND.
li_repo = ii_repo_online.
lv_key = li_repo->get_key( ).
ELSE.
zcx_abapgit_exception=>raise( 'Either iv_repo_key or io_repo must be supplied' ).
zcx_abapgit_exception=>raise( 'Either iv_repo_key or ii_repo_online must be supplied' ).
ENDIF.
IF iv_branch IS NOT INITIAL.
lv_branch = iv_branch.
lv_text = zcl_abapgit_git_branch_list=>get_display_name( lv_branch ).
ELSEIF io_repo IS BOUND.
lv_selected_commit = io_repo->get_selected_commit( ).
ELSEIF ii_repo_online IS BOUND.
lv_selected_commit = ii_repo_online->get_selected_commit( ).
IF lv_selected_commit IS NOT INITIAL.
"Convert to short commit. Example: (ae623b9...)
lv_commit_short_sha = lv_selected_commit+0(7).
lv_text = |({ lv_commit_short_sha }...)|.
ELSE.
lv_branch = io_repo->get_selected_branch( ).
lv_branch = ii_repo_online->get_selected_branch( ).
lv_text = zcl_abapgit_git_branch_list=>get_display_name( lv_branch ).
ENDIF.
ELSE.
zcx_abapgit_exception=>raise( 'Either iv_branch or io_repo must be supplied' ).
zcx_abapgit_exception=>raise( 'Either iv_branch or ii_repo_online must be supplied' ).
ENDIF.
CASE zcl_abapgit_git_branch_list=>get_type( lv_branch ).
@ -930,7 +932,7 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
METHOD render_repo_top.
DATA: lo_repo_online TYPE REF TO zcl_abapgit_repo_online,
DATA: li_repo_online TYPE REF TO zif_abapgit_repo_online,
lo_pback TYPE REF TO zcl_abapgit_persist_background,
lx_error TYPE REF TO zcx_abapgit_exception,
lv_hint TYPE string,
@ -939,7 +941,7 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
CREATE OBJECT lo_pback.
IF io_repo->is_offline( ) = abap_true.
IF ii_repo->is_offline( ) = abap_true.
lv_icon = 'plug/darkgrey'.
lv_hint = 'Offline Repository'.
ELSE.
@ -954,11 +956,11 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
" Repo type and name
ri_html->add_icon( iv_name = lv_icon
iv_hint = lv_hint ).
ri_html->add( |<span class="name">{ io_repo->get_name( ) }</span>| ).
IF io_repo->is_offline( ) = abap_false.
lo_repo_online ?= io_repo.
ri_html->add( |<span class="name">{ ii_repo->get_name( ) }</span>| ).
IF ii_repo->is_offline( ) = abap_false.
li_repo_online ?= ii_repo.
ri_html->add( render_repo_url( lo_repo_online->get_url( ) ) ).
ri_html->add( render_repo_url( li_repo_online->get_url( ) ) ).
ENDIF.
IF iv_show_edit = abap_true.
@ -966,25 +968,25 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
iv_class = 'pad-sides'
iv_hint = 'Change Remote' )
iv_act = |{ zif_abapgit_definitions=>c_action-repo_remote_settings }?| &&
|key={ io_repo->get_key( ) }|
|key={ ii_repo->get_key( ) }|
iv_class = |url| ).
ENDIF.
IF io_repo->is_offline( ) = abap_false.
lo_repo_online ?= io_repo.
IF ii_repo->is_offline( ) = abap_false.
li_repo_online ?= ii_repo.
ri_html->add_a( iv_txt = ri_html->icon( iv_name = 'copy-solid'
iv_class = 'pad-sides'
iv_hint = 'Copy URL to Clipboard' )
iv_act = |{ zif_abapgit_definitions=>c_action-clipboard }| &&
|?clipboard={ lo_repo_online->get_url( ) }|
|?clipboard={ li_repo_online->get_url( ) }|
iv_class = |url| ).
ENDIF.
IF io_repo->is_offline( ) = abap_false AND iv_show_commit = abap_true.
IF ii_repo->is_offline( ) = abap_false AND iv_show_commit = abap_true.
TRY.
render_repo_top_commit_hash( ii_html = ri_html
io_repo_online = lo_repo_online ).
ii_repo_online = li_repo_online ).
CATCH zcx_abapgit_exception INTO lx_error.
" In case of missing or wrong credentials, show message in status bar
lv_hint = lx_error->get_text( ).
@ -1013,43 +1015,43 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
ri_html->add( '<td class="repo_attr right">' ).
" Fav
IF abap_true = zcl_abapgit_persistence_user=>get_instance( )->is_favorite_repo( io_repo->get_key( ) ).
IF abap_true = zcl_abapgit_persistence_user=>get_instance( )->is_favorite_repo( ii_repo->get_key( ) ).
lv_icon = 'star/blue'.
ELSE.
lv_icon = 'star/grey'.
ENDIF.
ri_html->add_a( iv_act = |{ zif_abapgit_definitions=>c_action-repo_toggle_fav }?key={ io_repo->get_key( ) }|
ri_html->add_a( iv_act = |{ zif_abapgit_definitions=>c_action-repo_toggle_fav }?key={ ii_repo->get_key( ) }|
iv_txt = ri_html->icon( iv_name = lv_icon
iv_class = 'pad-sides'
iv_hint = 'Toggle Favorite' ) ).
" BG
IF lo_pback->exists( io_repo->get_key( ) ) = abap_true.
IF lo_pback->exists( ii_repo->get_key( ) ) = abap_true.
ri_html->add( '<span class="bg_marker" title="background">BG</span>' ).
ENDIF.
" Write protect
IF io_repo->get_local_settings( )-write_protected = abap_true.
IF ii_repo->get_local_settings( )-write_protected = abap_true.
ri_html->add_icon( iv_name = 'lock/grey70'
iv_hint = 'Locked from Pulls' ).
ENDIF.
IF io_repo->get_local_settings( )-flow = abap_true.
IF ii_repo->get_local_settings( )-flow = abap_true.
ri_html->add_icon( iv_name = 'flow/grey70'
iv_hint = 'Flow' ).
ENDIF.
" Branch
IF io_repo->is_offline( ) = abap_false.
lo_repo_online ?= io_repo.
IF ii_repo->is_offline( ) = abap_false.
li_repo_online ?= ii_repo.
IF iv_show_branch = abap_true.
ri_html->add( render_branch_name( io_repo = lo_repo_online
ri_html->add( render_branch_name( ii_repo_online = li_repo_online
iv_interactive = iv_interactive_branch ) ).
ENDIF.
ENDIF.
" Package
IF iv_show_package = abap_true.
ri_html->add( render_package_name( io_repo->get_package( ) ) ).
ri_html->add( render_package_name( ii_repo->get_package( ) ) ).
ENDIF.
ri_html->add( '</td>' ).
@ -1066,7 +1068,7 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
lo_url TYPE REF TO zcl_abapgit_git_url,
lv_icon_commit TYPE string.
lv_commit_hash = io_repo_online->get_current_remote( ).
lv_commit_hash = ii_repo_online->get_current_remote( ).
lv_commit_short_hash = lv_commit_hash(7).
lv_icon_commit = ii_html->icon( iv_name = 'code-commit'
@ -1076,7 +1078,7 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
CREATE OBJECT lo_url.
TRY.
lv_display_url = lo_url->get_commit_display_url( io_repo_online ).
lv_display_url = lo_url->get_commit_display_url( ii_repo_online ).
ii_html->add_a( iv_txt = |{ lv_icon_commit }{ lv_commit_short_hash }|
iv_act = |{ zif_abapgit_definitions=>c_action-url }?url={ lv_display_url }|

View File

@ -112,7 +112,7 @@ CLASS ltd_repo_srv IMPLEMENTATION.
DATA lo_abapgit_repo TYPE REF TO zif_abapgit_repo.
LOOP AT mt_repositories INTO lo_test_double_repo.
lo_abapgit_repo ?= lo_test_double_repo.
lo_abapgit_repo = lo_test_double_repo.
APPEND lo_test_double_repo TO rt_list.
ENDLOOP.
ENDMETHOD.
@ -243,6 +243,59 @@ CLASS ltd_repo IMPLEMENTATION.
METHOD zif_abapgit_repo~find_remote_dot_abapgit.
ENDMETHOD.
METHOD zif_abapgit_repo~create_new_log.
ENDMETHOD.
METHOD zif_abapgit_repo~delete_checks.
ENDMETHOD.
METHOD zif_abapgit_repo~get_dot_apack.
ENDMETHOD.
METHOD zif_abapgit_repo~get_log.
ENDMETHOD.
METHOD zif_abapgit_repo~get_data_config.
ENDMETHOD.
METHOD zif_abapgit_repo~get_unsupported_objects_local.
ENDMETHOD.
METHOD zif_abapgit_repo~refresh_local_object.
ENDMETHOD.
METHOD zif_abapgit_repo~refresh_local_objects.
ENDMETHOD.
METHOD zif_abapgit_repo~set_files_remote.
ENDMETHOD.
METHOD zif_abapgit_repo~set_local_settings.
ENDMETHOD.
METHOD zif_abapgit_repo~switch_repo_type.
ENDMETHOD.
METHOD zif_abapgit_repo~bind_listener.
ENDMETHOD.
METHOD zif_abapgit_repo~remove_ignored_files.
ENDMETHOD.
ENDCLASS.

View File

@ -15,7 +15,7 @@ CLASS zcl_abapgit_gui_page_code_insp DEFINITION
CLASS-METHODS create
IMPORTING
io_repo TYPE REF TO zcl_abapgit_repo
ii_repo TYPE REF TO zif_abapgit_repo
io_stage TYPE REF TO zcl_abapgit_stage OPTIONAL
iv_check_variant TYPE sci_chkv OPTIONAL
iv_raise_when_no_results TYPE abap_bool DEFAULT abap_false
@ -26,7 +26,7 @@ CLASS zcl_abapgit_gui_page_code_insp DEFINITION
METHODS constructor
IMPORTING
io_repo TYPE REF TO zcl_abapgit_repo
ii_repo TYPE REF TO zif_abapgit_repo
io_stage TYPE REF TO zcl_abapgit_stage OPTIONAL
iv_check_variant TYPE sci_chkv OPTIONAL
iv_raise_when_no_results TYPE abap_bool DEFAULT abap_false
@ -87,7 +87,7 @@ CLASS zcl_abapgit_gui_page_code_insp IMPLEMENTATION.
METHOD constructor.
super->constructor( ).
mo_repo = io_repo.
mi_repo = ii_repo.
mo_stage = io_stage.
mv_check_variant = iv_check_variant.
determine_check_variant( ).
@ -106,7 +106,7 @@ CLASS zcl_abapgit_gui_page_code_insp IMPLEMENTATION.
CREATE OBJECT lo_component
EXPORTING
io_repo = io_repo
ii_repo = ii_repo
io_stage = io_stage
iv_check_variant = iv_check_variant
iv_raise_when_no_results = iv_raise_when_no_results.
@ -122,7 +122,7 @@ CLASS zcl_abapgit_gui_page_code_insp IMPLEMENTATION.
RETURN.
ENDIF.
mv_check_variant = mo_repo->get_local_settings( )-code_inspector_check_variant.
mv_check_variant = mi_repo->get_local_settings( )-code_inspector_check_variant.
IF mv_check_variant IS INITIAL.
mv_check_variant = ask_user_for_check_variant( ).
@ -142,7 +142,7 @@ CLASS zcl_abapgit_gui_page_code_insp IMPLEMENTATION.
METHOD is_stage_allowed.
rv_is_stage_allowed = boolc( NOT (
mo_repo->get_local_settings( )-block_commit = abap_true AND has_inspection_errors( ) = abap_true ) ).
mi_repo->get_local_settings( )-block_commit = abap_true AND has_inspection_errors( ) = abap_true ) ).
ENDMETHOD.
@ -151,7 +151,7 @@ CLASS zcl_abapgit_gui_page_code_insp IMPLEMENTATION.
DATA li_code_inspector TYPE REF TO zif_abapgit_code_inspector.
li_code_inspector = zcl_abapgit_code_inspector=>get_code_inspector( mo_repo->get_package( ) ).
li_code_inspector = zcl_abapgit_code_inspector=>get_code_inspector( mi_repo->get_package( ) ).
mt_result = li_code_inspector->run(
iv_variant = |{ mv_check_variant }|
@ -183,18 +183,18 @@ CLASS zcl_abapgit_gui_page_code_insp IMPLEMENTATION.
METHOD zif_abapgit_gui_event_handler~on_event.
DATA lo_repo_online TYPE REF TO zcl_abapgit_repo_online.
DATA li_repo_online TYPE REF TO zif_abapgit_repo_online.
CASE ii_event->mv_action.
WHEN c_actions-stage.
lo_repo_online ?= mo_repo.
li_repo_online ?= mi_repo.
IF is_stage_allowed( ) = abap_true.
rs_handled-page = zcl_abapgit_gui_page_stage=>create(
io_repo = lo_repo_online
iv_sci_result = status( ) ).
ii_repo_online = li_repo_online
iv_sci_result = status( ) ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
@ -206,13 +206,13 @@ CLASS zcl_abapgit_gui_page_code_insp IMPLEMENTATION.
WHEN c_actions-commit.
lo_repo_online ?= mo_repo.
li_repo_online ?= mi_repo.
IF is_stage_allowed( ) = abap_true.
rs_handled-page = zcl_abapgit_gui_page_commit=>create(
io_repo = lo_repo_online
io_stage = mo_stage ).
ii_repo_online = li_repo_online
io_stage = mo_stage ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
@ -263,7 +263,7 @@ CLASS zcl_abapgit_gui_page_code_insp IMPLEMENTATION.
lv_opt = zif_abapgit_html=>c_html_opt-crossout.
ENDIF.
IF mo_repo->is_offline( ) = abap_true.
IF mi_repo->is_offline( ) = abap_true.
RETURN.
ENDIF.
@ -307,7 +307,7 @@ CLASS zcl_abapgit_gui_page_code_insp IMPLEMENTATION.
ri_html->div(
iv_class = 'repo'
ii_content = zcl_abapgit_gui_chunk_lib=>render_repo_top(
io_repo = mo_repo
ii_repo = mi_repo
iv_show_commit = abap_false ) ).
IF mv_check_variant IS INITIAL.

View File

@ -16,7 +16,7 @@ CLASS zcl_abapgit_gui_page_codi_base DEFINITION
apply_filter TYPE string VALUE 'apply_filter',
END OF c_actions .
DATA mo_repo TYPE REF TO zcl_abapgit_repo.
DATA mi_repo TYPE REF TO zif_abapgit_repo.
DATA mt_result TYPE zif_abapgit_code_inspector=>ty_results.
DATA mv_summary TYPE string.

View File

@ -12,7 +12,7 @@ CLASS zcl_abapgit_gui_page_runit DEFINITION
CLASS-METHODS create
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
@ -20,7 +20,7 @@ CLASS zcl_abapgit_gui_page_runit DEFINITION
METHODS constructor
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception.
@ -39,7 +39,7 @@ CLASS zcl_abapgit_gui_page_runit DEFINITION
END OF ty_key,
ty_keys_tt TYPE STANDARD TABLE OF ty_key WITH DEFAULT KEY.
DATA mo_repo TYPE REF TO zcl_abapgit_repo.
DATA mi_repo TYPE REF TO zif_abapgit_repo.
DATA mv_summary TYPE string.
METHODS build_tadir
@ -77,7 +77,7 @@ CLASS zcl_abapgit_gui_page_runit IMPLEMENTATION.
DATA ls_tadir LIKE LINE OF lt_tadir.
DATA ls_row LIKE LINE OF rt_tadir.
lt_tadir = mo_repo->get_tadir_objects( ).
lt_tadir = mi_repo->get_tadir_objects( ).
LOOP AT lt_tadir INTO ls_tadir.
CLEAR ls_row.
@ -92,7 +92,7 @@ CLASS zcl_abapgit_gui_page_runit IMPLEMENTATION.
METHOD constructor.
super->constructor( ).
mo_repo = io_repo.
mi_repo = ii_repo.
TRY.
CALL METHOD ('\PROGRAM=SAPLSAUCV_GUI_RUNNER\CLASS=PASSPORT')=>get.
@ -108,7 +108,7 @@ CLASS zcl_abapgit_gui_page_runit IMPLEMENTATION.
DATA lo_component TYPE REF TO zcl_abapgit_gui_page_runit.
TRY.
CREATE OBJECT lo_component EXPORTING io_repo = io_repo.
CREATE OBJECT lo_component EXPORTING ii_repo = ii_repo.
ri_page = zcl_abapgit_gui_page_hoc=>create(
iv_page_title = |Unit Tests|
@ -120,7 +120,7 @@ CLASS zcl_abapgit_gui_page_runit IMPLEMENTATION.
" Fallback as either SAPLSAUCV_GUI_RUNNER is not available in old releases
" or passport=>get is private in newer releases NW >= 756
ri_page = zcl_abapgit_gui_page_code_insp=>create(
io_repo = io_repo
ii_repo = ii_repo
iv_check_variant = 'SWF_ABAP_UNIT' ).
ENDTRY.
@ -294,7 +294,7 @@ CLASS zcl_abapgit_gui_page_runit IMPLEMENTATION.
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
ri_html->add( '<div class="repo">' ).
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top( io_repo = mo_repo
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top( ii_repo = mi_repo
iv_show_commit = abap_false ) ).
lo_result = run( ).

View File

@ -15,7 +15,7 @@ CLASS zcl_abapgit_gui_page_syntax DEFINITION
CLASS-METHODS create
IMPORTING
io_repo TYPE REF TO zcl_abapgit_repo
ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
@ -23,7 +23,7 @@ CLASS zcl_abapgit_gui_page_syntax DEFINITION
METHODS constructor
IMPORTING
io_repo TYPE REF TO zcl_abapgit_repo
ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception.
@ -46,7 +46,7 @@ CLASS zcl_abapgit_gui_page_syntax IMPLEMENTATION.
METHOD constructor.
super->constructor( ).
mo_repo = io_repo.
mi_repo = ii_repo.
run_syntax_check( ).
ENDMETHOD.
@ -57,7 +57,7 @@ CLASS zcl_abapgit_gui_page_syntax IMPLEMENTATION.
CREATE OBJECT lo_component
EXPORTING
io_repo = io_repo.
ii_repo = ii_repo.
ri_page = zcl_abapgit_gui_page_hoc=>create( lo_component ).
@ -68,7 +68,7 @@ CLASS zcl_abapgit_gui_page_syntax IMPLEMENTATION.
DATA: li_syntax_check TYPE REF TO zif_abapgit_code_inspector.
li_syntax_check = zcl_abapgit_code_inspector=>get_code_inspector( mo_repo->get_package( ) ).
li_syntax_check = zcl_abapgit_code_inspector=>get_code_inspector( mi_repo->get_package( ) ).
TRY.
mt_result = li_syntax_check->run( c_variant ).
@ -136,7 +136,7 @@ CLASS zcl_abapgit_gui_page_syntax IMPLEMENTATION.
ri_html->div(
iv_class = 'repo'
ii_content = zcl_abapgit_gui_chunk_lib=>render_repo_top(
io_repo = mo_repo
ii_repo = mi_repo
iv_show_commit = abap_false ) ).
render_ci_report(

View File

@ -233,7 +233,7 @@ CLASS zcl_abapgit_gui_page_addofflin IMPLEMENTATION.
METHOD zif_abapgit_gui_event_handler~on_event.
DATA: ls_repo_params TYPE zif_abapgit_services_repo=>ty_repo_params,
lo_new_offline_repo TYPE REF TO zcl_abapgit_repo_offline.
li_new_offline_repo TYPE REF TO zif_abapgit_repo.
mo_form_data = mo_form_util->normalize( ii_event->form_data( ) ).
@ -274,8 +274,8 @@ CLASS zcl_abapgit_gui_page_addofflin IMPLEMENTATION.
IF mo_validation_log->is_empty( ) = abap_true.
mo_form_data->to_abap( CHANGING cs_container = ls_repo_params ).
lo_new_offline_repo = zcl_abapgit_services_repo=>new_offline( ls_repo_params ).
rs_handled-page = zcl_abapgit_gui_page_repo_view=>create( lo_new_offline_repo->get_key( ) ).
li_new_offline_repo = zcl_abapgit_services_repo=>new_offline( ls_repo_params ).
rs_handled-page = zcl_abapgit_gui_page_repo_view=>create( li_new_offline_repo->get_key( ) ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page_replacing.
ELSE.
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render. " Display errors

View File

@ -267,8 +267,8 @@ CLASS zcl_abapgit_gui_page_addonline IMPLEMENTATION.
METHOD zif_abapgit_gui_event_handler~on_event.
DATA: ls_repo_params TYPE zif_abapgit_services_repo=>ty_repo_params,
lo_new_online_repo TYPE REF TO zcl_abapgit_repo_online.
DATA: ls_repo_params TYPE zif_abapgit_services_repo=>ty_repo_params,
li_new_repo TYPE REF TO zif_abapgit_repo.
mo_form_data = mo_form_util->normalize( ii_event->form_data( ) ).
@ -335,8 +335,8 @@ CLASS zcl_abapgit_gui_page_addonline IMPLEMENTATION.
IF mo_validation_log->is_empty( ) = abap_true.
mo_form_data->to_abap( CHANGING cs_container = ls_repo_params ).
lo_new_online_repo = zcl_abapgit_services_repo=>new_online( ls_repo_params ).
rs_handled-page = zcl_abapgit_gui_page_repo_view=>create( lo_new_online_repo->get_key( ) ).
li_new_repo = zcl_abapgit_services_repo=>new_online( ls_repo_params ).
rs_handled-page = zcl_abapgit_gui_page_repo_view=>create( li_new_repo->get_key( ) ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page_replacing.
ELSE.
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render. " Display errors

View File

@ -11,14 +11,14 @@ CLASS zcl_abapgit_gui_page_sett_bckg DEFINITION
CLASS-METHODS create
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS constructor
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
@ -41,7 +41,7 @@ CLASS zcl_abapgit_gui_page_sett_bckg DEFINITION
END OF c_event .
DATA mo_form TYPE REF TO zcl_abapgit_html_form .
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map .
DATA mo_repo TYPE REF TO zcl_abapgit_repo .
DATA mi_repo TYPE REF TO zif_abapgit_repo .
DATA mv_settings_count TYPE i .
METHODS get_form_schema
@ -66,14 +66,14 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_BCKG IMPLEMENTATION.
CLASS zcl_abapgit_gui_page_sett_bckg IMPLEMENTATION.
METHOD constructor.
super->constructor( ).
CREATE OBJECT mo_form_data.
mo_repo = io_repo.
mi_repo = ii_repo.
mo_form = get_form_schema( ).
mo_form_data = read_settings( ).
@ -86,12 +86,12 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_BCKG IMPLEMENTATION.
CREATE OBJECT lo_component
EXPORTING
io_repo = io_repo.
ii_repo = ii_repo.
ri_page = zcl_abapgit_gui_page_hoc=>create(
iv_page_title = 'Background Mode'
io_page_menu = zcl_abapgit_gui_menus=>repo_settings(
iv_key = io_repo->get_key( )
iv_key = ii_repo->get_key( )
iv_act = zif_abapgit_definitions=>c_action-repo_background )
ii_child_component = lo_component ).
@ -178,7 +178,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_BCKG IMPLEMENTATION.
CREATE OBJECT lo_per.
TRY.
rs_persist = lo_per->get_by_key( mo_repo->get_key( ) ).
rs_persist = lo_per->get_by_key( mi_repo->get_key( ) ).
CATCH zcx_abapgit_not_found.
CLEAR rs_persist.
ENDTRY.
@ -263,7 +263,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_BCKG IMPLEMENTATION.
FIELD-SYMBOLS:
<ls_settings> LIKE LINE OF ls_per-settings.
ls_per-key = mo_repo->get_key( ).
ls_per-key = mi_repo->get_key( ).
" Mode Selection
ls_per-method = mo_form_data->get( c_id-method ).
@ -337,7 +337,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_BCKG IMPLEMENTATION.
ri_html->add( `<div class="repo">` ).
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top(
io_repo = mo_repo
ii_repo = mi_repo
iv_show_commit = abap_false
iv_interactive_branch = abap_true ) ).

View File

@ -11,14 +11,14 @@ CLASS zcl_abapgit_gui_page_sett_info DEFINITION
CLASS-METHODS create
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS constructor
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
@ -51,7 +51,7 @@ CLASS zcl_abapgit_gui_page_sett_info DEFINITION
DATA mo_form TYPE REF TO zcl_abapgit_html_form .
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map .
DATA mo_repo TYPE REF TO zcl_abapgit_repo .
DATA mi_repo TYPE REF TO zif_abapgit_repo .
DATA:
mt_stats TYPE STANDARD TABLE OF ty_stats WITH KEY measure .
@ -121,7 +121,7 @@ CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION.
super->constructor( ).
CREATE OBJECT mo_form_data.
mo_repo = io_repo.
mi_repo = ii_repo.
mo_form = get_form_schema( ).
ENDMETHOD.
@ -133,12 +133,12 @@ CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION.
CREATE OBJECT lo_component
EXPORTING
io_repo = io_repo.
ii_repo = ii_repo.
ri_page = zcl_abapgit_gui_page_hoc=>create(
iv_page_title = 'Repository Stats'
io_page_menu = zcl_abapgit_gui_menus=>repo_settings(
iv_key = io_repo->get_key( )
iv_key = ii_repo->get_key( )
iv_act = zif_abapgit_definitions=>c_action-repo_infos )
ii_child_component = lo_component ).
@ -213,7 +213,7 @@ CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION.
iv_form_id = 'repo-infos-form'
iv_help_page = 'https://docs.abapgit.org/settings-stats.html' ).
IF mo_repo->is_offline( ) = abap_true.
IF mi_repo->is_offline( ) = abap_true.
lv_label = 'ZIP File'.
ELSE.
lv_label = 'Remote'.
@ -271,9 +271,9 @@ CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION.
" Get infos from DB
TRY.
ls_repo = zcl_abapgit_persist_factory=>get_repo( )->read( mo_repo->get_key( ) ).
ls_repo = zcl_abapgit_persist_factory=>get_repo( )->read( mi_repo->get_key( ) ).
CATCH zcx_abapgit_not_found.
zcx_abapgit_exception=>raise( |Repo not found, key { mo_repo->get_key( ) }| ).
zcx_abapgit_exception=>raise( |Repo not found, key { mi_repo->get_key( ) }| ).
ENDTRY.
read_stats( ).
@ -394,15 +394,15 @@ CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION.
DATA ls_stats TYPE ty_stats.
DATA lt_remote_wo_ignored TYPE zif_abapgit_git_definitions=>ty_files_tt.
et_local = mo_repo->get_files_local( ).
et_local = mi_repo->get_files_local( ).
ls_stats-measure = 'Number of Files'.
ls_stats-local = lines( et_local ).
IF mo_repo->has_remote_source( ) = abap_true.
et_remote = mo_repo->get_files_remote( ).
IF mi_repo->has_remote_source( ) = abap_true.
et_remote = mi_repo->get_files_remote( ).
ls_stats-remote = lines( et_remote ).
lt_remote_wo_ignored = mo_repo->get_files_remote( iv_ignore_files = abap_true ).
lt_remote_wo_ignored = mi_repo->get_files_remote( iv_ignore_files = abap_true ).
ENDIF.
APPEND ls_stats TO mt_stats.
@ -436,7 +436,7 @@ CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION.
CLEAR ls_stats.
ls_stats-measure = 'Number of Unsupported Objects'.
ls_stats-local = lines( mo_repo->get_unsupported_objects_local( ) ).
ls_stats-local = lines( mi_repo->get_unsupported_objects_local( ) ).
lt_supported_types = zcl_abapgit_objects=>supported_list( ).
@ -476,9 +476,9 @@ CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION.
COLLECT <ls_local>-item INTO et_local_items.
ENDLOOP.
IF mo_repo->has_remote_source( ) = abap_true.
IF mi_repo->has_remote_source( ) = abap_true.
LOOP AT it_remote ASSIGNING <ls_remote> WHERE filename IS NOT INITIAL.
lv_ignored = mo_repo->get_dot_abapgit( )->is_ignored(
lv_ignored = mi_repo->get_dot_abapgit( )->is_ignored(
iv_filename = <ls_remote>-filename
iv_path = <ls_remote>-path ).
@ -494,8 +494,8 @@ CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION.
EXPORTING
iv_filename = <ls_remote>-filename
iv_path = <ls_remote>-path
iv_devclass = mo_repo->get_package( )
io_dot = mo_repo->get_dot_abapgit( )
iv_devclass = mi_repo->get_package( )
io_dot = mi_repo->get_dot_abapgit( )
IMPORTING
es_item = ls_item ).
COLLECT ls_item INTO et_remote_items.
@ -532,7 +532,7 @@ CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION.
FIELD-SYMBOLS:
<ls_result> LIKE LINE OF lt_results.
lt_results = zcl_abapgit_repo_status=>calculate( mo_repo ).
lt_results = zcl_abapgit_repo_status=>calculate( mi_repo ).
DO 3 TIMES.
CLEAR ls_stats.
@ -553,7 +553,7 @@ CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION.
IF <ls_result>-lstate = lv_state.
ls_stats-local = ls_stats-local + 1.
ENDIF.
IF <ls_result>-rstate = lv_state AND mo_repo->has_remote_source( ) = abap_true.
IF <ls_result>-rstate = lv_state AND mi_repo->has_remote_source( ) = abap_true.
ls_stats-remote = ls_stats-remote + 1.
ENDIF.
ENDLOOP.
@ -584,7 +584,7 @@ CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION.
ri_html->add( `<div class="repo">` ).
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top(
io_repo = mo_repo
ii_repo = mi_repo
iv_show_commit = abap_false
iv_interactive_branch = abap_true ) ).

View File

@ -11,14 +11,14 @@ CLASS zcl_abapgit_gui_page_sett_locl DEFINITION
CLASS-METHODS create
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS constructor
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
@ -55,7 +55,7 @@ CLASS zcl_abapgit_gui_page_sett_locl DEFINITION
DATA mo_form TYPE REF TO zcl_abapgit_html_form .
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map .
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map .
DATA mo_repo TYPE REF TO zcl_abapgit_repo .
DATA mi_repo TYPE REF TO zif_abapgit_repo .
DATA ms_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings .
METHODS validate_form
@ -193,7 +193,7 @@ CLASS zcl_abapgit_gui_page_sett_locl IMPLEMENTATION.
super->constructor( ).
CREATE OBJECT mo_validation_log.
CREATE OBJECT mo_form_data.
mo_repo = io_repo.
mi_repo = ii_repo.
mo_form = get_form_schema( ).
mo_form_data = read_settings( ).
@ -206,12 +206,12 @@ CLASS zcl_abapgit_gui_page_sett_locl IMPLEMENTATION.
CREATE OBJECT lo_component
EXPORTING
io_repo = io_repo.
ii_repo = ii_repo.
ri_page = zcl_abapgit_gui_page_hoc=>create(
iv_page_title = 'Local Settings & Checks'
io_page_menu = zcl_abapgit_gui_menus=>repo_settings(
iv_key = io_repo->get_key( )
iv_key = ii_repo->get_key( )
iv_act = zif_abapgit_definitions=>c_action-repo_local_settings )
ii_child_component = lo_component ).
@ -222,7 +222,7 @@ CLASS zcl_abapgit_gui_page_sett_locl IMPLEMENTATION.
DATA: li_package TYPE REF TO zif_abapgit_sap_package.
li_package = zcl_abapgit_factory=>get_sap_package( mo_repo->get_package( ) ).
li_package = zcl_abapgit_factory=>get_sap_package( mi_repo->get_package( ) ).
ro_form = zcl_abapgit_html_form=>create(
iv_form_id = 'repo-local-settings-form'
@ -333,7 +333,7 @@ CLASS zcl_abapgit_gui_page_sett_locl IMPLEMENTATION.
DATA lt_files TYPE zif_abapgit_definitions=>ty_files_item_tt.
lt_files = mo_repo->get_files_local( ).
lt_files = mi_repo->get_files_local( ).
READ TABLE lt_files TRANSPORTING NO FIELDS
WITH KEY item-obj_type = zif_abapgit_data_config=>c_data_type-tabu. "todo
@ -349,10 +349,10 @@ CLASS zcl_abapgit_gui_page_sett_locl IMPLEMENTATION.
DATA li_package TYPE REF TO zif_abapgit_sap_package.
DATA lv_excl_rem TYPE string.
li_package = zcl_abapgit_factory=>get_sap_package( mo_repo->get_package( ) ).
li_package = zcl_abapgit_factory=>get_sap_package( mi_repo->get_package( ) ).
" Get settings from DB
ms_settings = mo_repo->get_local_settings( ).
ms_settings = mi_repo->get_local_settings( ).
CREATE OBJECT ro_form_data.
" Local Settings
@ -425,7 +425,7 @@ CLASS zcl_abapgit_gui_page_sett_locl IMPLEMENTATION.
DELETE ms_settings-exclude_remote_paths WHERE table_line IS INITIAL.
mo_repo->set_local_settings( ms_settings ).
mi_repo->set_local_settings( ms_settings ).
COMMIT WORK AND WAIT.
@ -471,7 +471,7 @@ CLASS zcl_abapgit_gui_page_sett_locl IMPLEMENTATION.
lv_check_variant = to_upper( io_form_data->get( c_id-code_inspector_check_variant ) ).
IF lv_check_variant IS NOT INITIAL.
TRY.
zcl_abapgit_code_inspector=>get_code_inspector( mo_repo->get_package( )
zcl_abapgit_code_inspector=>get_code_inspector( mi_repo->get_package( )
)->validate_check_variant( lv_check_variant ).
CATCH zcx_abapgit_exception INTO lx_error.
ro_validation_log->set(
@ -564,7 +564,7 @@ CLASS zcl_abapgit_gui_page_sett_locl IMPLEMENTATION.
ri_html->add( `<div class="repo">` ).
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top(
io_repo = mo_repo
ii_repo = mi_repo
iv_show_commit = abap_false
iv_interactive_branch = abap_true ) ).

View File

@ -12,14 +12,14 @@ CLASS zcl_abapgit_gui_page_sett_remo DEFINITION
CLASS-METHODS create
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS constructor
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
@ -74,7 +74,7 @@ CLASS zcl_abapgit_gui_page_sett_remo DEFINITION
change_head_type TYPE string VALUE 'change_head_type',
END OF c_event .
DATA mo_repo TYPE REF TO zcl_abapgit_repo .
DATA mi_repo TYPE REF TO zif_abapgit_repo .
DATA ms_settings_snapshot TYPE ty_remote_settings.
DATA mo_form TYPE REF TO zcl_abapgit_html_form .
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map .
@ -86,7 +86,7 @@ CLASS zcl_abapgit_gui_page_sett_remo DEFINITION
METHODS get_remote_settings_from_repo
IMPORTING
io_repo TYPE REF TO zcl_abapgit_repo
ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(rs_settings) TYPE ty_remote_settings
RAISING
@ -205,10 +205,10 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
METHOD check_protection.
IF mo_repo->is_offline( ) = abap_true.
IF mi_repo->is_offline( ) = abap_true.
zcx_abapgit_exception=>raise( 'Unexpected switch for offline repo' ).
ENDIF.
IF mo_repo->get_local_settings( )-write_protected = abap_true.
IF mi_repo->get_local_settings( )-write_protected = abap_true.
zcx_abapgit_exception=>raise( 'Cannot switch. Repository is write-protected in local settings' ).
ENDIF.
@ -324,7 +324,7 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
IF mo_form_data->get( c_id-offline ) = abap_true.
RETURN.
ELSEIF mo_repo->is_offline( ) = abap_true.
ELSEIF mi_repo->is_offline( ) = abap_true.
MESSAGE 'Please save conversion to online repository before choosing a tag' TYPE 'S'.
RETURN.
ENDIF.
@ -363,8 +363,8 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
METHOD constructor.
super->constructor( ).
mo_repo = io_repo.
ms_settings_snapshot = get_remote_settings_from_repo( mo_repo ).
mi_repo = ii_repo.
ms_settings_snapshot = get_remote_settings_from_repo( mi_repo ).
mo_form = get_form_schema( ).
mo_form_data = initialize_form_data( ).
CREATE OBJECT mo_validation_log.
@ -378,12 +378,12 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
CREATE OBJECT lo_component
EXPORTING
io_repo = io_repo.
ii_repo = ii_repo.
ri_page = zcl_abapgit_gui_page_hoc=>create(
iv_page_title = 'Remote Settings'
io_page_menu = zcl_abapgit_gui_menus=>repo_settings(
iv_key = io_repo->get_key( )
iv_key = ii_repo->get_key( )
iv_act = zif_abapgit_definitions=>c_action-repo_remote_settings )
ii_child_component = lo_component ).
@ -539,39 +539,39 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
METHOD get_remote_settings_from_repo.
DATA: lo_repo_online TYPE REF TO zcl_abapgit_repo_online,
DATA: li_repo_online TYPE REF TO zif_abapgit_repo_online,
lv_branch TYPE ty_remote_settings-branch.
IF io_repo->is_offline( ) = abap_false.
lo_repo_online ?= io_repo.
IF ii_repo->is_offline( ) = abap_false.
li_repo_online ?= ii_repo.
rs_settings-url = lo_repo_online->get_url( ).
rs_settings-url = li_repo_online->get_url( ).
rs_settings-offline = abap_false.
rs_settings-switched_origin = lo_repo_online->get_switched_origin( ).
rs_settings-switched_origin = li_repo_online->get_switched_origin( ).
IF lo_repo_online->get_selected_commit( ) IS NOT INITIAL.
rs_settings-commit = lo_repo_online->get_selected_commit( ).
rs_settings-branch = lo_repo_online->get_selected_branch( ).
IF li_repo_online->get_selected_commit( ) IS NOT INITIAL.
rs_settings-commit = li_repo_online->get_selected_commit( ).
rs_settings-branch = li_repo_online->get_selected_branch( ).
rs_settings-head_type = c_head_types-commit.
ELSEIF lo_repo_online->get_switched_origin( ) IS NOT INITIAL.
ELSEIF li_repo_online->get_switched_origin( ) IS NOT INITIAL.
" get_switched_origin( ) returns the original repo url + HEAD concatenated with @
" get_branch( ) returns the branch of the PR in the source repo
" get_url( ) returns the source repo of the PR branch
rs_settings-switched_origin = lo_repo_online->get_switched_origin( ).
rs_settings-switched_origin = li_repo_online->get_switched_origin( ).
SPLIT rs_settings-switched_origin AT '@' INTO rs_settings-url rs_settings-branch.
IF rs_settings-branch CP zif_abapgit_git_definitions=>c_git_branch-tags.
rs_settings-tag = rs_settings-branch.
CLEAR rs_settings-branch.
ENDIF.
lv_branch = lo_repo_online->get_selected_branch( ).
lv_branch = li_repo_online->get_selected_branch( ).
REPLACE FIRST OCCURRENCE OF zif_abapgit_git_definitions=>c_git_branch-heads_prefix IN lv_branch WITH space.
CONDENSE lv_branch.
rs_settings-pull_request = |{ lo_repo_online->get_url( ) }@{ lv_branch }|.
rs_settings-pull_request = |{ li_repo_online->get_url( ) }@{ lv_branch }|.
rs_settings-head_type = c_head_types-pull_request.
ELSE.
rs_settings-branch = lo_repo_online->get_selected_branch( ).
rs_settings-branch = li_repo_online->get_selected_branch( ).
rs_settings-head_type = c_head_types-branch.
IF rs_settings-branch CP zif_abapgit_git_definitions=>c_git_branch-tags.
@ -707,7 +707,7 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top(
io_repo = mo_repo
ii_repo = mi_repo
iv_show_commit = abap_false
iv_interactive_branch = abap_false ) ).
@ -721,7 +721,7 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
METHOD save_settings.
DATA:
lo_repo_online TYPE REF TO zcl_abapgit_repo_online,
li_repo_online TYPE REF TO zif_abapgit_repo_online,
ls_settings_new TYPE ty_remote_settings.
ls_settings_new = get_remote_settings_from_form( mo_form_data ).
@ -729,14 +729,14 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
" Switch online / offline
IF ls_settings_new-offline <> ms_settings_snapshot-offline.
" Remember key, switch, retrieve new instance (todo, refactor #2244)
mo_repo->switch_repo_type( ls_settings_new-offline ).
mo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( mo_repo->get_key( ) ).
mi_repo->switch_repo_type( ls_settings_new-offline ).
mi_repo = zcl_abapgit_repo_srv=>get_instance( )->get( mi_repo->get_key( ) ).
ENDIF.
IF mo_repo->is_offline( ) = abap_false.
IF mi_repo->is_offline( ) = abap_false.
" Online: Save url
lo_repo_online ?= mo_repo.
lo_repo_online->set_url( ls_settings_new-url ).
li_repo_online ?= mi_repo.
li_repo_online->set_url( ls_settings_new-url ).
ENDIF.
CASE ls_settings_new-head_type.
@ -756,10 +756,10 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
switch_to_pull_req( iv_pull = ls_settings_new-pull_request ).
ENDCASE.
IF mo_repo->is_offline( ) = abap_false AND ls_settings_new-head_type <> c_head_types-pull_request.
IF mi_repo->is_offline( ) = abap_false AND ls_settings_new-head_type <> c_head_types-pull_request.
" Switching from PR to something else will reset the URL in repo->switch_origin( space )
" -> set URL again
lo_repo_online->set_url( ls_settings_new-url ).
li_repo_online->set_url( ls_settings_new-url ).
ENDIF.
COMMIT WORK AND WAIT.
@ -767,7 +767,7 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
MESSAGE 'Settings successfully saved' TYPE 'S'.
mv_refresh_on_back = abap_true.
ms_settings_snapshot = get_remote_settings_from_repo( mo_repo ).
ms_settings_snapshot = get_remote_settings_from_repo( mi_repo ).
ENDMETHOD.
@ -825,27 +825,27 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
METHOD switch_to_branch_tag.
DATA lo_repo TYPE REF TO zcl_abapgit_repo_online.
DATA li_repo_online TYPE REF TO zif_abapgit_repo_online.
check_protection( ).
lo_repo ?= mo_repo.
lo_repo->select_branch( iv_name ).
li_repo_online ?= mi_repo.
li_repo_online->select_branch( iv_name ).
ENDMETHOD.
METHOD switch_to_commit.
DATA lo_repo TYPE REF TO zcl_abapgit_repo_online.
DATA li_repo_online TYPE REF TO zif_abapgit_repo_online.
check_protection( ).
lo_repo ?= mo_repo.
li_repo_online ?= mi_repo.
IF iv_revert = abap_true.
lo_repo->select_commit( '' ).
li_repo_online->select_commit( '' ).
ELSE.
lo_repo->select_commit( iv_commit ).
li_repo_online->select_commit( iv_commit ).
ENDIF.
ENDMETHOD.
@ -854,20 +854,20 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
METHOD switch_to_pull_req.
DATA:
lo_repo TYPE REF TO zcl_abapgit_repo_online,
lv_url TYPE ty_remote_settings-url,
lv_branch TYPE ty_remote_settings-branch.
li_repo_online TYPE REF TO zif_abapgit_repo_online,
lv_url TYPE ty_remote_settings-url,
lv_branch TYPE ty_remote_settings-branch.
check_protection( ).
lo_repo ?= mo_repo.
li_repo_online ?= mi_repo.
" Switching twice does not work so reset to original repo first
lo_repo->switch_origin( '' ).
li_repo_online->switch_origin( '' ).
IF iv_revert = abap_false.
SPLIT iv_pull AT '@' INTO lv_url lv_branch.
lo_repo->switch_origin(
li_repo_online->switch_origin(
iv_url = lv_url
iv_branch = zif_abapgit_git_definitions=>c_git_branch-heads_prefix && lv_branch ).
ENDIF.
@ -981,7 +981,7 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION.
WHEN zif_abapgit_definitions=>c_action-go_back.
IF mv_refresh_on_back = abap_true.
" Note this doesn't trigger if the tab is switched first
mo_repo->refresh( ).
mi_repo->refresh( ).
ENDIF.
rs_handled-state = zcl_abapgit_html_form_utils=>create( mo_form )->exit(

View File

@ -22,6 +22,15 @@ CLASS ltd_branch_list DEFINITION FINAL FOR TESTING INHERITING FROM zcl_abapgit_g
ENDCLASS.
CLASS ltd_repo_online DEFINITION FINAL FOR TESTING.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_repo_online.
ENDCLASS.
CLASS ltcl_validate_form DEFINITION FINAL FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS.
@ -33,7 +42,6 @@ CLASS ltcl_validate_form DEFINITION FINAL FOR TESTING
DATA:
mo_cut TYPE REF TO zcl_abapgit_gui_page_sett_remo,
mo_repo TYPE REF TO zcl_abapgit_repo_online,
mo_given_form_data TYPE REF TO zcl_abapgit_string_map,
mo_act_validation_log TYPE REF TO zcl_abapgit_string_map,
@ -112,11 +120,143 @@ CLASS ltd_branch_list IMPLEMENTATION.
ENDCLASS.
CLASS ltd_repo_online IMPLEMENTATION.
METHOD zif_abapgit_repo~bind_listener.
ENDMETHOD.
METHOD zif_abapgit_repo~checksums.
ENDMETHOD.
METHOD zif_abapgit_repo_online~check_for_valid_branch.
ENDMETHOD.
METHOD zif_abapgit_repo_online~create_branch.
ENDMETHOD.
METHOD zif_abapgit_repo~create_new_log.
ENDMETHOD.
METHOD zif_abapgit_repo~delete_checks.
ENDMETHOD.
METHOD zif_abapgit_repo~deserialize.
ENDMETHOD.
METHOD zif_abapgit_repo~deserialize_checks.
ENDMETHOD.
METHOD zif_abapgit_repo~find_remote_dot_abapgit.
ENDMETHOD.
METHOD zif_abapgit_repo_online~get_current_remote.
ENDMETHOD.
METHOD zif_abapgit_repo~get_data_config.
ENDMETHOD.
METHOD zif_abapgit_repo~get_dot_abapgit.
ENDMETHOD.
METHOD zif_abapgit_repo~get_dot_apack.
ENDMETHOD.
METHOD zif_abapgit_repo~get_files_local.
ENDMETHOD.
METHOD zif_abapgit_repo~get_files_local_filtered.
ENDMETHOD.
METHOD zif_abapgit_repo~get_files_remote.
ENDMETHOD.
METHOD zif_abapgit_repo~get_key.
ENDMETHOD.
METHOD zif_abapgit_repo~get_local_settings.
ENDMETHOD.
METHOD zif_abapgit_repo~get_log.
ENDMETHOD.
METHOD zif_abapgit_repo~get_name.
ENDMETHOD.
METHOD zif_abapgit_repo~get_package.
ENDMETHOD.
METHOD zif_abapgit_repo_online~get_selected_branch.
ENDMETHOD.
METHOD zif_abapgit_repo_online~get_selected_commit.
ENDMETHOD.
METHOD zif_abapgit_repo_online~get_switched_origin.
ENDMETHOD.
METHOD zif_abapgit_repo~get_tadir_objects.
ENDMETHOD.
METHOD zif_abapgit_repo~get_unsupported_objects_local.
ENDMETHOD.
METHOD zif_abapgit_repo_online~get_url.
ENDMETHOD.
METHOD zif_abapgit_repo~has_remote_source.
ENDMETHOD.
METHOD zif_abapgit_repo~is_offline.
ENDMETHOD.
METHOD zif_abapgit_repo_online~push.
ENDMETHOD.
METHOD zif_abapgit_repo~refresh.
ENDMETHOD.
METHOD zif_abapgit_repo~refresh_local_object.
ENDMETHOD.
METHOD zif_abapgit_repo~refresh_local_objects.
ENDMETHOD.
METHOD zif_abapgit_repo~remove_ignored_files.
ENDMETHOD.
METHOD zif_abapgit_repo_online~select_branch.
ENDMETHOD.
METHOD zif_abapgit_repo_online~select_commit.
ENDMETHOD.
METHOD zif_abapgit_repo~set_dot_abapgit.
ENDMETHOD.
METHOD zif_abapgit_repo~set_files_remote.
ENDMETHOD.
METHOD zif_abapgit_repo~set_local_settings.
ENDMETHOD.
METHOD zif_abapgit_repo_online~set_url.
ENDMETHOD.
METHOD zif_abapgit_repo_online~switch_origin.
ENDMETHOD.
METHOD zif_abapgit_repo~switch_repo_type.
ENDMETHOD.
ENDCLASS.
CLASS ltcl_validate_form IMPLEMENTATION.
METHOD setup.
DATA: ls_data TYPE zif_abapgit_persistence=>ty_repo.
DATA: li_repo_online TYPE REF TO zif_abapgit_repo_online.
CREATE OBJECT mo_git_transport_mock TYPE ltd_git_transport.
zcl_abapgit_git_injector=>set_git_transport( mo_git_transport_mock ).
@ -127,14 +267,14 @@ CLASS ltcl_validate_form IMPLEMENTATION.
ls_data-key = 1.
ls_data-branch_name = 'main'.
CREATE OBJECT mo_repo EXPORTING is_data = ls_data.
CREATE OBJECT li_repo_online TYPE ltd_repo_online.
CREATE OBJECT mo_given_form_data.
mo_given_form_data->set(
iv_key = zcl_abapgit_gui_page_sett_remo=>c_id-branch
iv_val = 'main' ).
CREATE OBJECT mo_cut EXPORTING io_repo = mo_repo.
CREATE OBJECT mo_cut EXPORTING ii_repo = li_repo_online.
ENDMETHOD.

View File

@ -11,14 +11,14 @@ CLASS zcl_abapgit_gui_page_sett_repo DEFINITION
CLASS-METHODS create
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS constructor
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
@ -54,7 +54,7 @@ CLASS zcl_abapgit_gui_page_sett_repo DEFINITION
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map .
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map .
DATA mo_repo TYPE REF TO zcl_abapgit_repo .
DATA mi_repo TYPE REF TO zif_abapgit_repo .
DATA mv_requirements_count TYPE i .
METHODS validate_form
@ -96,7 +96,7 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION.
CREATE OBJECT mo_validation_log.
CREATE OBJECT mo_form_data.
mo_repo = io_repo.
mi_repo = ii_repo.
mo_form = get_form_schema( ).
mo_form_data = read_settings( ).
@ -109,12 +109,12 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION.
CREATE OBJECT lo_component
EXPORTING
io_repo = io_repo.
ii_repo = ii_repo.
ri_page = zcl_abapgit_gui_page_hoc=>create(
iv_page_title = 'Repository Settings'
io_page_menu = zcl_abapgit_gui_menus=>repo_settings(
iv_key = io_repo->get_key( )
iv_key = ii_repo->get_key( )
iv_act = zif_abapgit_definitions=>c_action-repo_settings )
ii_child_component = lo_component ).
@ -257,7 +257,7 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION.
lv_val TYPE string.
" Get settings from DB
lo_dot = mo_repo->get_dot_abapgit( ).
lo_dot = mi_repo->get_dot_abapgit( ).
ls_dot = lo_dot->get_data( ).
lv_main_lang = lo_dot->get_main_language( ).
CREATE OBJECT ro_form_data.
@ -362,7 +362,7 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION.
ls_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement,
lt_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt.
lo_dot = mo_repo->get_dot_abapgit( ).
lo_dot = mi_repo->get_dot_abapgit( ).
lo_dot->set_name( mo_form_data->get( c_id-name ) ).
lo_dot->set_folder_logic( mo_form_data->get( c_id-folder_logic ) ).
@ -411,8 +411,8 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION.
lo_dot->set_requirements( lt_requirements ).
mo_repo->set_dot_abapgit( lo_dot ).
mo_repo->refresh( ).
mi_repo->set_dot_abapgit( lo_dot ).
mi_repo->refresh( ).
COMMIT WORK AND WAIT.
@ -486,7 +486,7 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION.
lt_lang_list = zcl_abapgit_lxe_texts=>convert_lang_string_to_table(
iv_langs = io_form_data->get( c_id-i18n_langs )
iv_skip_main_language = mo_repo->get_dot_abapgit( )->get_main_language( ) ).
iv_skip_main_language = mi_repo->get_dot_abapgit( )->get_main_language( ) ).
IF io_form_data->get( c_id-use_lxe ) = abap_true AND lt_lang_list IS INITIAL.
ro_validation_log->set(
iv_key = c_id-i18n_langs
@ -511,7 +511,7 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION.
SPLIT iv_version_constant AT '=>' INTO lv_version_class lv_version_component.
lt_local = mo_repo->get_files_local( ).
lt_local = mi_repo->get_files_local( ).
READ TABLE lt_local TRANSPORTING NO FIELDS WITH KEY
item-obj_type = 'CLAS' item-obj_name = lv_version_class.
@ -560,7 +560,7 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION.
ri_html->add( `<div class="repo">` ).
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top(
io_repo = mo_repo
ii_repo = mi_repo
iv_show_commit = abap_false
iv_interactive_branch = abap_true ) ).

View File

@ -11,7 +11,7 @@ CLASS zcl_abapgit_gui_page_chg_pckg DEFINITION
CLASS-METHODS create
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
@ -19,7 +19,7 @@ CLASS zcl_abapgit_gui_page_chg_pckg DEFINITION
METHODS constructor
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception.
@ -47,7 +47,7 @@ CLASS zcl_abapgit_gui_page_chg_pckg DEFINITION
END OF ty_map,
ty_mapping TYPE STANDARD TABLE OF ty_map WITH KEY old_package.
DATA mo_repo TYPE REF TO zcl_abapgit_repo.
DATA mi_repo TYPE REF TO zif_abapgit_repo.
DATA mo_form TYPE REF TO zcl_abapgit_html_form.
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map.
@ -142,7 +142,7 @@ CLASS zcl_abapgit_gui_page_chg_pckg IMPLEMENTATION.
iv_old_package = iv_old_package
iv_new_package = iv_new_package ).
lt_tadir = mo_repo->get_tadir_objects( ).
lt_tadir = mi_repo->get_tadir_objects( ).
create_package_hierarchy( lt_mapping ).
@ -200,17 +200,17 @@ CLASS zcl_abapgit_gui_page_chg_pckg IMPLEMENTATION.
METHOD constructor.
super->constructor( ).
mo_repo = io_repo.
mi_repo = ii_repo.
CREATE OBJECT mo_validation_log.
CREATE OBJECT mo_form_data.
mo_form = get_form_schema( ).
mo_form_util = zcl_abapgit_html_form_utils=>create( mo_form ).
IF mo_repo->get_dot_abapgit( )->get_folder_logic( ) <> zif_abapgit_dot_abapgit=>c_folder_logic-prefix.
IF mi_repo->get_dot_abapgit( )->get_folder_logic( ) <> zif_abapgit_dot_abapgit=>c_folder_logic-prefix.
zcx_abapgit_exception=>raise( 'Feature is only supported repositories with prefix folder logic' ).
ENDIF.
IF zcl_abapgit_factory=>get_cts_api( )->is_chrec_possible_for_package( mo_repo->get_package( ) ) = abap_true.
IF zcl_abapgit_factory=>get_cts_api( )->is_chrec_possible_for_package( mi_repo->get_package( ) ) = abap_true.
zcx_abapgit_exception=>raise( 'Feature is only supported local packages (no transport)' ).
ENDIF.
@ -223,7 +223,7 @@ CLASS zcl_abapgit_gui_page_chg_pckg IMPLEMENTATION.
CREATE OBJECT lo_component
EXPORTING
io_repo = io_repo.
ii_repo = ii_repo.
ri_page = zcl_abapgit_gui_page_hoc=>create(
iv_page_title = 'Change Repository Package'
@ -316,7 +316,7 @@ CLASS zcl_abapgit_gui_page_chg_pckg IMPLEMENTATION.
FIELD-SYMBOLS <ls_map> LIKE LINE OF rt_mapping.
IF mo_repo->get_local_settings( )-ignore_subpackages = abap_false.
IF mi_repo->get_local_settings( )-ignore_subpackages = abap_false.
lt_old_packages = zcl_abapgit_factory=>get_sap_package( iv_old_package )->list_subpackages( ).
ENDIF.
INSERT iv_old_package INTO TABLE lt_old_packages.
@ -345,7 +345,7 @@ CLASS zcl_abapgit_gui_page_chg_pckg IMPLEMENTATION.
mo_form_data->set(
iv_key = c_id-old_package
iv_val = mo_repo->get_package( ) ).
iv_val = mi_repo->get_package( ) ).
mo_form_data->set(
iv_key = c_id-remove_old
@ -365,7 +365,7 @@ CLASS zcl_abapgit_gui_page_chg_pckg IMPLEMENTATION.
<ls_checksum> LIKE LINE OF lt_checksums,
<ls_map> LIKE LINE OF it_mapping.
lv_key = mo_repo->get_key( ).
lv_key = mi_repo->get_key( ).
CREATE OBJECT lo_checksums EXPORTING iv_repo_key = lv_key.
@ -392,7 +392,7 @@ CLASS zcl_abapgit_gui_page_chg_pckg IMPLEMENTATION.
ls_meta TYPE zif_abapgit_persistence=>ty_repo_xml,
ls_change_mask TYPE zif_abapgit_persistence=>ty_repo_meta_mask.
lv_key = mo_repo->get_key( ).
lv_key = mi_repo->get_key( ).
lo_persist = zcl_abapgit_persist_factory=>get_repo( ).
TRY.

View File

@ -11,18 +11,18 @@ CLASS zcl_abapgit_gui_page_commit DEFINITION
CLASS-METHODS create
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo_online
!io_stage TYPE REF TO zcl_abapgit_stage
!iv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result DEFAULT zif_abapgit_definitions=>c_sci_result-no_run
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
!io_stage TYPE REF TO zcl_abapgit_stage
!iv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result DEFAULT zif_abapgit_definitions=>c_sci_result-no_run
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo_online
!io_stage TYPE REF TO zcl_abapgit_stage
!iv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
!io_stage TYPE REF TO zcl_abapgit_stage
!iv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result
RAISING
zcx_abapgit_exception.
@ -53,7 +53,7 @@ CLASS zcl_abapgit_gui_page_commit DEFINITION
DATA mo_form_util TYPE REF TO zcl_abapgit_html_form_utils.
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map.
DATA mo_settings TYPE REF TO zcl_abapgit_settings.
DATA mo_repo TYPE REF TO zcl_abapgit_repo_online.
DATA mi_repo_online TYPE REF TO zif_abapgit_repo_online.
DATA mo_stage TYPE REF TO zcl_abapgit_stage.
DATA mt_stage TYPE zif_abapgit_definitions=>ty_stage_tt.
DATA ms_commit TYPE zif_abapgit_services_git=>ty_commit_fields.
@ -127,10 +127,10 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
super->constructor( ).
mo_repo = io_repo.
mo_stage = io_stage.
mt_stage = mo_stage->get_all( ).
mv_sci_result = iv_sci_result.
mi_repo_online = ii_repo_online.
mo_stage = io_stage.
mt_stage = mo_stage->get_all( ).
mv_sci_result = iv_sci_result.
" Get settings from DB
mo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
@ -149,9 +149,9 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
CREATE OBJECT lo_component
EXPORTING
io_repo = io_repo
io_stage = io_stage
iv_sci_result = iv_sci_result.
ii_repo_online = ii_repo_online
io_stage = io_stage
iv_sci_result = iv_sci_result.
ri_page = zcl_abapgit_gui_page_hoc=>create(
iv_page_title = 'Commit'
@ -235,7 +235,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
li_user = zcl_abapgit_persistence_user=>get_instance( ).
rv_email = li_user->get_repo_git_user_email( mo_repo->get_url( ) ).
rv_email = li_user->get_repo_git_user_email( mi_repo_online->get_url( ) ).
IF rv_email IS INITIAL.
rv_email = li_user->get_default_git_user_email( ).
ENDIF.
@ -253,7 +253,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
li_user = zcl_abapgit_persistence_user=>get_instance( ).
rv_user = li_user->get_repo_git_user_name( mo_repo->get_url( ) ).
rv_user = li_user->get_repo_git_user_name( mi_repo_online->get_url( ) ).
IF rv_user IS INITIAL.
rv_user = li_user->get_default_git_user_name( ).
ENDIF.
@ -453,7 +453,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
IF lv_new_branch_name IS NOT INITIAL.
" check if branch already exists
lt_branches = zcl_abapgit_git_factory=>get_git_transport(
)->branches( mo_repo->get_url( )
)->branches( mi_repo_online->get_url( )
)->get_branches_only( ).
READ TABLE lt_branches TRANSPORTING NO FIELDS WITH TABLE KEY name_key
COMPONENTS name = branch_name_to_internal( lv_new_branch_name ).
@ -494,13 +494,13 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
IF lv_new_branch_name IS NOT INITIAL.
lv_new_branch_name = branch_name_to_internal( lv_new_branch_name ).
" creates a new branch and automatically switches to it
mo_repo->create_branch( lv_new_branch_name ).
mi_repo_online->create_branch( lv_new_branch_name ).
ENDIF.
zcl_abapgit_services_git=>commit(
is_commit = ms_commit
io_repo = mo_repo
io_stage = mo_stage ).
is_commit = ms_commit
ii_repo_online = mi_repo_online
io_stage = mo_stage ).
MESSAGE 'Commit was successful' TYPE 'S'.
@ -528,7 +528,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
ri_html->add( '<div class="repo">' ).
ri_html->add( '<div id="top" class="paddings">' ).
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top( mo_repo ) ).
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top( mi_repo_online ) ).
ri_html->add( '</div>' ).
ri_html->add( '<div id="stage-summary" class="dialog w800px paddings">' ).

View File

@ -44,7 +44,7 @@ CLASS zcl_abapgit_gui_page_data DEFINITION
PRIVATE SECTION.
DATA mo_repo TYPE REF TO zcl_abapgit_repo.
DATA mi_repo TYPE REF TO zif_abapgit_repo.
DATA mo_form TYPE REF TO zcl_abapgit_html_form.
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
@ -201,8 +201,8 @@ CLASS zcl_abapgit_gui_page_data IMPLEMENTATION.
mo_form = get_form_schema( ).
mo_form_util = zcl_abapgit_html_form_utils=>create( mo_form ).
mo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
mi_config = mo_repo->get_data_config( ).
mi_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
mi_config = mi_repo->get_data_config( ).
ENDMETHOD.
@ -360,20 +360,20 @@ CLASS zcl_abapgit_gui_page_data IMPLEMENTATION.
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
ELSE.
event_add( ii_event ).
mo_repo->refresh( ).
mi_repo->refresh( ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
ENDIF.
WHEN c_event-update.
event_update( ii_event ).
mo_repo->refresh( ).
mi_repo->refresh( ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
WHEN c_event-remove.
event_remove( ii_event ).
mo_repo->refresh( ).
mi_repo->refresh( ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
WHEN c_event-add_via_transport.
add_via_transport( ).
mo_repo->refresh( ).
mi_repo->refresh( ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
ENDCASE.

View File

@ -70,7 +70,7 @@ CLASS zcl_abapgit_gui_page_diff_base DEFINITION
END OF c_action_titles.
DATA mv_unified TYPE abap_bool VALUE abap_true ##NO_TEXT.
DATA mo_repo TYPE REF TO zcl_abapgit_repo .
DATA mi_repo TYPE REF TO zif_abapgit_repo .
DATA mt_diff_files TYPE ty_file_diffs .
CLASS-METHODS get_page_layout
@ -555,15 +555,15 @@ CLASS zcl_abapgit_gui_page_diff_base IMPLEMENTATION.
CLEAR: mt_diff_files.
lt_remote = mo_repo->get_files_remote( ).
lt_local = mo_repo->get_files_local( ).
lt_remote = mi_repo->get_files_remote( ).
lt_local = mi_repo->get_files_local( ).
lt_status = zcl_abapgit_repo_status=>calculate( mo_repo ).
lt_status = zcl_abapgit_repo_status=>calculate( mi_repo ).
li_exit = zcl_abapgit_exit=>get_instance( ).
li_exit->pre_calculate_repo_status(
EXPORTING
is_repo_meta = mo_repo->ms_data
is_repo_meta = mi_repo->ms_data
CHANGING
ct_local = lt_local
ct_remote = lt_remote ).
@ -622,7 +622,7 @@ CLASS zcl_abapgit_gui_page_diff_base IMPLEMENTATION.
super->constructor( ).
mv_unified = zcl_abapgit_persistence_user=>get_instance( )->get_diff_unified( ).
mv_repo_key = iv_key.
mo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
mi_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
GET TIME STAMP FIELD lv_ts.
mv_seed = |diff{ lv_ts }|. " Generate based on time
@ -784,12 +784,12 @@ CLASS zcl_abapgit_gui_page_diff_base IMPLEMENTATION.
METHOD refresh_full.
mo_repo->refresh( abap_true ).
mi_repo->refresh( abap_true ).
ENDMETHOD.
METHOD refresh_local.
mo_repo->refresh_local_objects( ).
mi_repo->refresh_local_objects( ).
ENDMETHOD.
@ -807,7 +807,7 @@ CLASS zcl_abapgit_gui_page_diff_base IMPLEMENTATION.
SUBMATCHES lv_obj_type lv_obj_name.
IF sy-subrc = 0.
mo_repo->refresh_local_object(
mi_repo->refresh_local_object(
iv_obj_type = to_upper( lv_obj_type )
iv_obj_name = to_upper( lv_obj_name ) ).
ELSE.
@ -1397,7 +1397,7 @@ CLASS zcl_abapgit_gui_page_diff_base IMPLEMENTATION.
li_progress = zcl_abapgit_progress=>get_instance( lines( mt_diff_files ) ).
ri_html->add( `<div class="repo">` ).
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top( mo_repo ) ).
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top( mi_repo ) ).
ri_html->add( `</div>` ).
ri_html->add( |<div id="diff-list" data-repo-key="{ mv_repo_key }">| ).

View File

@ -13,7 +13,7 @@ CLASS zcl_abapgit_gui_page_merge DEFINITION
CLASS-METHODS create
IMPORTING
io_repo TYPE REF TO zcl_abapgit_repo_online
ii_repo_online TYPE REF TO zif_abapgit_repo_online
iv_source TYPE string
iv_target TYPE string
RETURNING
@ -23,16 +23,16 @@ CLASS zcl_abapgit_gui_page_merge DEFINITION
METHODS constructor
IMPORTING
io_repo TYPE REF TO zcl_abapgit_repo_online
iv_source TYPE string
iv_target TYPE string
ii_repo_online TYPE REF TO zif_abapgit_repo_online
iv_source TYPE string
iv_target TYPE string
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mo_repo TYPE REF TO zcl_abapgit_repo_online.
DATA mi_repo_online TYPE REF TO zif_abapgit_repo_online.
DATA mi_merge TYPE REF TO zif_abapgit_merge.
CONSTANTS:
@ -59,13 +59,13 @@ CLASS zcl_abapgit_gui_page_merge IMPLEMENTATION.
super->constructor( ).
mo_repo = io_repo.
mi_repo_online = ii_repo_online.
io_repo->select_branch( |{ zif_abapgit_git_definitions=>c_git_branch-heads_prefix }{ iv_target }| ).
ii_repo_online->select_branch( |{ zif_abapgit_git_definitions=>c_git_branch-heads_prefix }{ iv_target }| ).
CREATE OBJECT mi_merge TYPE zcl_abapgit_merge
EXPORTING
io_repo = io_repo
ii_repo_online = ii_repo_online
iv_source_branch = iv_source.
mi_merge->run( ).
@ -79,9 +79,9 @@ CLASS zcl_abapgit_gui_page_merge IMPLEMENTATION.
CREATE OBJECT lo_component
EXPORTING
io_repo = io_repo
iv_source = iv_source
iv_target = iv_target.
ii_repo_online = ii_repo_online
iv_source = iv_source
iv_target = iv_target.
ri_page = zcl_abapgit_gui_page_hoc=>create(
iv_page_title = 'Merge'
@ -113,6 +113,8 @@ CLASS zcl_abapgit_gui_page_merge IMPLEMENTATION.
METHOD zif_abapgit_gui_event_handler~on_event.
DATA: li_repo TYPE REF TO zif_abapgit_repo.
CASE ii_event->mv_action.
WHEN c_actions-merge.
IF mi_merge->has_conflicts( ) = abap_true.
@ -123,17 +125,19 @@ CLASS zcl_abapgit_gui_page_merge IMPLEMENTATION.
zcx_abapgit_exception=>raise( 'nothing to merge' ).
ENDIF.
IF mo_repo->get_local_settings( )-code_inspector_check_variant IS NOT INITIAL.
li_repo = mi_repo_online.
IF li_repo->get_local_settings( )-code_inspector_check_variant IS NOT INITIAL.
rs_handled-page = zcl_abapgit_gui_page_code_insp=>create(
io_repo = mo_repo
ii_repo = mi_repo_online
io_stage = mi_merge->get_result( )-stage ).
ELSE.
rs_handled-page = zcl_abapgit_gui_page_commit=>create(
io_repo = mo_repo
io_stage = mi_merge->get_result( )-stage ).
ii_repo_online = mi_repo_online
io_stage = mi_merge->get_result( )-stage ).
ENDIF.
@ -142,9 +146,9 @@ CLASS zcl_abapgit_gui_page_merge IMPLEMENTATION.
WHEN c_actions-res_conflicts.
rs_handled-page = zcl_abapgit_gui_page_merge_res=>create(
io_repo = mo_repo
io_merge_page = me
io_merge = mi_merge ).
ii_repo_online = mi_repo_online
io_merge_page = me
io_merge = mi_merge ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
@ -185,7 +189,7 @@ CLASS zcl_abapgit_gui_page_merge IMPLEMENTATION.
ri_html->add( '<div id="toc">' ).
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top(
io_repo = mo_repo
ii_repo = mi_repo_online
iv_show_package = abap_false
iv_show_branch = abap_false ) ).

View File

@ -13,7 +13,7 @@ CLASS zcl_abapgit_gui_page_merge_res DEFINITION
CLASS-METHODS create
IMPORTING
io_repo TYPE REF TO zcl_abapgit_repo_online
ii_repo_online TYPE REF TO zif_abapgit_repo_online
io_merge_page TYPE REF TO zcl_abapgit_gui_page_merge
io_merge TYPE REF TO zif_abapgit_merge
RETURNING
@ -23,9 +23,9 @@ CLASS zcl_abapgit_gui_page_merge_res DEFINITION
METHODS constructor
IMPORTING
io_repo TYPE REF TO zcl_abapgit_repo_online
io_merge_page TYPE REF TO zcl_abapgit_gui_page_merge
io_merge TYPE REF TO zif_abapgit_merge
ii_repo_online TYPE REF TO zif_abapgit_repo_online
io_merge_page TYPE REF TO zcl_abapgit_gui_page_merge
io_merge TYPE REF TO zif_abapgit_merge
RAISING
zcx_abapgit_exception.
@ -59,7 +59,7 @@ CLASS zcl_abapgit_gui_page_merge_res DEFINITION
END OF c_merge_mode .
DATA mo_merge TYPE REF TO zif_abapgit_merge .
DATA mo_merge_page TYPE REF TO zcl_abapgit_gui_page_merge .
DATA mo_repo TYPE REF TO zcl_abapgit_repo_online .
DATA mi_repo_online TYPE REF TO zif_abapgit_repo_online .
DATA ms_diff_file TYPE ty_file_diff .
DATA mv_current_conflict_index TYPE sy-tabix .
DATA mv_merge_mode TYPE string .
@ -146,7 +146,7 @@ CLASS zcl_abapgit_gui_page_merge_res IMPLEMENTATION.
super->constructor( ).
mo_repo = io_repo.
mi_repo_online = ii_repo_online.
mo_merge_page = io_merge_page.
mo_merge = io_merge.
@ -163,9 +163,9 @@ CLASS zcl_abapgit_gui_page_merge_res IMPLEMENTATION.
CREATE OBJECT lo_component
EXPORTING
io_repo = io_repo
io_merge_page = io_merge_page
io_merge = io_merge.
ii_repo_online = ii_repo_online
io_merge_page = io_merge_page
io_merge = io_merge.
ri_page = zcl_abapgit_gui_page_hoc=>create(
iv_page_title = 'Resolve Merge Conflicts'
@ -415,7 +415,7 @@ CLASS zcl_abapgit_gui_page_merge_res IMPLEMENTATION.
IF mv_merge_mode = c_merge_mode-selection.
ri_html->add( '<form id="target_form" method="post" action="sapevent:apply_target">' ).
ri_html->add( '<th>Target - ' && mo_repo->get_selected_branch( ) && ' - ' ).
ri_html->add( '<th>Target - ' && mi_repo_online->get_selected_branch( ) && ' - ' ).
ri_html->add_a( iv_act = 'submitFormById(''target_form'');'
iv_txt = 'Apply'
iv_typ = zif_abapgit_html=>c_action_type-onclick
@ -432,7 +432,7 @@ CLASS zcl_abapgit_gui_page_merge_res IMPLEMENTATION.
ri_html->add( '</th> ' ).
ri_html->add( '</form>' ).
ELSE.
ri_html->add( '<th>Target - ' && mo_repo->get_selected_branch( ) && '</th> ' ).
ri_html->add( '<th>Target - ' && mi_repo_online->get_selected_branch( ) && '</th> ' ).
ri_html->add( '<th class="num"></th>' ).
ri_html->add( '<th>Source - ' && mo_merge->get_source_branch( ) && '</th> ' ).
ENDIF.
@ -557,6 +557,10 @@ CLASS zcl_abapgit_gui_page_merge_res IMPLEMENTATION.
METHOD zif_abapgit_gui_renderable~render.
DATA: li_repo TYPE REF TO zif_abapgit_repo.
li_repo = mi_repo_online.
register_handlers( ).
resolve_diff( ).
@ -566,7 +570,7 @@ CLASS zcl_abapgit_gui_page_merge_res IMPLEMENTATION.
ENDIF.
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
ri_html->add( |<div id="diff-list" data-repo-key="{ mo_repo->get_key( ) }">| ).
ri_html->add( |<div id="diff-list" data-repo-key="{ li_repo->get_key( ) }">| ).
ri_html->add( render_diff( ms_diff_file ) ).
ri_html->add( '</div>' ).

View File

@ -41,7 +41,7 @@ CLASS zcl_abapgit_gui_page_merge_sel DEFINITION
DATA mo_form TYPE REF TO zcl_abapgit_html_form.
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
DATA mo_form_util TYPE REF TO zcl_abapgit_html_form_utils.
DATA mo_repo TYPE REF TO zcl_abapgit_repo_online.
DATA mi_repo_online TYPE REF TO zif_abapgit_repo_online.
DATA mt_branches TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt.
METHODS read_branches
@ -64,7 +64,7 @@ CLASS zcl_abapgit_gui_page_merge_sel IMPLEMENTATION.
super->constructor( ).
CREATE OBJECT mo_form_data.
mo_repo ?= ii_repo.
mi_repo_online ?= ii_repo.
read_branches( ).
@ -105,7 +105,7 @@ CLASS zcl_abapgit_gui_page_merge_sel IMPLEMENTATION.
iv_name = c_id-source
iv_label = 'Source Branch'
iv_default_value = substring(
val = mo_repo->get_selected_branch( )
val = mi_repo_online->get_selected_branch( )
off = 11 )
iv_condense = abap_true ).
@ -141,7 +141,7 @@ CLASS zcl_abapgit_gui_page_merge_sel IMPLEMENTATION.
DATA lo_branches TYPE REF TO zcl_abapgit_git_branch_list.
lo_branches = zcl_abapgit_git_factory=>get_git_transport( )->branches( mo_repo->get_url( ) ).
lo_branches = zcl_abapgit_git_factory=>get_git_transport( )->branches( mi_repo_online->get_url( ) ).
mt_branches = lo_branches->get_branches_only( ).
DELETE mt_branches WHERE name = zif_abapgit_git_definitions=>c_head_name.
@ -161,9 +161,9 @@ CLASS zcl_abapgit_gui_page_merge_sel IMPLEMENTATION.
ENDIF.
rs_handled-page = zcl_abapgit_gui_page_merge=>create(
io_repo = mo_repo
iv_source = mo_form_data->get( c_id-source )
iv_target = mo_form_data->get( c_id-target ) ).
ii_repo_online = mi_repo_online
iv_source = mo_form_data->get( c_id-source )
iv_target = mo_form_data->get( c_id-target ) ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
@ -183,7 +183,7 @@ CLASS zcl_abapgit_gui_page_merge_sel IMPLEMENTATION.
ri_html->add( `<div class="repo">` ).
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top(
io_repo = mo_repo
ii_repo = mi_repo_online
iv_show_commit = abap_false
iv_interactive_branch = abap_false ) ).

View File

@ -67,7 +67,7 @@ CLASS zcl_abapgit_gui_page_patch DEFINITION
DATA mo_stage TYPE REF TO zcl_abapgit_stage .
DATA mv_section_count TYPE i .
DATA mv_pushed TYPE abap_bool .
DATA mo_repo_online TYPE REF TO zcl_abapgit_repo_online .
DATA mi_repo_online TYPE REF TO zif_abapgit_repo_online .
METHODS render_patch
IMPORTING
@ -347,11 +347,11 @@ CLASS zcl_abapgit_gui_page_patch IMPLEMENTATION.
is_object = is_object
it_files = it_files ).
IF mo_repo->is_offline( ) = abap_true.
IF mi_repo->is_offline( ) = abap_true.
zcx_abapgit_exception=>raise( |Patching is only possible for online repositories.| ).
ENDIF.
mo_repo_online ?= mo_repo.
mi_repo_online ?= mi_repo.
" While patching we always want to be in split mode
CLEAR: mv_unified.
@ -643,8 +643,8 @@ CLASS zcl_abapgit_gui_page_patch IMPLEMENTATION.
start_staging( ii_event ).
rs_handled-page = zcl_abapgit_gui_page_commit=>create(
io_repo = mo_repo_online
io_stage = mo_stage ).
ii_repo_online = mi_repo_online
io_stage = mo_stage ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.

View File

@ -23,7 +23,7 @@ CLASS zcl_abapgit_gui_page_pull DEFINITION
CLASS-METHODS create
IMPORTING
io_repo TYPE REF TO zcl_abapgit_repo
ii_repo TYPE REF TO zif_abapgit_repo
iv_trkorr TYPE trkorr OPTIONAL
ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL
RETURNING
@ -33,7 +33,7 @@ CLASS zcl_abapgit_gui_page_pull DEFINITION
METHODS constructor
IMPORTING
io_repo TYPE REF TO zcl_abapgit_repo
ii_repo TYPE REF TO zif_abapgit_repo
iv_trkorr TYPE trkorr
ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL
RAISING
@ -43,7 +43,7 @@ CLASS zcl_abapgit_gui_page_pull DEFINITION
PRIVATE SECTION.
DATA mo_repo TYPE REF TO zcl_abapgit_repo .
DATA mi_repo TYPE REF TO zif_abapgit_repo .
DATA mi_obj_filter TYPE REF TO zif_abapgit_object_filter .
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map .
DATA ms_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks .
@ -85,7 +85,7 @@ CLASS zcl_abapgit_gui_page_pull IMPLEMENTATION.
super->constructor( ).
mo_repo = io_repo.
mi_repo = ii_repo.
mi_obj_filter = ii_obj_filter.
CREATE OBJECT mo_form_data.
@ -102,7 +102,7 @@ CLASS zcl_abapgit_gui_page_pull IMPLEMENTATION.
CREATE OBJECT lo_component
EXPORTING
io_repo = io_repo
ii_repo = ii_repo
iv_trkorr = iv_trkorr
ii_obj_filter = ii_obj_filter.
@ -194,7 +194,7 @@ CLASS zcl_abapgit_gui_page_pull IMPLEMENTATION.
* todo, show log?
zcl_abapgit_services_repo=>real_deserialize(
is_checks = ms_checks
io_repo = mo_repo ).
ii_repo = mi_repo ).
ENDMETHOD.
@ -205,7 +205,7 @@ CLASS zcl_abapgit_gui_page_pull IMPLEMENTATION.
CASE ii_event->mv_action.
WHEN c_action-refresh.
mo_repo->refresh( ).
mi_repo->refresh( ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
WHEN c_action-choose_tr.
choose_transport_request( ).
@ -240,7 +240,7 @@ CLASS zcl_abapgit_gui_page_pull IMPLEMENTATION.
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
ri_html->add( '<div class="repo-overview">' ).
ms_checks = mo_repo->deserialize_checks( ).
ms_checks = mi_repo->deserialize_checks( ).
IF lines( ms_checks-overwrite ) = 0.
zcx_abapgit_exception=>raise(

View File

@ -41,7 +41,7 @@ CLASS zcl_abapgit_gui_page_repo_view DEFINITION
PROTECTED SECTION.
PRIVATE SECTION.
DATA mo_repo TYPE REF TO zcl_abapgit_repo .
DATA mi_repo TYPE REF TO zif_abapgit_repo .
DATA mo_repo_aggregated_state TYPE REF TO zcl_abapgit_repo_item_state.
DATA mv_connection_error TYPE abap_bool.
DATA mv_cur_dir TYPE string .
@ -283,7 +283,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
ro_advanced_dropdown->add( iv_txt = 'Activate Objects'
iv_act = |{ zif_abapgit_definitions=>c_action-repo_activate_objects }?key={ mv_key }| ).
IF mo_repo->is_offline( ) = abap_false. " Online ?
IF mi_repo->is_offline( ) = abap_false. " Online ?
ro_advanced_dropdown->add(
iv_txt = 'Transport to Branch'
iv_act = |{ zif_abapgit_definitions=>c_action-repo_transport_to_branch }?key={ mv_key }|
@ -295,7 +295,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
iv_txt = 'Add All Objects to Transport'
iv_act = |{ zif_abapgit_definitions=>c_action-repo_add_all_obj_to_trans_req }?key={ mv_key }| ).
ENDIF.
IF mo_repo->is_offline( ) = abap_true.
IF mi_repo->is_offline( ) = abap_true.
ro_advanced_dropdown->add( iv_txt = 'Export by Transport'
iv_act = |{ zif_abapgit_definitions=>c_action-zip_export_transport }?key={ mv_key }| ).
ELSE.
@ -362,7 +362,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
CREATE OBJECT ro_branch_dropdown.
IF mo_repo->is_offline( ) = abap_true.
IF mi_repo->is_offline( ) = abap_true.
RETURN.
ENDIF.
@ -428,7 +428,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
ro_toolbar = zcl_abapgit_html_toolbar=>create( 'actionbar-repo-view' ).
IF mo_repo->is_offline( ) = abap_false.
IF mi_repo->is_offline( ) = abap_false.
" online repo
IF mo_repo_aggregated_state->is_unchanged( ) = abap_false. " Any changes
@ -446,7 +446,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
iv_act = |{ zif_abapgit_definitions=>c_action-go_repo_diff }?key={ mv_key }|
iv_opt = zif_abapgit_html=>c_html_opt-strong ).
ENDIF.
li_log = mo_repo->get_log( ).
li_log = mi_repo->get_log( ).
IF li_log IS BOUND AND li_log->count( ) > 0.
ro_toolbar->add( iv_txt = 'Log'
iv_act = |{ zif_abapgit_definitions=>c_action-repo_log }?key={ mv_key }| ).
@ -459,7 +459,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
ELSE.
" offline repo
IF mo_repo->has_remote_source( ) = abap_true AND mo_repo_aggregated_state->is_unchanged( ) = abap_false.
IF mi_repo->has_remote_source( ) = abap_true AND mo_repo_aggregated_state->is_unchanged( ) = abap_false.
ro_toolbar->add( iv_txt = 'Pull <sup>zip</sup>'
iv_act = |{ zif_abapgit_definitions=>c_action-git_pull }?key={ mv_key }|
iv_opt = zif_abapgit_html=>c_html_opt-strong ).
@ -470,7 +470,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
ro_toolbar->add( iv_txt = 'Import <sup>zip</sup>'
iv_act = |{ zif_abapgit_definitions=>c_action-zip_import }?key={ mv_key }|
iv_opt = zif_abapgit_html=>c_html_opt-strong ).
IF mo_repo->get_local_settings( )-write_protected = abap_true.
IF mi_repo->get_local_settings( )-write_protected = abap_true.
ro_toolbar->add( iv_txt = 'Compare <sup>rfc</sup>'
iv_act = |{ zif_abapgit_definitions=>c_action-rfc_compare }?key={ mv_key }|
iv_opt = zif_abapgit_html=>c_html_opt-strong ).
@ -478,7 +478,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
ro_toolbar->add( iv_txt = 'Export <sup>zip</sup>'
iv_act = |{ zif_abapgit_definitions=>c_action-zip_export }?key={ mv_key }|
iv_opt = zif_abapgit_html=>c_html_opt-strong ).
li_log = mo_repo->get_log( ).
li_log = mi_repo->get_log( ).
IF li_log IS BOUND AND li_log->count( ) > 0.
ro_toolbar->add( iv_txt = 'Log'
iv_act = |{ zif_abapgit_definitions=>c_action-repo_log }?key={ mv_key }| ).
@ -506,7 +506,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
METHOD build_origlang_code.
IF is_item-origlang IS NOT INITIAL AND is_item-origlang <> mo_repo->get_dot_abapgit( )->get_main_language( ).
IF is_item-origlang IS NOT INITIAL AND is_item-origlang <> mi_repo->get_dot_abapgit( )->get_main_language( ).
rv_html_code = zcl_abapgit_html=>icon(
iv_name = 'language-solid/grey'
iv_hint = |Original language: { is_item-origlang }|
@ -532,7 +532,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
CREATE OBJECT ro_tag_dropdown.
IF mo_repo->is_offline( ) = abap_true.
IF mi_repo->is_offline( ) = abap_true.
RETURN.
ENDIF.
@ -576,11 +576,11 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
METHOD check_branch.
DATA lo_repo TYPE REF TO zif_abapgit_repo_online.
DATA li_repo_online TYPE REF TO zif_abapgit_repo_online.
IF mo_repo->is_offline( ) = abap_false.
lo_repo ?= mo_repo.
lo_repo->check_for_valid_branch( ).
IF mi_repo->is_offline( ) = abap_false.
li_repo_online ?= mi_repo.
li_repo_online->check_for_valid_branch( ).
ENDIF.
ENDMETHOD.
@ -588,13 +588,13 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
METHOD check_connection.
DATA lo_repo TYPE REF TO zif_abapgit_repo_online.
DATA li_repo_online TYPE REF TO zif_abapgit_repo_online.
mv_connection_error = abap_true.
IF mo_repo->is_offline( ) = abap_false.
lo_repo ?= mo_repo.
zcl_abapgit_http=>check_connection( lo_repo->get_url( ) ).
IF mi_repo->is_offline( ) = abap_false.
li_repo_online ?= mi_repo.
zcl_abapgit_http=>check_connection( li_repo_online->get_url( ) ).
ENDIF.
mv_connection_error = abap_false.
@ -614,7 +614,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
lo_persistence_user = zcl_abapgit_persistence_user=>get_instance( ).
mv_key = iv_key.
mo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
mi_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
mv_cur_dir = '/'. " Root
mv_hide_files = lo_persistence_user->get_hide_files( ).
@ -660,7 +660,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
IF iv_strong = abap_true.
rv_crossout = zif_abapgit_html=>c_html_opt-strong.
ENDIF.
IF iv_protected = abap_true AND mo_repo->get_local_settings( )-write_protected = abap_true.
IF iv_protected = abap_true AND mi_repo->get_local_settings( )-write_protected = abap_true.
rv_crossout = zif_abapgit_html=>c_html_opt-crossout.
ENDIF.
IF iv_authorization IS NOT INITIAL AND zcl_abapgit_auth=>is_allowed( iv_authorization ) = abap_false.
@ -696,7 +696,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
METHOD is_repo_lang_logon_lang.
rv_repo_lang_is_logon_lang = boolc( mo_repo->get_dot_abapgit( )->get_main_language( ) = sy-langu ).
rv_repo_lang_is_logon_lang = boolc( mi_repo->get_dot_abapgit( )->get_main_language( ) = sy-langu ).
ENDMETHOD.
@ -707,7 +707,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
ls_item TYPE zif_abapgit_definitions=>ty_item,
lv_tcode TYPE tcode.
lv_main_language = mo_repo->get_dot_abapgit( )->get_main_language( ).
lv_main_language = mi_repo->get_dot_abapgit( )->get_main_language( ).
lv_tcode = zcl_abapgit_services_abapgit=>get_abapgit_tcode( ).
ASSERT lv_tcode IS NOT INITIAL.
@ -724,7 +724,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
zcl_abapgit_objects_factory=>get_gui_jumper( )->jump_abapgit(
iv_language = lv_main_language
iv_key = mo_repo->get_key( ) ).
iv_key = mi_repo->get_key( ) ).
ENDMETHOD.
@ -763,7 +763,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
ri_html->add( '<div>' ).
IF is_file-is_changed = abap_true.
lv_difflink = zcl_abapgit_html_action_utils=>file_encode(
iv_key = mo_repo->get_key( )
iv_key = mi_repo->get_key( )
ig_file = is_file ).
ri_html->add_a( iv_txt = 'diff'
iv_act = |{ zif_abapgit_definitions=>c_action-go_file_diff }?{ lv_difflink }| ).
@ -797,7 +797,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
ri_html->add( '</td>' ).
ENDIF.
lt_labels = zcl_abapgit_repo_labels=>split( mo_repo->ms_data-local_settings-labels ).
lt_labels = zcl_abapgit_repo_labels=>split( mi_repo->ms_data-local_settings-labels ).
IF lines( lt_labels ) > 0.
ls_settings = zcl_abapgit_persist_factory=>get_settings( )->read( )->get_user_settings( ).
@ -858,7 +858,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
" Command
ri_html->add( '<td class="cmd">' ).
IF mo_repo->has_remote_source( ) = abap_true.
IF mi_repo->has_remote_source( ) = abap_true.
ri_html->add( render_item_command( is_item ) ).
ENDIF.
ri_html->add( '</td>' ).
@ -899,7 +899,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
IF mv_hide_files = abap_true AND is_item-obj_name IS NOT INITIAL.
lv_difflink = zcl_abapgit_html_action_utils=>obj_encode(
iv_key = mo_repo->get_key( )
iv_key = mi_repo->get_key( )
ig_object = is_item ).
ri_html->add( '<div>' ).
@ -945,7 +945,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
ENDIF.
lv_filename = li_exit->adjust_display_filename(
is_repo_meta = mo_repo->ms_data
is_repo_meta = mi_repo->ms_data
iv_filename = lv_filename ).
ri_html->add( |<div>{ lv_filename }</div>| ).
@ -963,7 +963,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
" Command
ri_html->add( '<td class="cmd">' ).
IF mo_repo->has_remote_source( ) = abap_true.
IF mi_repo->has_remote_source( ) = abap_true.
ri_html->add( render_file_command( ls_file ) ).
ENDIF.
ri_html->add( '</td>' ).
@ -998,7 +998,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
ri_html->add( '<tr class="folder">' ).
ri_html->add( |<td class="icon">{ ri_html->icon( 'folder' ) }</td>| ).
ri_html->add( |<td class="dir" colspan="4">{ build_dir_jump_link( '..' ) }</td>| ).
IF mo_repo->has_remote_source( ) = abap_true.
IF mi_repo->has_remote_source( ) = abap_true.
ri_html->add( |<td colspan="1"></td>| ). " Dummy for online
ENDIF.
ri_html->add( '</tr>' ).
@ -1098,7 +1098,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
WHEN c_actions-go_unit.
rs_handled-page = zcl_abapgit_gui_page_runit=>create( mo_repo ).
rs_handled-page = zcl_abapgit_gui_page_runit=>create( mi_repo ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
WHEN c_actions-toggle_hide_files. " Toggle file display
@ -1256,13 +1256,13 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
TRY.
" Reinit, for the case of type change
mo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( mo_repo->get_key( ) ).
mi_repo = zcl_abapgit_repo_srv=>get_instance( )->get( mi_repo->get_key( ) ).
IF mv_connection_error = abap_true.
" If connection doesn't work, render a minimal header
ri_html->add( |<div class="repo" id="repo{ mv_key }">| ).
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top(
io_repo = mo_repo
ii_repo = mi_repo
iv_show_edit = abap_true
iv_show_branch = abap_false
iv_show_commit = abap_false
@ -1280,14 +1280,14 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
check_branch( ).
mv_are_changes_recorded_in_tr = zcl_abapgit_factory=>get_sap_package( mo_repo->get_package( )
mv_are_changes_recorded_in_tr = zcl_abapgit_factory=>get_sap_package( mi_repo->get_package( )
)->are_changes_recorded_in_tr_req( ).
lo_news = zcl_abapgit_repo_news=>create( mo_repo ).
lo_news = zcl_abapgit_repo_news=>create( mi_repo ).
ri_html->add( |<div class="repo" id="repo{ mv_key }">| ).
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top(
io_repo = mo_repo
ii_repo = mi_repo
io_news = lo_news
iv_show_edit = abap_true
iv_interactive_branch = abap_true ) ).
@ -1295,12 +1295,12 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_news( io_news = lo_news ) ).
zcl_abapgit_exit=>get_instance( )->wall_message_repo(
is_repo_meta = mo_repo->ms_data
is_repo_meta = mi_repo->ms_data
ii_html = ri_html ).
CREATE OBJECT lo_browser
EXPORTING
io_repo = mo_repo.
ii_repo = mi_repo.
lt_repo_items = lo_browser->list( iv_path = mv_cur_dir
iv_by_folders = mv_show_folders
@ -1328,9 +1328,9 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
IF lines( lt_repo_items ) = 0.
IF mv_changes_only = abap_true.
IF mo_repo->is_offline( ) = abap_true.
IF mi_repo->is_offline( ) = abap_true.
" Offline match banner
IF mo_repo->has_remote_source( ) = abap_true.
IF mi_repo->has_remote_source( ) = abap_true.
lv_msg = 'Local state completely <b>matches</b> the ZIP file'.
ELSE.
lv_msg = 'Import a ZIP file to see if there are any changes'.

View File

@ -21,7 +21,7 @@ CLASS zcl_abapgit_gui_page_stage DEFINITION
CLASS-METHODS create
IMPORTING
io_repo TYPE REF TO zcl_abapgit_repo_online
ii_repo_online TYPE REF TO zif_abapgit_repo_online
iv_seed TYPE string OPTIONAL
iv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result DEFAULT zif_abapgit_definitions=>c_sci_result-no_run
ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL
@ -33,7 +33,7 @@ CLASS zcl_abapgit_gui_page_stage DEFINITION
METHODS constructor
IMPORTING
io_repo TYPE REF TO zcl_abapgit_repo_online
ii_repo_online TYPE REF TO zif_abapgit_repo_online
iv_seed TYPE string OPTIONAL
iv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result DEFAULT zif_abapgit_definitions=>c_sci_result-no_run
ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL
@ -54,7 +54,8 @@ CLASS zcl_abapgit_gui_page_stage DEFINITION
TYPES:
ty_changed_by_tt TYPE SORTED TABLE OF ty_changed_by WITH UNIQUE KEY item filename.
DATA mo_repo TYPE REF TO zcl_abapgit_repo_online .
DATA mi_repo TYPE REF TO zif_abapgit_repo.
DATA mi_repo_online TYPE REF TO zif_abapgit_repo_online.
DATA ms_files TYPE zif_abapgit_definitions=>ty_stage_files .
DATA mv_seed TYPE string . " Unique page id to bind JS sessionStorage
DATA mv_filter_value TYPE string .
@ -141,16 +142,17 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
super->constructor( ).
mi_repo = ii_repo_online.
mi_repo_online = ii_repo_online.
mv_seed = iv_seed.
mv_sci_result = iv_sci_result.
mi_obj_filter = ii_obj_filter.
" force refresh on stage, to make sure the latest local and remote files are used
IF ii_force_refresh = abap_true.
io_repo->refresh( ).
ii_repo_online->zif_abapgit_repo~refresh( ).
ENDIF.
mo_repo = io_repo.
mv_seed = iv_seed.
mv_sci_result = iv_sci_result.
mi_obj_filter = ii_obj_filter.
IF mv_seed IS INITIAL. " Generate based on time unless obtained from diff page
GET TIME STAMP FIELD lv_ts.
mv_seed = |stage{ lv_ts }|.
@ -190,7 +192,7 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
CREATE OBJECT lo_component
EXPORTING
io_repo = io_repo
ii_repo_online = ii_repo_online
iv_seed = iv_seed
iv_sci_result = iv_sci_result
ii_force_refresh = ii_force_refresh
@ -231,7 +233,7 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
EXPORTING
iv_filename = ls_remote-filename
iv_path = ls_remote-path
io_dot = mo_repo->get_dot_abapgit( )
io_dot = mi_repo->get_dot_abapgit( )
IMPORTING
es_item = ls_item ).
ls_changed_by-item = ls_item.
@ -283,7 +285,7 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
APPEND <ls_local>-item TO lt_items.
ENDLOOP.
lo_dot = mo_repo->get_dot_abapgit( ).
lo_dot = mi_repo->get_dot_abapgit( ).
LOOP AT it_files-remote ASSIGNING <ls_remote> WHERE filename IS NOT INITIAL.
zcl_abapgit_filename_logic=>file_to_object(
EXPORTING
@ -314,7 +316,7 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
DATA: lv_key TYPE zif_abapgit_persistence=>ty_repo-key,
lt_files TYPE zif_abapgit_definitions=>ty_stage_tt.
lv_key = mo_repo->get_key( ).
lv_key = mi_repo->get_key( ).
lt_files = io_stage->get_all( ).
DELETE lt_files WHERE method <> zif_abapgit_definitions=>c_method-add
@ -328,11 +330,11 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
METHOD init_files.
ms_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( io_repo = mo_repo
ii_obj_filter = mi_obj_filter ).
ms_files = zcl_abapgit_stage_logic=>get_stage_logic( )->get( ii_repo_online = mi_repo_online
ii_obj_filter = mi_obj_filter ).
IF lines( ms_files-local ) = 0 AND lines( ms_files-remote ) = 0.
mo_repo->refresh( ).
mi_repo->refresh( ).
zcx_abapgit_exception=>raise( 'There are no changes that could be staged' ).
ENDIF.
ENDMETHOD.
@ -421,7 +423,7 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
CASE iv_context.
WHEN 'local'.
lv_param = zcl_abapgit_html_action_utils=>file_encode(
iv_key = mo_repo->get_key( )
iv_key = mi_repo->get_key( )
ig_file = is_file ).
lv_filename = ri_html->a(
@ -549,7 +551,7 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
EXPORTING
iv_filename = <ls_remote>-filename
iv_path = <ls_remote>-path
io_dot = mo_repo->get_dot_abapgit( )
io_dot = mi_repo->get_dot_abapgit( )
IMPORTING
es_item = ls_item_remote ).
READ TABLE lt_transports INTO ls_transport WITH KEY
@ -590,7 +592,7 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
lv_main_language = mo_repo->get_dot_abapgit( )->get_main_language( ).
lv_main_language = mi_repo->get_dot_abapgit( )->get_main_language( ).
IF lv_main_language <> sy-langu.
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_warning_banner(
@ -692,9 +694,9 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
lo_stage = stage_all( ).
rs_handled-page = zcl_abapgit_gui_page_commit=>create(
io_repo = mo_repo
io_stage = lo_stage
iv_sci_result = mv_sci_result ).
ii_repo_online = mi_repo_online
io_stage = lo_stage
iv_sci_result = mv_sci_result ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
@ -703,9 +705,9 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
lo_stage = stage_selected( ii_event ).
rs_handled-page = zcl_abapgit_gui_page_commit=>create(
io_repo = mo_repo
io_stage = lo_stage
iv_sci_result = mv_sci_result ).
ii_repo_online = mi_repo_online
io_stage = lo_stage
iv_sci_result = mv_sci_result ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
@ -721,12 +723,12 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
WHEN c_action-stage_refresh.
mo_repo->refresh( abap_true ).
mi_repo->refresh( abap_true ).
init_files( ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
WHEN zif_abapgit_definitions=>c_action-git_branch_switch.
zcl_abapgit_services_git=>switch_branch( |{ ii_event->query( )->get( 'KEY' ) }| ).
mo_repo->refresh( abap_true ).
mi_repo->refresh( abap_true ).
init_files( ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
ENDCASE.
@ -774,7 +776,7 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
iv_opt = zif_abapgit_html=>c_html_opt-strong
)->add(
iv_txt = |Diff|
iv_act = |{ zif_abapgit_definitions=>c_action-go_repo_diff }?key={ mo_repo->get_key( ) }|
iv_act = |{ zif_abapgit_definitions=>c_action-go_repo_diff }?key={ mi_repo->get_key( ) }|
)->add(
iv_txt = |Patch|
iv_typ = zif_abapgit_html=>c_action_type-onclick
@ -795,7 +797,7 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
ri_html->add( '<div class="repo">' ).
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top(
io_repo = mo_repo
ii_repo = mi_repo
iv_interactive_branch = abap_true ) ).
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_js_error_banner( ) ).
ri_html->add( render_main_language_warning( ) ).

View File

@ -52,7 +52,7 @@ CLASS zcl_abapgit_gui_page_tags DEFINITION
DATA mo_form TYPE REF TO zcl_abapgit_html_form.
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map.
DATA mo_repo TYPE REF TO zcl_abapgit_repo_online.
DATA mi_repo_online TYPE REF TO zif_abapgit_repo_online.
DATA mo_settings TYPE REF TO zcl_abapgit_settings.
DATA ms_tag TYPE zif_abapgit_git_definitions=>ty_git_tag.
@ -108,8 +108,8 @@ CLASS zcl_abapgit_gui_page_tags IMPLEMENTATION.
li_popups = zcl_abapgit_ui_factory=>get_popups( ).
rv_commit = li_popups->commit_list_popup(
iv_repo_url = mo_repo->get_url( )
iv_branch_name = mo_repo->get_selected_branch( ) )-sha1.
iv_repo_url = mi_repo_online->get_url( )
iv_branch_name = mi_repo_online->get_selected_branch( ) )-sha1.
ENDMETHOD.
@ -119,7 +119,7 @@ CLASS zcl_abapgit_gui_page_tags IMPLEMENTATION.
super->constructor( ).
CREATE OBJECT mo_form_data.
CREATE OBJECT mo_validation_log.
mo_repo ?= ii_repo.
mi_repo_online ?= ii_repo.
" Get settings from DB
mo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
@ -231,7 +231,7 @@ CLASS zcl_abapgit_gui_page_tags IMPLEMENTATION.
li_user = zcl_abapgit_persistence_user=>get_instance( ).
rv_email = li_user->get_repo_git_user_email( mo_repo->get_url( ) ).
rv_email = li_user->get_repo_git_user_email( mi_repo_online->get_url( ) ).
IF rv_email IS INITIAL.
rv_email = li_user->get_default_git_user_email( ).
ENDIF.
@ -249,7 +249,7 @@ CLASS zcl_abapgit_gui_page_tags IMPLEMENTATION.
li_user = zcl_abapgit_persistence_user=>get_instance( ).
rv_user = li_user->get_repo_git_user_name( mo_repo->get_url( ) ).
rv_user = li_user->get_repo_git_user_name( mi_repo_online->get_url( ) ).
IF rv_user IS INITIAL.
rv_user = li_user->get_default_git_user_name( ).
ENDIF.
@ -300,7 +300,7 @@ CLASS zcl_abapgit_gui_page_tags IMPLEMENTATION.
IF lv_new_tag_name IS NOT INITIAL.
" Check if tag already exists
lt_tags = zcl_abapgit_git_factory=>get_git_transport( )->branches( mo_repo->get_url( ) )->get_tags_only( ).
lt_tags = zcl_abapgit_git_factory=>get_git_transport( )->branches( mi_repo_online->get_url( ) )->get_tags_only( ).
READ TABLE lt_tags TRANSPORTING NO FIELDS WITH TABLE KEY name_key
COMPONENTS name = zcl_abapgit_git_tag=>add_tag_prefix( lv_new_tag_name ).
@ -360,7 +360,7 @@ CLASS zcl_abapgit_gui_page_tags IMPLEMENTATION.
TRY.
zcl_abapgit_git_porcelain=>create_tag(
iv_url = mo_repo->get_url( )
iv_url = mi_repo_online->get_url( )
is_tag = ms_tag ).
CATCH zcx_abapgit_exception INTO lx_error.
zcx_abapgit_exception=>raise( |Cannot create tag { ms_tag-name }: { lx_error->get_text( ) }| ).
@ -393,7 +393,7 @@ CLASS zcl_abapgit_gui_page_tags IMPLEMENTATION.
ri_html->add( `<div class="repo">` ).
ri_html->add( zcl_abapgit_gui_chunk_lib=>render_repo_top(
io_repo = mo_repo
ii_repo = mi_repo_online
iv_show_commit = abap_false
iv_interactive_branch = abap_false ) ).

View File

@ -368,34 +368,37 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
METHOD get_page_stage.
DATA: lo_repo TYPE REF TO zcl_abapgit_repo_online,
lv_key TYPE zif_abapgit_persistence=>ty_repo-key,
lv_seed TYPE string,
lv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result,
lx_error TYPE REF TO cx_sy_move_cast_error.
DATA: li_repo_online TYPE REF TO zif_abapgit_repo_online,
li_repo TYPE REF TO zif_abapgit_repo,
lv_key TYPE zif_abapgit_persistence=>ty_repo-key,
lv_seed TYPE string,
lv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result,
lx_error TYPE REF TO cx_sy_move_cast_error.
lv_key = ii_event->query( )->get( 'KEY' ).
lv_seed = ii_event->query( )->get( 'SEED' ).
lv_sci_result = zif_abapgit_definitions=>c_sci_result-no_run.
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
TRY.
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
li_repo_online ?= li_repo.
CATCH cx_sy_move_cast_error INTO lx_error.
zcx_abapgit_exception=>raise( `Staging is only possible for online repositories.` ).
ENDTRY.
IF lo_repo->get_selected_branch( ) CP zif_abapgit_git_definitions=>c_git_branch-tags.
IF li_repo_online->get_selected_branch( ) CP zif_abapgit_git_definitions=>c_git_branch-tags.
zcx_abapgit_exception=>raise( |You are working on a tag, must be on branch| ).
ELSEIF lo_repo->get_selected_commit( ) IS NOT INITIAL.
ELSEIF li_repo_online->get_selected_commit( ) IS NOT INITIAL.
zcx_abapgit_exception=>raise( |You are working on a commit, must be on branch| ).
ENDIF.
IF lo_repo->get_local_settings( )-code_inspector_check_variant IS NOT INITIAL.
IF li_repo->get_local_settings( )-code_inspector_check_variant IS NOT INITIAL.
TRY.
ri_page = zcl_abapgit_gui_page_code_insp=>create(
io_repo = lo_repo
ii_repo = li_repo
iv_raise_when_no_results = abap_true ).
CATCH zcx_abapgit_exception.
@ -406,10 +409,10 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
IF ri_page IS INITIAL.
ri_page = zcl_abapgit_gui_page_stage=>create(
io_repo = lo_repo
iv_seed = lv_seed
iv_sci_result = lv_sci_result
ii_obj_filter = ii_obj_filter ).
ii_repo_online = li_repo_online
iv_seed = lv_seed
iv_sci_result = lv_sci_result
ii_obj_filter = ii_obj_filter ).
ENDIF.
ENDMETHOD.
@ -484,14 +487,14 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
METHOD go_stage_transport.
DATA lt_r_trkorr TYPE zif_abapgit_definitions=>ty_trrngtrkor_tt.
DATA lo_repo TYPE REF TO zcl_abapgit_repo.
DATA li_repo TYPE REF TO zif_abapgit_repo.
lt_r_trkorr = zcl_abapgit_ui_factory=>get_popups( )->popup_select_wb_tc_tr_and_tsk( ).
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
CREATE OBJECT ro_filter.
ro_filter->set_filter_values( iv_package = lo_repo->get_package( )
ro_filter->set_filter_values( iv_package = li_repo->get_package( )
it_r_trkorr = lt_r_trkorr ).
ENDMETHOD.
@ -500,7 +503,7 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
METHOD jump_display_transport.
DATA:
ls_e071 TYPE e071,
ls_e071 TYPE e071,
lv_adt_link TYPE string,
lv_adt_jump_enabled TYPE abap_bool.
@ -650,12 +653,12 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
DATA:
lv_key TYPE zif_abapgit_persistence=>ty_repo-key,
lo_repo TYPE REF TO zcl_abapgit_repo,
li_repo TYPE REF TO zif_abapgit_repo,
li_log TYPE REF TO zif_abapgit_log.
lv_key = ii_event->query( )->get( 'KEY' ).
IF lv_key IS NOT INITIAL.
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
ENDIF.
CASE ii_event->mv_action.
@ -669,10 +672,10 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
zcl_abapgit_services_repo=>refresh( lv_key ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
WHEN zif_abapgit_definitions=>c_action-repo_syntax_check. " Syntax check
rs_handled-page = zcl_abapgit_gui_page_syntax=>create( lo_repo ).
rs_handled-page = zcl_abapgit_gui_page_syntax=>create( li_repo ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
WHEN zif_abapgit_definitions=>c_action-repo_code_inspector. " Code inspector
rs_handled-page = zcl_abapgit_gui_page_code_insp=>create( lo_repo ).
rs_handled-page = zcl_abapgit_gui_page_code_insp=>create( li_repo ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
WHEN zif_abapgit_definitions=>c_action-repo_purge. " Purge all objects and repo (uninstall)
zcl_abapgit_services_repo=>purge( lv_key ).
@ -706,25 +709,25 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
zcl_abapgit_services_repo=>transport_to_branch( lv_key ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
WHEN zif_abapgit_definitions=>c_action-repo_settings. " Repo settings
rs_handled-page = zcl_abapgit_gui_page_sett_repo=>create( lo_repo ).
rs_handled-page = zcl_abapgit_gui_page_sett_repo=>create( li_repo ).
rs_handled-state = get_state_settings( ii_event ).
WHEN zif_abapgit_definitions=>c_action-repo_local_settings. " Local repo settings
rs_handled-page = zcl_abapgit_gui_page_sett_locl=>create( lo_repo ).
rs_handled-page = zcl_abapgit_gui_page_sett_locl=>create( li_repo ).
rs_handled-state = get_state_settings( ii_event ).
WHEN zif_abapgit_definitions=>c_action-repo_remote_settings. " Remote repo settings
rs_handled-page = zcl_abapgit_gui_page_sett_remo=>create( lo_repo ).
rs_handled-page = zcl_abapgit_gui_page_sett_remo=>create( li_repo ).
rs_handled-state = get_state_settings( ii_event ).
WHEN zif_abapgit_definitions=>c_action-repo_background. " Repo background mode
rs_handled-page = zcl_abapgit_gui_page_sett_bckg=>create( lo_repo ).
rs_handled-page = zcl_abapgit_gui_page_sett_bckg=>create( li_repo ).
rs_handled-state = get_state_settings( ii_event ).
WHEN zif_abapgit_definitions=>c_action-repo_infos. " Repo infos
rs_handled-page = zcl_abapgit_gui_page_sett_info=>create( lo_repo ).
rs_handled-page = zcl_abapgit_gui_page_sett_info=>create( li_repo ).
rs_handled-state = get_state_settings( ii_event ).
WHEN zif_abapgit_definitions=>c_action-repo_change_package. " Repo change package
rs_handled-page = zcl_abapgit_gui_page_chg_pckg=>create( lo_repo ).
rs_handled-page = zcl_abapgit_gui_page_chg_pckg=>create( li_repo ).
rs_handled-state = get_state_settings( ii_event ).
WHEN zif_abapgit_definitions=>c_action-repo_log. " Repo log
li_log = lo_repo->get_log( ).
li_log = li_repo->get_log( ).
zcl_abapgit_log_viewer=>show_log( li_log ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-no_more_act.
ENDCASE.
@ -809,19 +812,19 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
DATA lo_obj_filter_trans TYPE REF TO zcl_abapgit_object_filter_tran.
DATA lt_r_trkorr TYPE zif_abapgit_definitions=>ty_trrngtrkor_tt.
DATA lo_repo TYPE REF TO zcl_abapgit_repo.
DATA li_repo TYPE REF TO zif_abapgit_repo.
DATA lv_xstr TYPE xstring.
lt_r_trkorr = zcl_abapgit_ui_factory=>get_popups( )->popup_select_wb_tc_tr_and_tsk( ).
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
lo_repo->refresh( ).
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
li_repo->refresh( ).
CREATE OBJECT lo_obj_filter_trans.
lo_obj_filter_trans->set_filter_values( iv_package = lo_repo->get_package( )
lo_obj_filter_trans->set_filter_values( iv_package = li_repo->get_package( )
it_r_trkorr = lt_r_trkorr ).
lv_xstr = zcl_abapgit_zip=>encode_files( lo_repo->get_files_local_filtered( lo_obj_filter_trans ) ).
lo_repo->refresh( ).
file_download( iv_package = lo_repo->get_package( )
lv_xstr = zcl_abapgit_zip=>encode_files( li_repo->get_files_local_filtered( lo_obj_filter_trans ) ).
li_repo->refresh( ).
file_download( iv_package = li_repo->get_package( )
iv_xstr = lv_xstr ).
ENDMETHOD.
@ -830,7 +833,7 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
METHOD zip_services.
DATA: lv_key TYPE zif_abapgit_persistence=>ty_repo-key,
lo_repo TYPE REF TO zcl_abapgit_repo,
li_repo TYPE REF TO zif_abapgit_repo,
lv_path TYPE string,
lv_dest TYPE rfcdest,
lv_xstr TYPE xstring,
@ -851,7 +854,7 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
WHEN zif_abapgit_definitions=>c_action-zip_import " Import repo from ZIP
OR zif_abapgit_definitions=>c_action-rfc_compare. " Compare repo via RFC
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
IF ii_event->mv_action = zif_abapgit_definitions=>c_action-zip_import.
lv_path = zcl_abapgit_ui_factory=>get_frontend_services( )->show_file_open_dialog(
@ -867,9 +870,9 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
RETURN.
ENDIF.
lv_package = lo_repo->get_package( ).
lv_folder_logic = lo_repo->get_dot_abapgit( )->get_folder_logic( ).
lv_main_lang_only = lo_repo->get_local_settings( )-main_language_only.
lv_package = li_repo->get_package( ).
lv_folder_logic = li_repo->get_dot_abapgit( )->get_folder_logic( ).
lv_main_lang_only = li_repo->get_local_settings( )-main_language_only.
CALL FUNCTION 'Z_ABAPGIT_SERIALIZE_PACKAGE'
DESTINATION lv_dest
@ -888,22 +891,22 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
ENDIF.
ENDIF.
lo_repo->set_files_remote( zcl_abapgit_zip=>load( lv_xstr ) ).
li_repo->set_files_remote( zcl_abapgit_zip=>load( lv_xstr ) ).
zcl_abapgit_services_repo=>refresh( lv_key ).
CASE ii_event->mv_current_page_name.
WHEN lc_page-repo_view.
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
WHEN lc_page-main_view.
rs_handled-page = zcl_abapgit_gui_page_repo_view=>create( lo_repo->get_key( ) ).
rs_handled-page = zcl_abapgit_gui_page_repo_view=>create( li_repo->get_key( ) ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
WHEN OTHERS.
rs_handled-state = zcl_abapgit_gui=>c_event_state-no_more_act.
ENDCASE.
WHEN zif_abapgit_definitions=>c_action-zip_export. " Export repo as ZIP
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
lv_xstr = zcl_abapgit_zip=>encode_files( lo_repo->get_files_local( ) ).
file_download( iv_package = lo_repo->get_package( )
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
lv_xstr = zcl_abapgit_zip=>encode_files( li_repo->get_files_local( ) ).
file_download( iv_package = li_repo->get_package( )
iv_xstr = lv_xstr ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-no_more_act.
WHEN zif_abapgit_definitions=>c_action-zip_export_transport. " Export repo as ZIP
@ -919,8 +922,8 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
rs_handled-page = zcl_abapgit_gui_page_ex_object=>create( ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
WHEN zif_abapgit_definitions=>c_action-where_used.
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
rs_handled-page = zcl_abapgit_gui_page_whereused=>create( ii_repo = lo_repo ).
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
rs_handled-page = zcl_abapgit_gui_page_whereused=>create( ii_repo = li_repo ).
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
ENDCASE.

View File

@ -36,9 +36,9 @@ CLASS zcl_abapgit_services_git DEFINITION
zcx_abapgit_exception.
CLASS-METHODS commit
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo_online
!is_commit TYPE zif_abapgit_services_git=>ty_commit_fields
!io_stage TYPE REF TO zcl_abapgit_stage
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
!is_commit TYPE zif_abapgit_services_git=>ty_commit_fields
!io_stage TYPE REF TO zcl_abapgit_stage
RAISING
zcx_abapgit_exception.
@ -58,9 +58,9 @@ CLASS zcl_abapgit_services_git IMPLEMENTATION.
li_user TYPE REF TO zif_abapgit_persist_user.
li_user = zcl_abapgit_persistence_user=>get_instance( ).
li_user->set_repo_git_user_name( iv_url = io_repo->get_url( )
li_user->set_repo_git_user_name( iv_url = ii_repo_online->get_url( )
iv_username = is_commit-committer_name ).
li_user->set_repo_git_user_email( iv_url = io_repo->get_url( )
li_user->set_repo_git_user_email( iv_url = ii_repo_online->get_url( )
iv_email = is_commit-committer_email ).
IF is_commit-committer_name IS INITIAL.
@ -85,12 +85,12 @@ CLASS zcl_abapgit_services_git IMPLEMENTATION.
ENDIF.
zcl_abapgit_exit=>get_instance( )->validate_before_push(
is_comment = ls_comment
io_stage = io_stage
io_repo = io_repo ).
is_comment = ls_comment
io_stage = io_stage
ii_repo_online = ii_repo_online ).
io_repo->push( is_comment = ls_comment
io_stage = io_stage ).
ii_repo_online->push( is_comment = ls_comment
io_stage = io_stage ).
COMMIT WORK.
@ -101,14 +101,14 @@ CLASS zcl_abapgit_services_git IMPLEMENTATION.
DATA: lv_name TYPE string,
lv_cancel TYPE abap_bool,
lo_repo TYPE REF TO zcl_abapgit_repo_online,
li_repo_online TYPE REF TO zif_abapgit_repo_online,
lv_msg TYPE string,
li_popups TYPE REF TO zif_abapgit_popups,
lv_source_branch_name TYPE string.
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
lv_source_branch_name = lo_repo->get_selected_branch( ).
li_repo_online ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
lv_source_branch_name = li_repo_online->get_selected_branch( ).
li_popups = zcl_abapgit_ui_factory=>get_popups( ).
li_popups->create_branch_popup(
@ -122,7 +122,7 @@ CLASS zcl_abapgit_services_git IMPLEMENTATION.
RAISE EXCEPTION TYPE zcx_abapgit_cancel.
ENDIF.
lo_repo->create_branch( lv_name ).
li_repo_online->create_branch( lv_name ).
lv_msg = |Branch switched from { zcl_abapgit_git_branch_list=>get_display_name( lv_source_branch_name )
} to new branch { zcl_abapgit_git_branch_list=>get_display_name( lv_name ) }|.
@ -133,24 +133,24 @@ CLASS zcl_abapgit_services_git IMPLEMENTATION.
METHOD delete_branch.
DATA: lo_repo TYPE REF TO zcl_abapgit_repo_online,
ls_branch TYPE zif_abapgit_git_definitions=>ty_git_branch,
lv_msg TYPE string,
li_popups TYPE REF TO zif_abapgit_popups.
DATA: li_repo_online TYPE REF TO zif_abapgit_repo_online,
ls_branch TYPE zif_abapgit_git_definitions=>ty_git_branch,
lv_msg TYPE string,
li_popups TYPE REF TO zif_abapgit_popups.
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
li_repo_online ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
li_popups = zcl_abapgit_ui_factory=>get_popups( ).
ls_branch = li_popups->branch_list_popup( iv_url = lo_repo->get_url( )
iv_hide_branch = lo_repo->get_selected_branch( )
ls_branch = li_popups->branch_list_popup( iv_url = li_repo_online->get_url( )
iv_hide_branch = li_repo_online->get_selected_branch( )
iv_hide_head = abap_true ).
IF ls_branch IS INITIAL.
RAISE EXCEPTION TYPE zcx_abapgit_cancel.
ENDIF.
zcl_abapgit_git_porcelain=>delete_branch(
iv_url = lo_repo->get_url( )
iv_url = li_repo_online->get_url( )
is_branch = ls_branch ).
lv_msg = |Branch { ls_branch-display_name } deleted|.
@ -161,19 +161,19 @@ CLASS zcl_abapgit_services_git IMPLEMENTATION.
METHOD delete_tag.
DATA: lo_repo TYPE REF TO zcl_abapgit_repo_online,
ls_tag TYPE zif_abapgit_git_definitions=>ty_git_tag,
lv_text TYPE string.
DATA: li_repo_online TYPE REF TO zif_abapgit_repo_online,
ls_tag TYPE zif_abapgit_git_definitions=>ty_git_tag,
lv_text TYPE string.
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
li_repo_online ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
ls_tag = zcl_abapgit_ui_factory=>get_popups( )->tag_list_popup( lo_repo->get_url( ) ).
ls_tag = zcl_abapgit_ui_factory=>get_popups( )->tag_list_popup( li_repo_online->get_url( ) ).
IF ls_tag IS INITIAL.
RAISE EXCEPTION TYPE zcx_abapgit_cancel.
ENDIF.
zcl_abapgit_git_porcelain=>delete_tag(
iv_url = lo_repo->get_url( )
iv_url = li_repo_online->get_url( )
is_tag = ls_tag ).
lv_text = |Tag { ls_tag-display_name } deleted|.
@ -185,28 +185,28 @@ CLASS zcl_abapgit_services_git IMPLEMENTATION.
METHOD pull.
DATA: lo_repo TYPE REF TO zcl_abapgit_repo.
DATA: li_repo TYPE REF TO zif_abapgit_repo.
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
lo_repo->refresh( ).
li_repo->refresh( ).
zcl_abapgit_services_repo=>gui_deserialize( lo_repo ).
zcl_abapgit_services_repo=>gui_deserialize( li_repo ).
ENDMETHOD.
METHOD switch_branch.
DATA: lo_repo TYPE REF TO zcl_abapgit_repo_online,
ls_branch TYPE zif_abapgit_git_definitions=>ty_git_branch.
DATA: li_repo_online TYPE REF TO zif_abapgit_repo_online,
ls_branch TYPE zif_abapgit_git_definitions=>ty_git_branch.
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
li_repo_online ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
ls_branch = zcl_abapgit_ui_factory=>get_popups( )->branch_list_popup(
iv_url = lo_repo->get_url( )
iv_default_branch = lo_repo->get_selected_branch( )
iv_url = li_repo_online->get_url( )
iv_default_branch = li_repo_online->get_selected_branch( )
iv_show_new_option = abap_true ).
IF ls_branch IS INITIAL.
RAISE EXCEPTION TYPE zcx_abapgit_cancel.
@ -217,11 +217,11 @@ CLASS zcl_abapgit_services_git IMPLEMENTATION.
RETURN.
ENDIF.
IF lo_repo->get_selected_commit( ) IS NOT INITIAL.
lo_repo->select_commit( space ).
IF li_repo_online->get_selected_commit( ) IS NOT INITIAL.
li_repo_online->select_commit( space ).
ENDIF.
lo_repo->select_branch( ls_branch-name ).
li_repo_online->select_branch( ls_branch-name ).
COMMIT WORK AND WAIT.
ENDMETHOD.
@ -229,18 +229,18 @@ CLASS zcl_abapgit_services_git IMPLEMENTATION.
METHOD switch_tag.
DATA: lo_repo TYPE REF TO zcl_abapgit_repo_online,
ls_tag TYPE zif_abapgit_git_definitions=>ty_git_tag,
lv_text TYPE string.
DATA: li_repo_online TYPE REF TO zif_abapgit_repo_online,
ls_tag TYPE zif_abapgit_git_definitions=>ty_git_tag,
lv_text TYPE string.
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
li_repo_online ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
ls_tag = zcl_abapgit_ui_factory=>get_popups( )->tag_list_popup( lo_repo->get_url( ) ).
ls_tag = zcl_abapgit_ui_factory=>get_popups( )->tag_list_popup( li_repo_online->get_url( ) ).
IF ls_tag IS INITIAL.
RAISE EXCEPTION TYPE zcx_abapgit_cancel.
ENDIF.
lo_repo->select_branch( zcl_abapgit_git_tag=>remove_peel( ls_tag-name ) ).
li_repo_online->select_branch( zcl_abapgit_git_tag=>remove_peel( ls_tag-name ) ).
COMMIT WORK AND WAIT.

View File

@ -7,9 +7,9 @@ CLASS zcl_abapgit_services_repo DEFINITION
CLASS-METHODS new_online
IMPORTING
!is_repo_params TYPE zif_abapgit_services_repo=>ty_repo_params
!is_repo_params TYPE zif_abapgit_services_repo=>ty_repo_params
RETURNING
VALUE(ro_repo) TYPE REF TO zcl_abapgit_repo_online
VALUE(ri_repo_online) TYPE REF TO zif_abapgit_repo_online
RAISING
zcx_abapgit_exception .
CLASS-METHODS refresh
@ -34,7 +34,7 @@ CLASS zcl_abapgit_services_repo DEFINITION
IMPORTING
!is_repo_params TYPE zif_abapgit_services_repo=>ty_repo_params
RETURNING
VALUE(ro_repo) TYPE REF TO zcl_abapgit_repo_offline
VALUE(ri_repo) TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
CLASS-METHODS refresh_local_checksums
@ -54,12 +54,12 @@ CLASS zcl_abapgit_services_repo DEFINITION
zcx_abapgit_exception .
CLASS-METHODS gui_deserialize
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
CLASS-METHODS real_deserialize
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
!is_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks
RAISING
zcx_abapgit_exception .
@ -79,7 +79,7 @@ CLASS zcl_abapgit_services_repo DEFINITION
zcx_abapgit_exception .
CLASS-METHODS delete_unnecessary_objects
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
!ii_log TYPE REF TO zif_abapgit_log
!is_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks
RAISING
@ -95,7 +95,7 @@ CLASS zcl_abapgit_services_repo DEFINITION
zcx_abapgit_exception .
CLASS-METHODS popup_decisions
IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo
!ii_repo TYPE REF TO zif_abapgit_repo
CHANGING
!cs_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks
RAISING
@ -123,18 +123,18 @@ CLASS zcl_abapgit_services_repo DEFINITION
zcx_abapgit_exception .
CLASS-METHODS check_for_restart
IMPORTING
!io_repo TYPE REF TO zif_abapgit_repo .
!ii_repo TYPE REF TO zif_abapgit_repo .
ENDCLASS.
CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
CLASS zcl_abapgit_services_repo IMPLEMENTATION.
METHOD activate_objects.
DATA:
lo_repo TYPE REF TO zcl_abapgit_repo,
li_repo TYPE REF TO zif_abapgit_repo,
lo_browser TYPE REF TO zcl_abapgit_repo_content_list,
lt_repo_items TYPE zif_abapgit_definitions=>ty_repo_item_tt,
lv_count TYPE i,
@ -142,15 +142,15 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
FIELD-SYMBOLS <ls_item> LIKE LINE OF lt_repo_items.
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
CREATE OBJECT lo_browser
EXPORTING
io_repo = lo_repo.
ii_repo = li_repo.
lt_repo_items = lo_browser->list( '/' ).
ri_log = lo_repo->create_new_log( 'Activation Log' ).
ri_log = li_repo->create_new_log( 'Activation Log' ).
" Add all inactive objects to activation queue
zcl_abapgit_objects_activation=>clear( ).
@ -181,7 +181,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
MESSAGE lv_message TYPE 'S'.
ENDIF.
lo_repo->refresh( iv_drop_log = abap_false ).
li_repo->refresh( iv_drop_log = abap_false ).
ENDMETHOD.
@ -191,18 +191,18 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
CONSTANTS:
lc_abapgit_prog TYPE progname VALUE `ZABAPGIT`.
DATA lo_repo_online TYPE REF TO zcl_abapgit_repo_online.
DATA li_repo_online TYPE REF TO zif_abapgit_repo_online.
IF io_repo->is_offline( ) = abap_true.
IF ii_repo->is_offline( ) = abap_true.
RETURN.
ENDIF.
lo_repo_online ?= io_repo.
li_repo_online ?= ii_repo.
" If abapGit was used to update itself, then restart to avoid LOAD_PROGRAM_&_MISMATCH dumps
" because abapGit code was changed at runtime
IF zcl_abapgit_ui_factory=>get_frontend_services( )->gui_is_available( ) = abap_true AND
zcl_abapgit_url=>is_abapgit_repo( lo_repo_online->get_url( ) ) = abap_true AND
zcl_abapgit_url=>is_abapgit_repo( li_repo_online->get_url( ) ) = abap_true AND
sy-batch = abap_false AND
sy-cprog = lc_abapgit_prog.
@ -321,7 +321,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
is_checks = ls_checks
ii_log = ii_log ).
io_repo->refresh( iv_drop_log = abap_false ).
ii_repo->refresh( iv_drop_log = abap_false ).
ENDIF.
ENDMETHOD.
@ -332,7 +332,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
DATA ls_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks.
" find troublesome objects
ls_checks = io_repo->deserialize_checks( ).
ls_checks = ii_repo->deserialize_checks( ).
IF ls_checks-overwrite IS INITIAL.
zcx_abapgit_exception=>raise(
@ -343,7 +343,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
TRY.
popup_decisions(
EXPORTING
io_repo = io_repo
ii_repo = ii_repo
CHANGING
cs_checks = ls_checks ).
@ -352,7 +352,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
ENDTRY.
real_deserialize(
io_repo = io_repo
ii_repo = ii_repo
is_checks = ls_checks ).
ENDMETHOD.
@ -365,7 +365,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
check_package( is_repo_params ).
" create new repo and add to favorites
ro_repo ?= zcl_abapgit_repo_srv=>get_instance( )->new_offline(
ri_repo = zcl_abapgit_repo_srv=>get_instance( )->new_offline(
iv_name = is_repo_params-name
iv_package = is_repo_params-package
iv_folder_logic = is_repo_params-folder_logic
@ -377,34 +377,34 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
TRY.
check_package_exists(
iv_package = is_repo_params-package
it_remote = ro_repo->get_files_remote( ) ).
it_remote = ri_repo->get_files_remote( ) ).
CATCH zcx_abapgit_exception INTO lx_error.
zcl_abapgit_repo_srv=>get_instance( )->delete( ro_repo ).
zcl_abapgit_repo_srv=>get_instance( )->delete( ri_repo ).
COMMIT WORK.
RAISE EXCEPTION lx_error.
ENDTRY.
" Make sure there're no leftovers from previous repos
ro_repo->zif_abapgit_repo~checksums( )->rebuild( ).
ri_repo->checksums( )->rebuild( ).
toggle_favorite( ro_repo->get_key( ) ).
toggle_favorite( ri_repo->get_key( ) ).
" Set default repo for user
zcl_abapgit_persistence_user=>get_instance( )->set_repo_show( ro_repo->get_key( ) ).
zcl_abapgit_persistence_user=>get_instance( )->set_repo_show( ri_repo->get_key( ) ).
COMMIT WORK AND WAIT.
ENDMETHOD.
METHOD new_online.
DATA li_repo TYPE REF TO zif_abapgit_repo.
DATA lx_error TYPE REF TO zcx_abapgit_exception.
check_package( is_repo_params ).
ro_repo ?= zcl_abapgit_repo_srv=>get_instance( )->new_online(
li_repo = zcl_abapgit_repo_srv=>get_instance( )->new_online(
iv_url = is_repo_params-url
iv_branch_name = is_repo_params-branch_name
iv_name = is_repo_params-name
@ -419,23 +419,25 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
TRY.
check_package_exists(
iv_package = is_repo_params-package
it_remote = ro_repo->get_files_remote( ) ).
it_remote = li_repo->get_files_remote( ) ).
CATCH zcx_abapgit_exception INTO lx_error.
zcl_abapgit_repo_srv=>get_instance( )->delete( ro_repo ).
zcl_abapgit_repo_srv=>get_instance( )->delete( li_repo ).
COMMIT WORK.
RAISE EXCEPTION lx_error.
ENDTRY.
" Make sure there're no leftovers from previous repos
ro_repo->zif_abapgit_repo~checksums( )->rebuild( ).
li_repo->checksums( )->rebuild( ).
toggle_favorite( ro_repo->get_key( ) ).
toggle_favorite( li_repo->get_key( ) ).
" Set default repo for user
zcl_abapgit_persistence_user=>get_instance( )->set_repo_show( ro_repo->get_key( ) ).
zcl_abapgit_persistence_user=>get_instance( )->set_repo_show( li_repo->get_key( ) ).
COMMIT WORK AND WAIT.
ri_repo_online ?= li_repo.
ENDMETHOD.
@ -465,13 +467,13 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
" Ask user what to do
IF cs_checks-requirements-met = zif_abapgit_definitions=>c_no.
lt_requirements = io_repo->get_dot_abapgit( )->get_data( )-requirements.
lt_requirements = ii_repo->get_dot_abapgit( )->get_data( )-requirements.
zcl_abapgit_repo_requirements=>requirements_popup( lt_requirements ).
cs_checks-requirements-decision = zif_abapgit_definitions=>c_yes.
ENDIF.
IF cs_checks-dependencies-met = zif_abapgit_definitions=>c_no.
lt_dependencies = io_repo->get_dot_apack( )->get_manifest_descriptor( )-dependencies.
lt_dependencies = ii_repo->get_dot_apack( )->get_manifest_descriptor( )-dependencies.
zcl_abapgit_apack_helper=>dependencies_popup( lt_dependencies ).
cs_checks-dependencies-decision = zif_abapgit_definitions=>c_yes.
ENDIF.
@ -625,7 +627,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
DATA: lt_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt,
lv_answer TYPE c LENGTH 1,
lo_repo TYPE REF TO zcl_abapgit_repo,
li_repo TYPE REF TO zif_abapgit_repo,
lv_package TYPE devclass,
lv_title TYPE c LENGTH 20,
lv_question TYPE c LENGTH 150,
@ -634,11 +636,11 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
lv_message TYPE string.
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
lv_repo_name = lo_repo->get_name( ).
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
lv_repo_name = li_repo->get_name( ).
lv_package = lo_repo->get_package( ).
lt_tadir = lo_repo->get_tadir_objects( ).
lv_package = li_repo->get_package( ).
lt_tadir = li_repo->get_tadir_objects( ).
IF lines( lt_tadir ) > 0.
@ -670,14 +672,14 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
ENDIF.
ls_checks = lo_repo->delete_checks( ).
ls_checks = li_repo->delete_checks( ).
IF ls_checks-transport-required = abap_true.
ls_checks-transport-transport = zcl_abapgit_ui_factory=>get_popups(
)->popup_transport_request( ls_checks-transport-type ).
ENDIF.
ri_log = zcl_abapgit_repo_srv=>get_instance( )->purge(
ii_repo = lo_repo
ii_repo = li_repo
is_checks = ls_checks
iv_keep_repo = iv_keep_repo ).
@ -712,25 +714,25 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
DATA li_log TYPE REF TO zif_abapgit_log.
DATA lv_msg TYPE string.
li_log = io_repo->create_new_log( 'Pull Log' ).
li_log = ii_repo->create_new_log( 'Pull Log' ).
" pass decisions to delete
delete_unnecessary_objects(
io_repo = io_repo
ii_repo = ii_repo
is_checks = is_checks
ii_log = li_log ).
" pass decisions to deserialize
io_repo->deserialize(
ii_repo->deserialize(
is_checks = is_checks
ii_log = li_log ).
IF li_log->get_status( ) = zif_abapgit_log=>c_status-ok.
lv_msg = |Repository { io_repo->get_name( ) } successfully pulled for package { io_repo->get_package( ) }|.
lv_msg = |Repository { ii_repo->get_name( ) } successfully pulled for package { ii_repo->get_package( ) }|.
MESSAGE lv_msg TYPE 'S'.
ENDIF.
check_for_restart( io_repo ).
check_for_restart( ii_repo ).
ENDMETHOD.
@ -746,18 +748,18 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
DATA: lv_answer TYPE c,
lv_question TYPE string,
lo_repo TYPE REF TO zcl_abapgit_repo.
li_repo TYPE REF TO zif_abapgit_repo.
IF zcl_abapgit_auth=>is_allowed( zif_abapgit_auth=>c_authorization-update_local_checksum ) = abap_false.
zcx_abapgit_exception=>raise( 'Not authorized' ).
ENDIF.
lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ).
lv_question = 'This will rebuild and overwrite local repo checksums.'.
IF lo_repo->is_offline( ) = abap_false.
IF li_repo->is_offline( ) = abap_false.
lv_question = lv_question
&& ' The logic: if local and remote file differs then:'
&& ' if remote branch is ahead then assume changes are remote,'
@ -780,7 +782,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
RAISE EXCEPTION TYPE zcx_abapgit_cancel.
ENDIF.
lo_repo->zif_abapgit_repo~checksums( )->rebuild( ).
li_repo->checksums( )->rebuild( ).
COMMIT WORK AND WAIT.
@ -837,7 +839,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
METHOD transport_to_branch.
DATA:
lo_repository TYPE REF TO zcl_abapgit_repo_online,
li_repo_online TYPE REF TO zif_abapgit_repo_online,
lo_transport_to_branch TYPE REF TO zcl_abapgit_transport_2_branch,
lt_transport_objects TYPE zif_abapgit_definitions=>ty_tadir_tt,
lv_trkorr TYPE trkorr,
@ -848,7 +850,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
zcx_abapgit_exception=>raise( 'Not authorized' ).
ENDIF.
lo_repository ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_repository_key ).
li_repo_online ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_repository_key ).
lv_trkorr = zcl_abapgit_ui_factory=>get_popups( )->popup_to_select_transport( ).
" Also include deleted objects that are included in transport
@ -863,7 +865,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
CREATE OBJECT lo_transport_to_branch.
lo_transport_to_branch->create(
io_repository = lo_repository
ii_repo_online = li_repo_online
is_transport_to_branch = ls_transport_to_branch
it_transport_objects = lt_transport_objects ).

View File

@ -103,14 +103,14 @@ CLASS lcl_startup IMPLEMENTATION.
ENDMETHOD.
METHOD set_start_repo_from_package.
DATA: lo_repo TYPE REF TO zcl_abapgit_repo,
DATA: li_repo TYPE REF TO zif_abapgit_repo,
lt_r_package TYPE RANGE OF devclass,
ls_r_package LIKE LINE OF lt_r_package,
lt_superpackages TYPE zif_abapgit_sap_package=>ty_devclass_tt,
li_package TYPE REF TO zif_abapgit_sap_package,
lt_repo_list TYPE zif_abapgit_repo_srv=>ty_repo_list.
FIELD-SYMBOLS: <lo_repo> TYPE LINE OF zif_abapgit_repo_srv=>ty_repo_list,
FIELD-SYMBOLS: <li_repo> TYPE LINE OF zif_abapgit_repo_srv=>ty_repo_list,
<lv_superpackage> LIKE LINE OF lt_superpackages.
li_package = zcl_abapgit_factory=>get_sap_package( iv_package ).
@ -134,17 +134,17 @@ CLASS lcl_startup IMPLEMENTATION.
lt_repo_list = zcl_abapgit_repo_srv=>get_instance( )->list( ).
LOOP AT lt_repo_list ASSIGNING <lo_repo>.
LOOP AT lt_repo_list ASSIGNING <li_repo>.
IF <lo_repo>->get_package( ) IN lt_r_package.
lo_repo ?= <lo_repo>.
IF <li_repo>->get_package( ) IN lt_r_package.
li_repo = <li_repo>.
EXIT.
ENDIF.
ENDLOOP.
IF lo_repo IS BOUND.
zcl_abapgit_persistence_user=>get_instance( )->set_repo_show( lo_repo->get_key( ) ).
IF li_repo IS BOUND.
zcl_abapgit_persistence_user=>get_instance( )->set_repo_show( li_repo->get_key( ) ).
ENDIF.
ENDMETHOD.