anchor.diff:        ls_fils_item-item-obj_type = <ls_tadir>-object.
         ls_fils_item-item-obj_name = <ls_tadir>-obj_name.
         ls_fils_item-item-devclass = <ls_tadir>-devclass.
  -      IF mv_last_serialization IS NOT INITIAL. " Try to fetch from cache
  -        READ TABLE lt_cache TRANSPORTING NO FIELDS
  -          WITH KEY item = ls_fils_item-item. " type+name+package key
  -        " There is something in cache and the object is unchanged
  -        IF sy-subrc = 0
  -            AND abap_false = zcl_abapgit_objects=>has_changed_since(
  -            is_item      = ls_fils_item-item
  -            iv_timestamp = mv_last_serialization ).
  -          LOOP AT lt_cache ASSIGNING <ls_cache> WHERE item = ls_fils_item-item.
  -            APPEND <ls_cache> TO rt_files.
  -          ENDLOOP.
  -
  -          CONTINUE.
  -        ENDIF.
  +
  +      lt_found = lookup_cache( is_item = ls_fils_item-item
  +                               it_cache = lt_cache ).
  +      IF lines( lt_found ) > 0.
  +        APPEND LINES OF lt_found TO rt_files.
  +        CONTINUE.
         ENDIF.
   
         ls_fils_item = zcl_abapgit_objects=>serialize(
           is_item     = ls_fils_item-item
           iv_language = get_dot_abapgit( )->get_master_language( )
           io_log      = io_log ).
  -
   
         LOOP AT ls_fils_item-files ASSIGNING <ls_file>.
           <ls_file>-path = <ls_tadir>-path.
  
positive.code:       io_dot                = get_dot_abapgit( )
        io_log                = io_log ).
  
      lt_filter = it_filter.
      lv_filter_exist = boolc( lines( lt_filter ) > 0 ).
  
      CREATE OBJECT lo_progress
        EXPORTING
          iv_total = lines( lt_tadir ).
  
      LOOP AT lt_tadir ASSIGNING <ls_tadir>.
        IF lv_filter_exist = abap_true.
          READ TABLE lt_filter TRANSPORTING NO FIELDS WITH KEY object = <ls_tadir>-object
                                                               obj_name = <ls_tadir>-obj_name
                                                      BINARY SEARCH.
          IF sy-subrc <> 0.
            CONTINUE.
          ENDIF.
        ENDIF.
  
        lo_progress->show(
          iv_current = sy-tabix
  
negative.code:   ENDMETHOD.
  
  
    METHOD lookup_cache.
  
      FIELD-SYMBOLS: <ls_cache> LIKE LINE OF it_cache.
  
  
      IF mv_last_serialization IS NOT INITIAL. " Try to fetch from cache
        READ TABLE it_cache TRANSPORTING NO FIELDS
          WITH KEY item = is_item. " type+name+package key
        " There is something in cache and the object is unchanged
        IF sy-subrc = 0
            AND abap_false = zcl_abapgit_objects=>has_changed_since(
            is_item      = is_item
            iv_timestamp = mv_last_serialization ).
          LOOP AT it_cache ASSIGNING <ls_cache> WHERE item = is_item.
            APPEND <ls_cache> TO rt_found.
          ENDLOOP.
        ENDIF.
      ENDIF.
  
    ENDMETHOD.
  
  
    METHOD rebuild_local_checksums.
  
      DATA:
        lt_local     TYPE zif_abapgit_definitions=>ty_files_item_tt,
        ls_last_item TYPE zif_abapgit_definitions=>ty_item,
        lt_checksums TYPE zif_abapgit_persistence=>ty_local_checksum_tt.
  
      FIELD-SYMBOLS:
        <ls_checksum> LIKE LINE OF lt_checksums,
        <ls_file_sig> LIKE LINE OF <ls_checksum>-files,
        <ls_local>    LIKE LINE OF lt_local.
  
      lt_local = get_files_local( ).
  
  