diff --git a/src/zabapgit_app_impl.prog.abap b/src/zabapgit_app_impl.prog.abap index 9af5079b0..f41691290 100644 --- a/src/zabapgit_app_impl.prog.abap +++ b/src/zabapgit_app_impl.prog.abap @@ -67,4 +67,4 @@ CLASS lcl_app IMPLEMENTATION. ro_settings = go_settings. ENDMETHOD. -ENDCLASS. "lcl_app \ No newline at end of file +ENDCLASS. "lcl_app diff --git a/src/zabapgit_file_status.prog.abap b/src/zabapgit_file_status.prog.abap index 2bc1e77de..c81453dae 100644 --- a/src/zabapgit_file_status.prog.abap +++ b/src/zabapgit_file_status.prog.abap @@ -63,8 +63,9 @@ CLASS lcl_file_status IMPLEMENTATION. rt_results = calculate_status( + iv_devclass = io_repo->get_package( ) - it_local = io_repo->get_files_local( io_log ) + it_local = io_repo->get_files_local( io_log = io_log ) it_remote = io_repo->get_files_remote( ) it_cur_state = io_repo->get_local_checksums_per_file( ) ). @@ -295,4 +296,4 @@ CLASS lcl_file_status IMPLEMENTATION. ENDMETHOD. "build_new_remote -ENDCLASS. "lcl_file_status IMPLEMENTATION \ No newline at end of file +ENDCLASS. "lcl_file_status IMPLEMENTATION diff --git a/src/zabapgit_repo.prog.abap b/src/zabapgit_repo.prog.abap index 6d6eb40b5..8353d11d9 100644 --- a/src/zabapgit_repo.prog.abap +++ b/src/zabapgit_repo.prog.abap @@ -18,6 +18,7 @@ CLASS lcl_repo DEFINITION ABSTRACT FRIENDS lcl_repo_srv. RAISING lcx_exception, get_files_local IMPORTING io_log TYPE REF TO lcl_log OPTIONAL + it_filter TYPE scts_tadir OPTIONAL RETURNING VALUE(rt_files) TYPE ty_files_item_tt RAISING lcx_exception, get_local_checksums @@ -223,4 +224,4 @@ CLASS lcl_repo_srv DEFINITION FINAL CREATE PRIVATE FRIENDS lcl_app. IMPORTING iv_package TYPE devclass RAISING lcx_exception. -ENDCLASS. "lcl_repo_srv DEFINITION \ No newline at end of file +ENDCLASS. "lcl_repo_srv DEFINITION diff --git a/src/zabapgit_repo_impl.prog.abap b/src/zabapgit_repo_impl.prog.abap index 364f8a55b..36b8f7cce 100644 --- a/src/zabapgit_repo_impl.prog.abap +++ b/src/zabapgit_repo_impl.prog.abap @@ -504,10 +504,13 @@ CLASS lcl_repo IMPLEMENTATION. DATA: lt_tadir TYPE ty_tadir_tt, ls_item TYPE ty_item, - lt_files TYPE ty_files_tt. + lt_files TYPE ty_files_tt, + lt_cache TYPE SORTED TABLE OF ty_file_item + WITH NON-UNIQUE KEY item. - DATA: lt_cache TYPE SORTED TABLE OF ty_file_item - WITH NON-UNIQUE KEY item. + DATA: lt_filter TYPE SORTED TABLE OF tadir + WITH NON-UNIQUE KEY object obj_name, + lv_filter_exist TYPE abap_bool. FIELD-SYMBOLS: LIKE LINE OF lt_files, LIKE LINE OF rt_files, @@ -533,7 +536,19 @@ CLASS lcl_repo IMPLEMENTATION. lt_cache = mt_local. lt_tadir = lcl_tadir=>read( get_package( ) ). + + lt_filter = it_filter. + lv_filter_exist = boolc( lines( lt_filter ) > 0 ) . + LOOP AT lt_tadir ASSIGNING . + IF lv_filter_exist = abap_true. + READ TABLE lt_filter TRANSPORTING NO FIELDS WITH KEY object = -object + obj_name = -obj_name + BINARY SEARCH. + IF sy-subrc <> 0. + CONTINUE. + ENDIF. + ENDIF. lcl_progress=>show( iv_key = 'Serialize' iv_current = sy-tabix @@ -923,4 +938,4 @@ CLASS lcl_repo_srv IMPLEMENTATION. ENDMETHOD. "switch_repo_type -ENDCLASS. "lcl_repo_srv IMPLEMENTATION \ No newline at end of file +ENDCLASS. "lcl_repo_srv IMPLEMENTATION diff --git a/src/zabapgit_zip.prog.abap b/src/zabapgit_zip.prog.abap index 497f0b474..b27607ed9 100644 --- a/src/zabapgit_zip.prog.abap +++ b/src/zabapgit_zip.prog.abap @@ -404,25 +404,13 @@ CLASS lcl_zip IMPLEMENTATION. CREATE OBJECT lo_log. - lt_zip = io_repo->get_files_local( lo_log ). + lt_zip = io_repo->get_files_local( io_log = lo_log + it_filter = it_filter ). IF lo_log->count( ) > 0. lo_log->show( ). ENDIF. - IF lines( it_filter ) > 0. - LOOP AT lt_zip ASSIGNING . - lv_index = sy-tabix. - READ TABLE it_filter WITH KEY - object = -item-obj_type - obj_name = -item-obj_name - TRANSPORTING NO FIELDS. - IF sy-subrc <> 0. - DELETE lt_zip INDEX lv_index. - ENDIF. - ENDLOOP. - ENDIF. - file_download( iv_package = io_repo->get_package( ) iv_xstr = encode_files( lt_zip ) ). @@ -551,4 +539,4 @@ CLASS lcl_zip IMPLEMENTATION. ENDMETHOD. "export_package -ENDCLASS. "lcl_zip IMPLEMENTATION \ No newline at end of file +ENDCLASS. "lcl_zip IMPLEMENTATION