anchor.diff:          !it_cur_state     TYPE zif_abapgit_definitions=>ty_file_signatures_tt
         RETURNING
           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
  +        !iv_devclass  TYPE devclass
  +        !io_dot       TYPE REF TO zcl_abapgit_dot_abapgit
  +        !it_local     TYPE zif_abapgit_definitions=>ty_files_item_tt
  +        !it_state_idx TYPE zif_abapgit_definitions=>ty_file_signatures_ts
  +      CHANGING
  +        !ct_remote    TYPE zif_abapgit_definitions=>ty_files_tt
  +        !ct_items     TYPE zif_abapgit_definitions=>ty_items_tt
  +        !ct_results   TYPE zif_abapgit_definitions=>ty_results_tt
  +      RAISING
  +        zcx_abapgit_exception .
  +    CLASS-METHODS process_items
  +      IMPORTING
  +        !iv_devclass TYPE devclass
  +        !io_dot      TYPE REF TO zcl_abapgit_dot_abapgit
  +        !it_local    TYPE zif_abapgit_definitions=>ty_files_item_tt
  +        !it_remote   TYPE zif_abapgit_definitions=>ty_files_tt
  +      CHANGING
  +        !ct_items    TYPE zif_abapgit_definitions=>ty_items_tt
  +      RAISING
  +        zcx_abapgit_exception .
  +    CLASS-METHODS process_remote
  +      IMPORTING
  +        !iv_devclass  TYPE devclass
  +        !io_dot       TYPE REF TO zcl_abapgit_dot_abapgit
  +        !it_local     TYPE zif_abapgit_definitions=>ty_files_item_tt
  +        !it_remote    TYPE zif_abapgit_definitions=>ty_files_tt
  +        !it_state_idx TYPE zif_abapgit_definitions=>ty_file_signatures_ts
  +        !it_items_idx TYPE zif_abapgit_definitions=>ty_items_ts
  +      CHANGING
  +        !ct_results   TYPE zif_abapgit_definitions=>ty_results_tt
         RAISING
           zcx_abapgit_exception .
       CLASS-METHODS run_checks
  
positive.code:         ENDIF.
        ENDIF.
  
        APPEND ls_item TO lt_items.
      ENDLOOP.
  
      SORT lt_items DESCENDING. " Default key - type, name, pkg, inactive
      DELETE ADJACENT DUPLICATES FROM lt_items COMPARING obj_type obj_name devclass.
      lt_items_idx = lt_items. " Self protection + UNIQUE records assertion
  
      " Process new remote files (marked above with empty SHA1)
      LOOP AT lt_remote ASSIGNING <ls_remote> WHERE sha1 IS NOT INITIAL.
        APPEND INITIAL LINE TO rt_results ASSIGNING <ls_result>.
        <ls_result> = build_new_remote( iv_devclass = iv_devclass
                                        io_dot      = io_dot
                                        is_remote   = <ls_remote>
                                        it_items    = lt_items_idx
                                        it_state    = lt_state_idx ).
        " Check if same file exists in different location
        READ TABLE it_local ASSIGNING <ls_local>
          WITH KEY file-filename = <ls_remote>-filename.
  
negative.code:           lv_sub_fetched = abap_true.
            SORT lt_sub_packages BY table_line. "Optimize Read Access
          ENDIF.
  
          " Make sure the package is under the repo main package
          READ TABLE lt_sub_packages TRANSPORTING NO FIELDS
            WITH KEY table_line = ls_item-devclass
  