Patch: enable new view options similar to Diff (#5162)

* enable new view options on patch page

* add unit test

* new constant for unchanged lines
This commit is contained in:
Christian Günter 2021-11-26 07:41:57 +01:00 committed by GitHub
parent 095c35f49b
commit 13c4d57dd3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 32 additions and 10 deletions

View File

@ -47,9 +47,9 @@ CLASS ZCL_ABAPGIT_GIT_ADD_PATCH IMPLEMENTATION.
LOOP AT mt_diff ASSIGNING <ls_diff>. LOOP AT mt_diff ASSIGNING <ls_diff>.
CASE <ls_diff>-result. CASE <ls_diff>-result.
WHEN ' '. WHEN zif_abapgit_definitions=>c_diff-unchanged.
INSERT <ls_diff>-new INTO TABLE rt_patch. INSERT <ls_diff>-old INTO TABLE rt_patch.
WHEN zif_abapgit_definitions=>c_diff-insert. WHEN zif_abapgit_definitions=>c_diff-insert.

View File

@ -23,6 +23,8 @@ CLASS ltcl_calculate_patch DEFINITION FINAL FOR TESTING
mixed FOR TESTING RAISING cx_static_check, mixed FOR TESTING RAISING cx_static_check,
no_diff FOR TESTING RAISING cx_static_check,
unknown_result_type FOR TESTING RAISING cx_static_check. unknown_result_type FOR TESTING RAISING cx_static_check.
METHODS: METHODS:
@ -612,6 +614,23 @@ CLASS ltcl_calculate_patch IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD no_diff.
given_diff( iv_patch_flag = ' '
iv_new_num = ' 1'
iv_new = '" new'
iv_result = ' '
iv_old_num = ' 1'
iv_old = '" old' ).
when_patch_is_calculated( ).
then_patch_should_be( |" old| ).
ENDMETHOD.
METHOD unknown_result_type. METHOD unknown_result_type.
given_diff( iv_patch_flag = ' ' given_diff( iv_patch_flag = ' '

View File

@ -152,9 +152,12 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
VALUE(rv_is_refrseh) TYPE abap_bool. VALUE(rv_is_refrseh) TYPE abap_bool.
METHODS modify_files_before_diff_calc METHODS modify_files_before_diff_calc
IMPORTING IMPORTING
!it_diff_files_old TYPE ty_file_diffs it_diff_files_old TYPE ty_file_diffs
RETURNING 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 .
METHODS render_content METHODS render_content
REDEFINITION . REDEFINITION .
@ -232,9 +235,6 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
METHODS add_filter_sub_menu METHODS add_filter_sub_menu
IMPORTING IMPORTING
!io_menu TYPE REF TO zcl_abapgit_html_toolbar . !io_menu TYPE REF TO zcl_abapgit_html_toolbar .
METHODS add_view_sub_menu
IMPORTING
!io_menu TYPE REF TO zcl_abapgit_html_toolbar .
METHODS render_lines METHODS render_lines
IMPORTING IMPORTING
!is_diff TYPE ty_file_diff !is_diff TYPE ty_file_diff

View File

@ -164,6 +164,8 @@ CLASS zcl_abapgit_gui_page_patch IMPLEMENTATION.
iv_id = 'stage' iv_id = 'stage'
iv_typ = zif_abapgit_html=>c_action_type-dummy ). iv_typ = zif_abapgit_html=>c_action_type-dummy ).
add_view_sub_menu( io_menu ).
ENDMETHOD. ENDMETHOD.

View File

@ -150,7 +150,7 @@ CLASS zcl_abapgit_diff IMPLEMENTATION.
ELSEIF <ls_delta>-flag1 = 'M' AND <ls_delta>-flag2 = 'M'. ELSEIF <ls_delta>-flag1 = 'M' AND <ls_delta>-flag2 = 'M'.
ls_diff-result = zif_abapgit_definitions=>c_diff-update. ls_diff-result = zif_abapgit_definitions=>c_diff-update.
ELSEIF <ls_delta>-flag1 = '' AND <ls_delta>-flag2 = ''. ELSEIF <ls_delta>-flag1 = '' AND <ls_delta>-flag2 = ''.
ls_diff-result = ''. ls_diff-result = zif_abapgit_definitions=>c_diff-unchanged.
ELSE. ELSE.
ASSERT 0 = 1. " unknown comparison result ASSERT 0 = 1. " unknown comparison result
ENDIF. ENDIF.

View File

@ -392,6 +392,7 @@ INTERFACE zif_abapgit_definitions
END OF c_git_branch. END OF c_git_branch.
CONSTANTS: CONSTANTS:
BEGIN OF c_diff, BEGIN OF c_diff,
unchanged TYPE c LENGTH 1 VALUE ' ',
insert TYPE c LENGTH 1 VALUE 'I', insert TYPE c LENGTH 1 VALUE 'I',
delete TYPE c LENGTH 1 VALUE 'D', delete TYPE c LENGTH 1 VALUE 'D',
update TYPE c LENGTH 1 VALUE 'U', update TYPE c LENGTH 1 VALUE 'U',