Merge branch 'main' into minka/aff-types

This commit is contained in:
Albert Mink 2022-06-23 15:33:02 +02:00 committed by GitHub
commit 9230c3b8f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 173 additions and 64 deletions

View File

@ -14,6 +14,9 @@ CLASS zcl_abapgit_object_iwvb DEFINITION
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
METHODS get_field_rules
RETURNING
VALUE(ro_result) TYPE REF TO zif_abapgit_field_rules.
ENDCLASS.
@ -25,8 +28,9 @@ CLASS zcl_abapgit_object_iwvb IMPLEMENTATION.
CREATE OBJECT ro_generic
EXPORTING
is_item = ms_item
iv_language = mv_language.
io_field_rules = get_field_rules( )
is_item = ms_item
iv_language = mv_language.
ENDMETHOD.
@ -106,4 +110,25 @@ CLASS zcl_abapgit_object_iwvb IMPLEMENTATION.
get_generic( )->serialize( io_xml ).
ENDMETHOD.
METHOD get_field_rules.
ro_result = zcl_abapgit_field_rules=>create( ).
ro_result->add(
iv_table = '/IWBEP/I_MGW_VAH'
iv_field = 'CREATED_BY'
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-user
)->add(
iv_table = '/IWBEP/I_MGW_VAH'
iv_field = 'CREATED_TIMESTMP'
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-timestamp
)->add(
iv_table = '/IWBEP/I_MGW_VAH'
iv_field = 'CHANGED_BY'
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-user
)->add(
iv_table = '/IWBEP/I_MGW_VAH'
iv_field = 'CHANGED_TIMESTMP'
iv_fill_rule = zif_abapgit_field_rules=>c_fill_rule-timestamp ).
ENDMETHOD.
ENDCLASS.

View File

