diff --git a/src/zabapgit_definitions.prog.abap b/src/zabapgit_definitions.prog.abap index 340e64e16..991ea4333 100644 --- a/src/zabapgit_definitions.prog.abap +++ b/src/zabapgit_definitions.prog.abap @@ -28,6 +28,7 @@ TYPES: BEGIN OF ty_comment, TYPES: BEGIN OF ty_item, obj_type TYPE tadir-object, obj_name TYPE tadir-obj_name, + devclass TYPE devclass, END OF ty_item. TYPES: BEGIN OF ty_file_item, diff --git a/src/zabapgit_file_status.prog.abap b/src/zabapgit_file_status.prog.abap index 105c3b2dd..23b7f409e 100644 --- a/src/zabapgit_file_status.prog.abap +++ b/src/zabapgit_file_status.prog.abap @@ -95,7 +95,8 @@ CLASS lcl_file_status IMPLEMENTATION. ls_item-obj_name = lv_pre. CLEAR lt_files. - LOOP AT lt_local ASSIGNING WHERE item = ls_item. + LOOP AT lt_local ASSIGNING + WHERE item-obj_type = ls_item-obj_type AND item-obj_name = ls_item-obj_name. APPEND -file TO lt_files. ENDLOOP. diff --git a/src/zabapgit_repo_impl.prog.abap b/src/zabapgit_repo_impl.prog.abap index a953cc094..9b8cebb80 100644 --- a/src/zabapgit_repo_impl.prog.abap +++ b/src/zabapgit_repo_impl.prog.abap @@ -418,11 +418,13 @@ CLASS lcl_repo IMPLEMENTATION. ls_item-obj_type = -object. ls_item-obj_name = -obj_name. + ls_item-devclass = -devclass. IF mv_last_serialization IS NOT INITIAL. " Try to fetch from cache READ TABLE lt_cache TRANSPORTING NO FIELDS - WITH KEY item = ls_item. - IF sy-subrc = 0 " There is something in cache and the object is unchanged + WITH KEY item = ls_item. " type+name+package key + " There is something in cache and the object is unchanged + IF sy-subrc = 0 AND abap_false = lcl_objects=>has_changed_since( is_item = ls_item iv_timestamp = mv_last_serialization ). LOOP AT lt_cache ASSIGNING WHERE item = ls_item.