mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
commit
9859a3fd85
|
@ -130,7 +130,12 @@ CLASS lcl_repo_online DEFINITION INHERITING FROM lcl_repo FINAL.
|
||||||
push
|
push
|
||||||
IMPORTING is_comment TYPE lif_defs=>ty_comment
|
IMPORTING is_comment TYPE lif_defs=>ty_comment
|
||||||
io_stage TYPE REF TO lcl_stage
|
io_stage TYPE REF TO lcl_stage
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception,
|
||||||
|
get_unnecessary_local_objs
|
||||||
|
RETURNING VALUE(rt_unnecessary_local_objects) TYPE LIF_DEFS=>TY_TADIR_TT
|
||||||
|
RAISING lcx_exception,
|
||||||
|
delete_unnecessary_local_objs
|
||||||
|
RAISING lcx_exception lcx_cancel.
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
DATA:
|
DATA:
|
||||||
|
@ -149,7 +154,7 @@ CLASS lcl_repo_online DEFINITION INHERITING FROM lcl_repo FINAL.
|
||||||
actualize_head_branch
|
actualize_head_branch
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
delete_initial_online_repo
|
delete_initial_online_repo
|
||||||
importing iv_commit type flag
|
IMPORTING iv_commit TYPE flag
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
ENDCLASS. "lcl_repo_online DEFINITION
|
ENDCLASS. "lcl_repo_online DEFINITION
|
||||||
|
|
|
@ -321,6 +321,61 @@ CLASS lcl_repo_online IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. " delete_initial_online_repo
|
ENDMETHOD. " delete_initial_online_repo
|
||||||
|
|
||||||
|
METHOD delete_unnecessary_local_objs.
|
||||||
|
|
||||||
|
DATA: lt_tadir TYPE lif_defs=>ty_tadir_tt.
|
||||||
|
|
||||||
|
lt_tadir = get_unnecessary_local_objs( ).
|
||||||
|
|
||||||
|
IF lines( lt_tadir ) > 0.
|
||||||
|
|
||||||
|
lcl_objects=>delete( lt_tadir ).
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD. " delete_unneccessary_local_objs.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_unnecessary_local_objs.
|
||||||
|
|
||||||
|
DATA: lt_tadir TYPE lif_defs=>ty_tadir_tt,
|
||||||
|
lt_tadir_unique TYPE HASHED TABLE OF lif_defs=>ty_tadir
|
||||||
|
WITH UNIQUE KEY pgmid object obj_name,
|
||||||
|
lt_local TYPE lif_defs=>ty_files_item_tt,
|
||||||
|
lt_remote TYPE lif_defs=>ty_files_tt,
|
||||||
|
lt_status TYPE lif_defs=>ty_results_tt,
|
||||||
|
lt_package TYPE lcl_persistence_repo=>ty_repo-package.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <status> TYPE lif_defs=>ty_result,
|
||||||
|
<tadir> TYPE lif_defs=>ty_tadir.
|
||||||
|
|
||||||
|
" delete objects which are added locally but are not in remote repo
|
||||||
|
lt_local = me->get_files_local( ).
|
||||||
|
lt_remote = me->get_files_remote( ).
|
||||||
|
lt_status = me->status( ).
|
||||||
|
|
||||||
|
lt_package = me->get_package( ).
|
||||||
|
lt_tadir = lcl_tadir=>read( lt_package ).
|
||||||
|
|
||||||
|
LOOP AT lt_status ASSIGNING <status>
|
||||||
|
WHERE lstate = lif_defs=>gc_state-added.
|
||||||
|
|
||||||
|
READ TABLE lt_tadir ASSIGNING <tadir>
|
||||||
|
WITH KEY pgmid = 'R3TR'
|
||||||
|
object = <status>-obj_type
|
||||||
|
obj_name = <status>-obj_name
|
||||||
|
devclass = <status>-package
|
||||||
|
BINARY SEARCH.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
|
INSERT <tadir> INTO TABLE lt_tadir_unique.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
rt_unnecessary_local_objects = lt_tadir_unique.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS. "lcl_repo_online IMPLEMENTATION
|
ENDCLASS. "lcl_repo_online IMPLEMENTATION
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
|
|
@ -48,8 +48,8 @@ CLASS lcl_services_git IMPLEMENTATION.
|
||||||
METHOD reset.
|
METHOD reset.
|
||||||
|
|
||||||
DATA: lo_repo TYPE REF TO lcl_repo_online,
|
DATA: lo_repo TYPE REF TO lcl_repo_online,
|
||||||
lv_answer TYPE c LENGTH 1.
|
lv_answer TYPE c LENGTH 1,
|
||||||
|
lt_unnecessary_local_objs TYPE lif_defs=>ty_tadir_tt.
|
||||||
|
|
||||||
lo_repo ?= lcl_app=>repo_srv( )->get( iv_key ).
|
lo_repo ?= lcl_app=>repo_srv( )->get( iv_key ).
|
||||||
|
|
||||||
|
@ -71,6 +71,26 @@ CLASS lcl_services_git IMPLEMENTATION.
|
||||||
RAISE EXCEPTION TYPE lcx_cancel.
|
RAISE EXCEPTION TYPE lcx_cancel.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
lt_unnecessary_local_objs = lo_repo->get_unnecessary_local_objs( ).
|
||||||
|
|
||||||
|
IF lines( lt_unnecessary_local_objs ) > 0.
|
||||||
|
|
||||||
|
lv_answer = lcl_popups=>popup_to_confirm(
|
||||||
|
titlebar = 'Question'
|
||||||
|
text_question = |Delete { lines( lt_unnecessary_local_objs ) } unnecessary local objects?|
|
||||||
|
text_button_1 = 'Yes'
|
||||||
|
icon_button_1 = 'ICON_OKAY'
|
||||||
|
text_button_2 = 'No'
|
||||||
|
icon_button_2 = 'ICON_CANCEL'
|
||||||
|
default_button = '2'
|
||||||
|
display_cancel_button = abap_false ). "#EC NOTEXT
|
||||||
|
|
||||||
|
IF lv_answer = '1'.
|
||||||
|
lo_repo->delete_unnecessary_local_objs( ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
lo_repo->deserialize( ).
|
lo_repo->deserialize( ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user