anchor.diff:      ENDIF.
       ls_commit = lcl_git_pack=>decode_commit( ls_object-data ).
   
  -    READ TABLE it_objects INTO ls_object
  -      WITH KEY sha1 = ls_commit-tree type = gc_type-tree.
  -    IF sy-subrc <> 0.
  -      _raise 'tree not found'.
  -    ENDIF.
  -    rt_nodes = lcl_git_pack=>decode_tree( ls_object-data ).
  +    rt_expanded = walk_tree( it_objects = it_objects
  +                             iv_tree    = ls_commit-tree
  +                             iv_base    = '/' ).
   
     ENDMETHOD.                    "root_tree
   
  
positive.code:       CHANGING  ct_files   TYPE ty_files_tt
        RAISING   lcx_exception.
  
      CLASS-METHODS root_tree
        IMPORTING it_objects      TYPE lcl_git_pack=>ty_objects_tt
                  iv_branch       TYPE ty_sha1
        RETURNING VALUE(rt_nodes) TYPE lcl_git_pack=>ty_nodes_tt
        RAISING   lcx_exception.
  
      CLASS-METHODS receive_pack
        IMPORTING is_comment       TYPE ty_comment
                  io_repo          TYPE REF TO lcl_repo_online
                  it_nodes         TYPE lcl_git_pack=>ty_nodes_tt
                  it_files         TYPE ty_files_tt
                  iv_branch        TYPE ty_sha1
        RETURNING VALUE(rv_branch) TYPE ty_sha1
        RAISING   lcx_exception.
  
negative.code:     SORT lt_nodes BY name ASCENDING.
  
      LOOP AT lt_nodes ASSIGNING <ls_node>.
        ASSERT NOT <ls_node>-chmod IS INITIAL.
        ASSERT NOT <ls_node>-name IS INITIAL.
        ASSERT NOT <ls_node>-sha1 IS INITIAL.
  
        CONCATENATE <ls_node>-chmod <ls_node>-name INTO lv_string SEPARATED BY space.
        lv_xstring = lcl_convert=>string_to_xstring_utf8( lv_string ).
  
  