mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-03 05:18:59 +08:00
Patch: delete all lines removes the file
This commit is contained in:
parent
1dbd4d1912
commit
1a9d1b3d08
|
@ -2,11 +2,11 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
|
||||||
PUBLIC
|
PUBLIC
|
||||||
INHERITING FROM zcl_abapgit_gui_page
|
INHERITING FROM zcl_abapgit_gui_page
|
||||||
FINAL
|
FINAL
|
||||||
CREATE PUBLIC .
|
CREATE PUBLIC.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
INTERFACES zif_abapgit_gui_page_hotkey .
|
INTERFACES zif_abapgit_gui_page_hotkey.
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF ty_file_diff,
|
BEGIN OF ty_file_diff,
|
||||||
|
@ -18,16 +18,16 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
|
||||||
o_diff TYPE REF TO zcl_abapgit_diff,
|
o_diff TYPE REF TO zcl_abapgit_diff,
|
||||||
changed_by TYPE xubname,
|
changed_by TYPE xubname,
|
||||||
type TYPE string,
|
type TYPE string,
|
||||||
END OF ty_file_diff .
|
END OF ty_file_diff.
|
||||||
TYPES:
|
TYPES:
|
||||||
tt_file_diff TYPE STANDARD TABLE OF ty_file_diff .
|
tt_file_diff TYPE STANDARD TABLE OF ty_file_diff.
|
||||||
|
|
||||||
CONSTANTS:
|
CONSTANTS:
|
||||||
BEGIN OF c_fstate,
|
BEGIN OF c_fstate,
|
||||||
local TYPE char1 VALUE 'L',
|
local TYPE char1 VALUE 'L',
|
||||||
remote TYPE char1 VALUE 'R',
|
remote TYPE char1 VALUE 'R',
|
||||||
both TYPE char1 VALUE 'B',
|
both TYPE char1 VALUE 'B',
|
||||||
END OF c_fstate .
|
END OF c_fstate.
|
||||||
|
|
||||||
METHODS constructor
|
METHODS constructor
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
@ -37,10 +37,10 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
|
||||||
!io_stage TYPE REF TO zcl_abapgit_stage OPTIONAL
|
!io_stage TYPE REF TO zcl_abapgit_stage OPTIONAL
|
||||||
!iv_patch_mode TYPE abap_bool DEFAULT abap_false
|
!iv_patch_mode TYPE abap_bool DEFAULT abap_false
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
METHODS zif_abapgit_gui_event_handler~on_event
|
METHODS zif_abapgit_gui_event_handler~on_event
|
||||||
REDEFINITION .
|
REDEFINITION.
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
METHODS:
|
METHODS:
|
||||||
render_content REDEFINITION,
|
render_content REDEFINITION,
|
||||||
|
@ -117,7 +117,7 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
it_postdata TYPE cnht_post_data_tab
|
it_postdata TYPE cnht_post_data_tab
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception.
|
||||||
METHODS apply_patch_all
|
METHODS apply_patch_all
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_patch TYPE string
|
iv_patch TYPE string
|
||||||
|
@ -150,6 +150,11 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
|
||||||
VALUE(rs_diff) TYPE zif_abapgit_definitions=>ty_diff
|
VALUE(rs_diff) TYPE zif_abapgit_definitions=>ty_diff
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
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
|
CLASS-METHODS get_patch_data
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_patch TYPE string
|
iv_patch TYPE string
|
||||||
|
@ -199,11 +204,22 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DIFF IMPLEMENTATION.
|
||||||
|
|
||||||
lv_patch = lo_git_add_patch->get_patch_binary( ).
|
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(
|
mo_stage->add(
|
||||||
iv_path = <ls_diff_file>-path
|
iv_path = <ls_diff_file>-path
|
||||||
iv_filename = <ls_diff_file>-filename
|
iv_filename = <ls_diff_file>-filename
|
||||||
iv_data = lv_patch ).
|
iv_data = lv_patch ).
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
IF lv_something_patched = abap_false.
|
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.
|
INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions.
|
||||||
|
|
||||||
ENDMETHOD.
|
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.
|
ENDCLASS.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user