mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 13:03:01 +08:00
Patch: delete all lines removes the file
This commit is contained in:
parent
1dbd4d1912
commit
1a9d1b3d08
|
@ -150,6 +150,11 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
|
|||
VALUE(rs_diff) TYPE zif_abapgit_definitions=>ty_diff
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
METHODS are_all_lines_patched
|
||||
IMPORTING
|
||||
it_diff TYPE zif_abapgit_definitions=>ty_diffs_tt
|
||||
RETURNING
|
||||
VALUE(rv_are_all_lines_patched) TYPE abap_bool.
|
||||
CLASS-METHODS get_patch_data
|
||||
IMPORTING
|
||||
iv_patch TYPE string
|
||||
|
@ -199,11 +204,22 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DIFF IMPLEMENTATION.
|
|||
|
||||
lv_patch = lo_git_add_patch->get_patch_binary( ).
|
||||
|
||||
IF <ls_diff_file>-lstate = 'D'
|
||||
AND are_all_lines_patched( lt_diff ) = abap_true.
|
||||
|
||||
mo_stage->rm(
|
||||
iv_path = <ls_diff_file>-path
|
||||
iv_filename = <ls_diff_file>-filename ).
|
||||
|
||||
ELSE.
|
||||
|
||||
mo_stage->add(
|
||||
iv_path = <ls_diff_file>-path
|
||||
iv_filename = <ls_diff_file>-filename
|
||||
iv_data = lv_patch ).
|
||||
|
||||
ENDIF.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
IF lv_something_patched = abap_false.
|
||||
|
@ -1051,4 +1067,21 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DIFF IMPLEMENTATION.
|
|||
INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD are_all_lines_patched.
|
||||
|
||||
DATA: lv_patch_count TYPE i.
|
||||
|
||||
FIELD-SYMBOLS: <ls_diff> TYPE zif_abapgit_definitions=>ty_diff.
|
||||
|
||||
LOOP AT it_diff ASSIGNING <ls_diff>
|
||||
WHERE patch_flag = abap_true.
|
||||
lv_patch_count = lv_patch_count + 1.
|
||||
ENDLOOP.
|
||||
|
||||
rv_are_all_lines_patched = xsdbool( lv_patch_count = lines( it_diff ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
Loading…
Reference in New Issue
Block a user