mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
warning uncommited change, close #173
if objects are modified locally and a pull is performed, abapGit will ask if the object should be overwritten
This commit is contained in:
parent
c97a8b7ba7
commit
a3a441bb5f
|
@ -3,7 +3,7 @@ REPORT zabapgit.
|
||||||
* See http://www.abapgit.org
|
* See http://www.abapgit.org
|
||||||
|
|
||||||
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
|
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
|
||||||
gc_abap_version TYPE string VALUE 'v1.9.7'. "#EC NOTEXT
|
gc_abap_version TYPE string VALUE 'v1.9.8'. "#EC NOTEXT
|
||||||
|
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
* The MIT License (MIT)
|
* The MIT License (MIT)
|
||||||
|
@ -13072,7 +13072,12 @@ CLASS lcl_objects DEFINITION FINAL.
|
||||||
CHANGING ct_tadir TYPE lcl_tadir=>ty_tadir_tt
|
CHANGING ct_tadir TYPE lcl_tadir=>ty_tadir_tt
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
CLASS-METHODS check_warning
|
CLASS-METHODS warning_overwrite
|
||||||
|
IMPORTING io_repo TYPE REF TO lcl_repo
|
||||||
|
CHANGING ct_results TYPE lcl_file_status=>ty_results_tt
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
CLASS-METHODS warning_package
|
||||||
IMPORTING is_item TYPE ty_item
|
IMPORTING is_item TYPE ty_item
|
||||||
iv_package TYPE devclass
|
iv_package TYPE devclass
|
||||||
RETURNING VALUE(rv_cancel) TYPE abap_bool
|
RETURNING VALUE(rv_cancel) TYPE abap_bool
|
||||||
|
@ -13603,7 +13608,69 @@ ENDCLASS. "lcl_package IMPLEMENTATION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_objects IMPLEMENTATION.
|
CLASS lcl_objects IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD check_warning.
|
METHOD warning_overwrite.
|
||||||
|
|
||||||
|
DATA: lv_index TYPE i,
|
||||||
|
lv_answer TYPE c,
|
||||||
|
lv_question TYPE string,
|
||||||
|
lt_before TYPE lcl_persistence_repo=>ty_local_checksum_tt,
|
||||||
|
lt_current TYPE lcl_persistence_repo=>ty_local_checksum_tt.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_before> LIKE LINE OF lt_before,
|
||||||
|
<ls_current> LIKE LINE OF lt_current,
|
||||||
|
<ls_result> LIKE LINE OF ct_results.
|
||||||
|
|
||||||
|
|
||||||
|
lt_before = io_repo->get_local_checksums( ).
|
||||||
|
lt_current = io_repo->build_local_checksums( ).
|
||||||
|
|
||||||
|
LOOP AT ct_results ASSIGNING <ls_result>.
|
||||||
|
lv_index = sy-tabix.
|
||||||
|
|
||||||
|
READ TABLE lt_before ASSIGNING <ls_before>
|
||||||
|
WITH KEY item-obj_type = <ls_result>-obj_type
|
||||||
|
item-obj_name = <ls_result>-obj_name.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
CONTINUE.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
READ TABLE lt_current ASSIGNING <ls_current>
|
||||||
|
WITH KEY item-obj_type = <ls_result>-obj_type
|
||||||
|
item-obj_name = <ls_result>-obj_name.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
CONTINUE.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
IF <ls_before>-sha1 <> <ls_current>-sha1.
|
||||||
|
lv_question = |It looks like object { <ls_result>-obj_type
|
||||||
|
} { <ls_result>-obj_name
|
||||||
|
} has been modified locally, overwrite object?|.
|
||||||
|
|
||||||
|
CALL FUNCTION 'POPUP_TO_CONFIRM'
|
||||||
|
EXPORTING
|
||||||
|
titlebar = 'Warning'
|
||||||
|
text_question = lv_question
|
||||||
|
display_cancel_button = abap_false
|
||||||
|
IMPORTING
|
||||||
|
answer = lv_answer
|
||||||
|
EXCEPTIONS
|
||||||
|
text_not_found = 1
|
||||||
|
OTHERS = 2.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
_raise 'error from POPUP_TO_CONFIRM'.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
IF lv_answer = '2'.
|
||||||
|
DELETE ct_results INDEX lv_index.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD warning_package.
|
||||||
|
|
||||||
DATA: lv_question TYPE c LENGTH 200,
|
DATA: lv_question TYPE c LENGTH 200,
|
||||||
lv_answer TYPE c,
|
lv_answer TYPE c,
|
||||||
|
@ -14055,6 +14122,9 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
|
|
||||||
lt_results = prioritize_deser( lt_results ).
|
lt_results = prioritize_deser( lt_results ).
|
||||||
|
|
||||||
|
warning_overwrite( EXPORTING io_repo = io_repo
|
||||||
|
CHANGING ct_results = lt_results ).
|
||||||
|
|
||||||
LOOP AT lt_results ASSIGNING <ls_result>.
|
LOOP AT lt_results ASSIGNING <ls_result>.
|
||||||
lcl_progress=>show( iv_key = 'Deserialize'
|
lcl_progress=>show( iv_key = 'Deserialize'
|
||||||
iv_current = sy-tabix
|
iv_current = sy-tabix
|
||||||
|
@ -14067,10 +14137,10 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
* handle namespaces
|
* handle namespaces
|
||||||
REPLACE ALL OCCURRENCES OF '#' IN ls_item-obj_name WITH '/'.
|
REPLACE ALL OCCURRENCES OF '#' IN ls_item-obj_name WITH '/'.
|
||||||
|
|
||||||
lv_cancel = check_warning( is_item = ls_item
|
lv_cancel = warning_package( is_item = ls_item
|
||||||
iv_package = io_repo->get_package( ) ).
|
iv_package = io_repo->get_package( ) ).
|
||||||
IF lv_cancel = abap_true.
|
IF lv_cancel = abap_true.
|
||||||
RETURN.
|
_raise 'cancelled'.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
CREATE OBJECT lo_files
|
CREATE OBJECT lo_files
|
||||||
|
|
Loading…
Reference in New Issue
Block a user