@ -18,21 +18,6 @@ CLASS zcl_abapgit_repo_srv DEFINITION
PROTECTED SECTION.
PRIVATE SECTION.
ALIASES get_repo_from_package
FOR zif_abapgit_repo_srv~get_repo_from_package .
ALIASES get_repo_from_url
FOR zif_abapgit_repo_srv~get_repo_from_url .
ALIASES delete
FOR zif_abapgit_repo_srv~delete .
ALIASES get
FOR zif_abapgit_repo_srv~get .
ALIASES list
FOR zif_abapgit_repo_srv~list .
ALIASES validate_package
FOR zif_abapgit_repo_srv~validate_package .
ALIASES validate_url
FOR zif_abapgit_repo_srv~validate_url .
CLASS-DATA gi_ref TYPE REF TO zif_abapgit_repo_srv .
DATA mv_init TYPE abap_bool.
DATA mv_only_favorites TYPE abap_bool.
@ -134,10 +119,12 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
ri_srv = gi_ref.
ENDMETHOD.
METHOD inject_instance.
gi_ref = ii_srv.
ENDMETHOD.
METHOD instantiate_and_add.
IF is_repo_meta-offline = abap_false.
@ -220,7 +207,7 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
DATA li_repo TYPE REF TO zif_abapgit_repo.
DATA ls_full_meta TYPE zif_abapgit_persistence=>ty_repo.
li_repo = get( iv_key ).
li_repo = zif_abapgit_repo_srv~get( iv_key ).
DELETE TABLE mt_list FROM li_repo.
ASSERT sy-subrc IS INITIAL.
@ -241,7 +228,7 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
li_repo TYPE REF TO zif_abapgit_repo.
LOOP AT it_repos INTO ls_repo.
li_repo = get( ls_repo-key ).
li_repo = zif_abapgit_repo_srv~get( ls_repo-key ).
li_package = zcl_abapgit_factory=>get_sap_package( ls_repo-package ).
IF li_package->exists( ) = abap_false.
@ -424,7 +411,7 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
lo_repo_online TYPE REF TO zcl_abapgit_repo_online,
lv_err TYPE string.
lt_repo = list( ).
lt_repo = zif_abapgit_repo_srv~list( ).
LOOP AT lt_repo INTO li_repo.
CHECK li_repo->is_offline( ) = abap_false.
@ -496,7 +483,7 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
zcx_abapgit_exception=>raise( 'Not authorized' ).
ENDIF.
validate_package( iv_package ).
zif_abapgit_repo_srv~validate_package( iv_package ).
IF iv_url IS INITIAL.
zcx_abapgit_exception=>raise( 'Missing display name for repo' ).
@ -548,10 +535,10 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
zcx_abapgit_exception=>raise( 'Not authorized' ).
ENDIF.
validate_package( iv_package = iv_package
zif_abapgit_repo_srv~validate_package( iv_package = iv_package
iv_ign_subpkg = iv_ign_subpkg ).
validate_url( lv_url ).
zif_abapgit_repo_srv~validate_url( lv_url ).
lv_branch_name = determine_branch_name(
iv_name = iv_branch_name
@ -621,7 +608,7 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
RAISE EXCEPTION lx_error.
ENDTRY.
delete( ii_repo ).
zif_abapgit_repo_srv~delete( ii_repo ).
ENDMETHOD.
@ -645,7 +632,7 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
" Check if package is already used in another repo
IF iv_chk_exists = abap_true.
get_repo_from_package(
zif_abapgit_repo_srv~get_repo_from_package(
EXPORTING
iv_package = iv_package
iv_ign_subpkg = iv_ign_subpkg
@ -670,7 +657,7 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION.
zcl_abapgit_url=>validate( iv_url ).
IF iv_chk_exists = abap_true.
get_repo_from_url(
zif_abapgit_repo_srv~get_repo_from_url(
EXPORTING
iv_url = iv_url
IMPORTING

View File

@ -152,12 +152,12 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
VALUE(rv_is_refrseh) TYPE abap_bool.
METHODS modify_files_before_diff_calc
IMPORTING
it_diff_files_old TYPE ty_file_diffs
it_diff_files_old TYPE ty_file_diffs
RETURNING
VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_stage_tt.
VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_stage_tt.
METHODS add_view_sub_menu
IMPORTING
io_menu TYPE REF TO zcl_abapgit_html_toolbar .
io_menu TYPE REF TO zcl_abapgit_html_toolbar .
METHODS render_content
REDEFINITION .
@ -201,6 +201,11 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
!is_diff TYPE ty_file_diff
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS render_line_no_diffs
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_line_split
IMPORTING
!is_diff_line TYPE zif_abapgit_definitions=>ty_diff
@ -256,6 +261,11 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
is_status TYPE zif_abapgit_definitions=>ty_result
RETURNING
VALUE(rv_is_file_requested) TYPE abap_bool.
METHODS has_diffs
IMPORTING
!it_diffs TYPE zif_abapgit_definitions=>ty_diffs_tt
RETURNING
VALUE(rv_has_diffs) TYPE abap_bool.
ENDCLASS.
@ -641,6 +651,16 @@ CLASS zcl_abapgit_gui_page_diff IMPLEMENTATION.
ENDMETHOD.
METHOD has_diffs.
LOOP AT it_diffs TRANSPORTING NO FIELDS WHERE result IS NOT INITIAL.
rv_has_diffs = abap_true.
EXIT.
ENDLOOP.
ENDMETHOD.
METHOD insert_nav.
ENDMETHOD.
@ -984,6 +1004,11 @@ CLASS zcl_abapgit_gui_page_diff IMPLEMENTATION.
lt_diffs = is_diff-o_diff->get( ).
IF has_diffs( lt_diffs ) = abap_false.
ri_html->add( render_line_no_diffs( ) ).
RETURN.
ENDIF.
lv_insert_nav = insert_nav( ).
LOOP AT lt_diffs ASSIGNING <ls_diff>.
@ -1032,6 +1057,26 @@ CLASS zcl_abapgit_gui_page_diff IMPLEMENTATION.
ENDMETHOD.
METHOD render_line_no_diffs.
DATA ls_diff_line TYPE zif_abapgit_definitions=>ty_diff.
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
IF mv_unified = abap_true.
ls_diff_line-old = 'No diffs found'.
ri_html->add( render_line_unified( is_diff_line = ls_diff_line ) ).
ELSE.
ls_diff_line-new = 'No diffs found'.
ri_html->add( render_line_split( is_diff_line = ls_diff_line
iv_filename = ''
iv_fstate = ''
iv_index = 1 ) ).
ENDIF.
ENDMETHOD.
METHOD render_line_split.
DATA: lv_new TYPE string,

View File

@ -241,7 +241,7 @@ CLASS zcl_abapgit_diff IMPLEMENTATION.
APPEND ls_diff TO rt_diff.
ENDLOOP.
ELSEIF sy-subrc = 2.
" Identical input
" Copy input... but it might not be identical
LOOP AT it_old ASSIGNING <ls_old>.
CLEAR ls_diff.
ls_diff-old_num = sy-tabix.
@ -250,6 +250,11 @@ CLASS zcl_abapgit_diff IMPLEMENTATION.
ASSERT sy-subrc = 0.
ls_diff-new_num = sy-tabix.
ls_diff-new = <ls_new>.
" SAP function ignores lines that contain only whitespace so we compare directly
IF ( mv_compare_mode = 1 OR mv_compare_mode = 3 ) AND <ls_old> <> <ls_new> AND
( strlen( condense( <ls_old> ) ) = 0 OR strlen( condense( <ls_new> ) ) = 0 ).
ls_diff-result = zif_abapgit_definitions=>c_diff-update.
ENDIF.
APPEND ls_diff TO rt_diff.
ENDLOOP.
ELSE.

View File

@ -42,7 +42,8 @@ CLASS ltcl_diff DEFINITION FOR TESTING
diff10 FOR TESTING RAISING zcx_abapgit_exception,
diff11 FOR TESTING RAISING zcx_abapgit_exception,
diff12 FOR TESTING RAISING zcx_abapgit_exception,
diff13 FOR TESTING RAISING zcx_abapgit_exception.
diff13 FOR TESTING RAISING zcx_abapgit_exception,
diff14 FOR TESTING RAISING zcx_abapgit_exception.
ENDCLASS.
@ -141,7 +142,7 @@ CLASS ltcl_diff IMPLEMENTATION.
add_expected( iv_new_num = ' 1'
iv_new = 'A'
iv_result = ''
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 1'
iv_old = 'A' ).
test( ).
@ -189,12 +190,12 @@ CLASS ltcl_diff IMPLEMENTATION.
add_expected( iv_new_num = ' 1'
iv_new = 'A'
iv_result = ''
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 1'
iv_old = 'A' ).
add_expected( iv_new_num = ' 2'
iv_new = 'B'
iv_result = ''
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 2'
iv_old = 'B' ).
test( ).
@ -217,12 +218,12 @@ CLASS ltcl_diff IMPLEMENTATION.
add_expected( iv_new_num = ' 1'
iv_new = 'A'
iv_result = ''
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 1'
iv_old = 'A' ).
add_expected( iv_new_num = ' 2'
iv_new = 'B'
iv_result = ''
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 2'
iv_old = 'B' ).
add_expected( iv_new_num = ' 3'
@ -232,7 +233,7 @@ CLASS ltcl_diff IMPLEMENTATION.
iv_old = '' ).
add_expected( iv_new_num = ' 4'
iv_new = 'C'
iv_result = ''
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 3'
iv_old = 'C' ).
add_expected( iv_new_num = ' 5'
@ -260,22 +261,22 @@ CLASS ltcl_diff IMPLEMENTATION.
add_expected( iv_new_num = ' 1'
iv_new = 'A'
iv_result = ''
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 1'
iv_old = 'A' ).
add_expected( iv_new_num = ' 2'
iv_new = ' B'
iv_result = '' " no diff!
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 2'
iv_old = 'B' ).
add_expected( iv_new_num = ' 3'
iv_new = 'C'
iv_result = ''
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 3'
iv_old = 'C' ).
add_expected( iv_new_num = ' 4'
iv_new = ' D'
iv_result = '' " no diff!
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 4'
iv_old = 'D' ).
@ -298,22 +299,22 @@ CLASS ltcl_diff IMPLEMENTATION.
add_expected( iv_new_num = ' 1'
iv_new = 'A'
iv_result = ''
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 1'
iv_old = 'A' ).
add_expected( iv_new_num = ' 2'
iv_new = '* X'
iv_result = '' " no diff!
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 2'
iv_old = '* B' ).
add_expected( iv_new_num = ' 3'
iv_new = 'C'
iv_result = ''
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 3'
iv_old = 'C' ).
add_expected( iv_new_num = ' 4'
iv_new = 'D " new'
iv_result = '' " no diff!
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 4'
iv_old = 'D " old' ).
@ -336,22 +337,22 @@ CLASS ltcl_diff IMPLEMENTATION.
add_expected( iv_new_num = ' 1'
iv_new = 'A'
iv_result = ''
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 1'
iv_old = 'A' ).
add_expected( iv_new_num = ' 2'
iv_new = 'b'
iv_result = '' " no diff!
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 2'
iv_old = 'B' ).
add_expected( iv_new_num = ' 3'
iv_new = 'c'
iv_result = ''
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 3'
iv_old = 'c' ).
add_expected( iv_new_num = ' 4'
iv_new = 'D'
iv_result = '' " no diff!
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 4'
iv_old = 'd' ).
@ -368,7 +369,7 @@ CLASS ltcl_diff IMPLEMENTATION.
add_expected( iv_new_num = ' 1'
iv_new = `WRITE 'TEST'`
iv_result = 'U'
iv_result = zif_abapgit_definitions=>c_diff-update
iv_old_num = ' 1'
iv_old = `WRITE 'test'` ).
@ -387,12 +388,12 @@ CLASS ltcl_diff IMPLEMENTATION.
add_expected( iv_new_num = ' 1'
iv_new = `write 'test'`
iv_result = '' " no diff!
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 1'
iv_old = `WRITE 'test'` ).
add_expected( iv_new_num = ' 2'
iv_new = `DATA FOO TYPE I.`
iv_result = '' " no diff!
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 2'
iv_old = `DATA foo TYPE i.` ).
@ -416,37 +417,37 @@ CLASS ltcl_diff IMPLEMENTATION.
add_expected( iv_new_num = ' 1'
iv_new = `REPORT zprog_diff.`
iv_result = '' " no diff!
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 1'
iv_old = `REPORT zprog_diff.`
iv_beacon = 1 ).
add_expected( iv_new_num = ' 2'
iv_new = `*`
iv_result = 'I'
iv_result = zif_abapgit_definitions=>c_diff-insert
iv_old_num = ' '
iv_old = ``
iv_beacon = 1 ).
add_expected( iv_new_num = ' 3'
iv_new = `FORM t_1.`
iv_result = '' " no diff!
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 2'
iv_old = `FORM t_1.`
iv_beacon = 2 ).
add_expected( iv_new_num = ' 4'
iv_new = `ENDFORM.`
iv_result = '' " no diff!
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 3'
iv_old = `ENDFORM.`
iv_beacon = 2 ).
add_expected( iv_new_num = ' 5'
iv_new = `FORM t_2.`
iv_result = 'I'
iv_result = zif_abapgit_definitions=>c_diff-insert
iv_old_num = ' '
iv_old = ``
iv_beacon = 3 ).
add_expected( iv_new_num = ' 6'
iv_new = `ENDFORM.`
iv_result = 'I'
iv_result = zif_abapgit_definitions=>c_diff-insert
iv_old_num = ' '
iv_old = ``
iv_beacon = 3 ).
@ -471,37 +472,37 @@ CLASS ltcl_diff IMPLEMENTATION.
add_expected( iv_old_num = ' 1'
iv_old = `REPORT zprog_diff.`
iv_result = '' " no diff!
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_new_num = ' 1'
iv_new = `REPORT zprog_diff.`
iv_beacon = 1 ).
add_expected( iv_old_num = ' 2'
iv_old = `*`
iv_result = 'D'
iv_result = zif_abapgit_definitions=>c_diff-delete
iv_new_num = ' '
iv_new = ``
iv_beacon = 1 ).
add_expected( iv_old_num = ' 3'
iv_old = `FORM t_1.`
iv_result = '' " no diff!
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_new_num = ' 2'
iv_new = `FORM t_1.`
iv_beacon = 2 ).
add_expected( iv_old_num = ' 4'
iv_old = `ENDFORM.`
iv_result = '' " no diff!
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_new_num = ' 3'
iv_new = `ENDFORM.`
iv_beacon = 2 ).
add_expected( iv_old_num = ' 5'
iv_old = `FORM t_2.`
iv_result = 'D'
iv_result = zif_abapgit_definitions=>c_diff-delete
iv_new_num = ' '
iv_new = ``
iv_beacon = 2 ).
add_expected( iv_old_num = ' 6'
iv_old = `ENDFORM.`
iv_result = 'D'
iv_result = zif_abapgit_definitions=>c_diff-delete
iv_new_num = ' '
iv_new = ``
iv_beacon = 2 ).
@ -510,4 +511,49 @@ CLASS ltcl_diff IMPLEMENTATION.
ENDMETHOD.
METHOD diff14.
" lines with different whitespace
add_new( iv_new = 'A' ).
add_new( iv_new = `` ). " empty line
add_new( iv_new = ` ` ). " one space
add_new( iv_new = ` ` ). " some spaces
add_new( iv_new = 'E' ).
add_old( iv_old = 'A' ).
add_old( iv_old = ` ` ). " some spaces
add_old( iv_old = ` ` ). " two spaces
add_old( iv_old = `` ). " empty line
add_old( iv_old = 'E' ).
add_expected( iv_new_num = ' 1'
iv_new = 'A'
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 1'
iv_old = 'A' ).
add_expected( iv_new_num = ' 2'
iv_new = ''
iv_result = zif_abapgit_definitions=>c_diff-update
iv_old_num = ' 2'
iv_old = ` ` ).
add_expected( iv_new_num = ' 3'
iv_new = ` `
iv_result = zif_abapgit_definitions=>c_diff-update
iv_old_num = ' 3'
iv_old = ` ` ).
add_expected( iv_new_num = ' 4'
iv_new = ` `
iv_result = zif_abapgit_definitions=>c_diff-update
iv_old_num = ' 4'
iv_old = '' ).
add_expected( iv_new_num = ' 5'
iv_new = 'E'
iv_result = zif_abapgit_definitions=>c_diff-unchanged
iv_old_num = ' 5'
iv_old = 'E' ).
test( ).
ENDMETHOD.
ENDCLASS.

View File

@ -277,6 +277,7 @@
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff11", "note": "fm RS_CMP_COMPUTE_DELTA + Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff12", "note": "fm RS_CMP_COMPUTE_DELTA + Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff13", "note": "fm RS_CMP_COMPUTE_DELTA + Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff14", "note": "fm RS_CMP_COMPUTE_DELTA + Void type: RSWSOURCET"},
{"object": "ZCL_ABAPGIT_USER_RECORD", "class": "ltcl_user_record", "method": "test_invalid_user", "note": "Void type: BAPIADDR3"},
{"object": "ZCL_ABAPGIT_SERVICES_BASIS", "class": "ltcl_create_package", "method": "raise_error_if_package_exists", "note": "Void type: SCOMPKDTLN"},
{"object": "ZCL_ABAPGIT_SERVICES_BASIS", "class": "ltcl_create_package", "method": "package_given_in_popup", "note": "Void type: SCOMPKDTLN"},