diff --git a/src/objects/core/zcl_abapgit_file_status.clas.abap b/src/objects/core/zcl_abapgit_file_status.clas.abap index bf7249557..8217f0d07 100644 --- a/src/objects/core/zcl_abapgit_file_status.clas.abap +++ b/src/objects/core/zcl_abapgit_file_status.clas.abap @@ -27,14 +27,6 @@ CLASS zcl_abapgit_file_status DEFINITION VALUE(rt_results) TYPE zif_abapgit_definitions=>ty_results_tt RAISING zcx_abapgit_exception . - CLASS-METHODS prepare_remote - IMPORTING - !io_dot TYPE REF TO zcl_abapgit_dot_abapgit - !it_remote TYPE zif_abapgit_definitions=>ty_files_tt - RETURNING - VALUE(rt_remote) TYPE zif_abapgit_definitions=>ty_files_tt - RAISING - zcx_abapgit_exception . CLASS-METHODS process_local IMPORTING !io_dot TYPE REF TO zcl_abapgit_dot_abapgit @@ -282,10 +274,7 @@ CLASS ZCL_ABAPGIT_FILE_STATUS IMPLEMENTATION. lt_state_idx = it_cur_state. " Force sort it - " Prepare remote files - lt_remote = prepare_remote( - io_dot = io_dot - it_remote = it_remote ). + lt_remote = it_remote. " Process local files and new local files process_local( @@ -520,27 +509,6 @@ CLASS ZCL_ABAPGIT_FILE_STATUS IMPLEMENTATION. ENDMETHOD. - METHOD prepare_remote. - - DATA lv_index TYPE sy-index. - - FIELD-SYMBOLS LIKE LINE OF it_remote. - - rt_remote = it_remote. - SORT rt_remote BY path filename. - - " Skip ignored files - LOOP AT rt_remote ASSIGNING . - lv_index = sy-tabix. - IF io_dot->is_ignored( iv_path = -path - iv_filename = -filename ) = abap_true. - DELETE rt_remote INDEX lv_index. - ENDIF. - ENDLOOP. - - ENDMETHOD. - - METHOD process_items. DATA: @@ -774,7 +742,7 @@ CLASS ZCL_ABAPGIT_FILE_STATUS IMPLEMENTATION. io_repo->find_remote_dot_abapgit( ). ENDIF. - lt_remote = io_repo->get_files_remote( ). + lt_remote = io_repo->get_files_remote( iv_ignore_files = abap_true ). li_exit = zcl_abapgit_exit=>get_instance( ). li_exit->pre_calculate_repo_status( diff --git a/src/objects/zcl_abapgit_objects.clas.abap b/src/objects/zcl_abapgit_objects.clas.abap index 28891f564..7ff01bfda 100644 --- a/src/objects/zcl_abapgit_objects.clas.abap +++ b/src/objects/zcl_abapgit_objects.clas.abap @@ -610,7 +610,7 @@ CLASS zcl_abapgit_objects IMPLEMENTATION. zcl_abapgit_objects_activation=>clear( ). - lt_remote = io_repo->get_files_remote( ). + lt_remote = io_repo->get_files_remote( iv_ignore_files = abap_true ). lt_results = zcl_abapgit_file_deserialize=>get_results( io_repo = io_repo diff --git a/src/repo/zcl_abapgit_repo.clas.abap b/src/repo/zcl_abapgit_repo.clas.abap index 923c60e52..fca53c1a0 100644 --- a/src/repo/zcl_abapgit_repo.clas.abap +++ b/src/repo/zcl_abapgit_repo.clas.abap @@ -56,7 +56,7 @@ CLASS zcl_abapgit_repo DEFINITION RAISING zcx_abapgit_exception . METHODS has_remote_source - ABSTRACT + ABSTRACT RETURNING VALUE(rv_yes) TYPE abap_bool . METHODS status @@ -94,6 +94,11 @@ CLASS zcl_abapgit_repo DEFINITION VALUE(rt_objects) TYPE zif_abapgit_definitions=>ty_items_tt RAISING zcx_abapgit_exception . + METHODS remove_ignored_files + CHANGING + ct_files TYPE zif_abapgit_definitions=>ty_files_tt + RAISING + zcx_abapgit_exception . PROTECTED SECTION. DATA mt_local TYPE zif_abapgit_definitions=>ty_files_item_tt . @@ -447,6 +452,11 @@ CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION. ct_files = rt_files ). ENDIF. + + IF iv_ignore_files = abap_true. + remove_ignored_files( CHANGING ct_files = rt_files ). + ENDIF. + ENDMETHOD. @@ -586,6 +596,27 @@ CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION. ENDMETHOD. + METHOD remove_ignored_files. + + DATA lo_dot TYPE REF TO zcl_abapgit_dot_abapgit. + DATA lv_index TYPE sy-index. + + FIELD-SYMBOLS LIKE LINE OF ct_files. + + lo_dot = get_dot_abapgit( ). + + " Skip ignored files + LOOP AT ct_files ASSIGNING . + lv_index = sy-tabix. + IF lo_dot->is_ignored( iv_path = -path + iv_filename = -filename ) = abap_true. + DELETE ct_files INDEX lv_index. + ENDIF. + ENDLOOP. + + ENDMETHOD. + + METHOD reset_remote. CLEAR mt_remote. mv_request_remote_refresh = abap_true. diff --git a/src/repo/zcl_abapgit_repo_online.clas.abap b/src/repo/zcl_abapgit_repo_online.clas.abap index a7873df44..59db7d897 100644 --- a/src/repo/zcl_abapgit_repo_online.clas.abap +++ b/src/repo/zcl_abapgit_repo_online.clas.abap @@ -134,7 +134,9 @@ CLASS ZCL_ABAPGIT_REPO_ONLINE IMPLEMENTATION. METHOD get_files_remote. fetch_remote( ). - rt_files = super->get_files_remote( ii_obj_filter ). + rt_files = super->get_files_remote( + ii_obj_filter = ii_obj_filter + iv_ignore_files = iv_ignore_files ). ENDMETHOD. diff --git a/src/repo/zif_abapgit_repo.intf.abap b/src/repo/zif_abapgit_repo.intf.abap index 57eef25ff..91a5612cb 100644 --- a/src/repo/zif_abapgit_repo.intf.abap +++ b/src/repo/zif_abapgit_repo.intf.abap @@ -31,16 +31,18 @@ INTERFACE zif_abapgit_repo zcx_abapgit_exception . METHODS get_files_remote IMPORTING - ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL + !ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL + !iv_ignore_files TYPE abap_bool DEFAULT abap_false + PREFERRED PARAMETER ii_obj_filter RETURNING - VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_files_tt + VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_files_tt RAISING zcx_abapgit_exception . METHODS refresh IMPORTING !iv_drop_cache TYPE abap_bool DEFAULT abap_false !iv_drop_log TYPE abap_bool DEFAULT abap_true - PREFERRED PARAMETER iv_drop_cache + PREFERRED PARAMETER iv_drop_cache RAISING zcx_abapgit_exception . METHODS get_dot_abapgit