anchor.diff:               base TYPE string,
              END OF ty_tree.
   
  -    DATA: lo_commit TYPE REF TO zcl_ags_obj_commit,
  -          lo_tree   TYPE REF TO zcl_ags_obj_tree,
  -          lt_files  TYPE zcl_ags_obj_tree=>ty_tree_tt,
  -          lt_trees  TYPE STANDARD TABLE OF ty_tree WITH DEFAULT KEY.
  +    DATA: lo_tree  TYPE REF TO zcl_ags_obj_tree,
  +          lt_files TYPE zcl_ags_obj_tree=>ty_tree_tt,
  +          lt_trees TYPE STANDARD TABLE OF ty_tree WITH DEFAULT KEY.
   
       FIELD-SYMBOLS:
         <ls_input_tree> LIKE LINE OF lt_trees,
  
positive.code:     DATA: lv_commit TYPE zags_sha1,
            lo_blob   TYPE REF TO zcl_ags_obj_blob,
            lt_files  TYPE ty_files_tt,
            lo_repo   TYPE REF TO zcl_ags_repo.
  
      FIELD-SYMBOLS: <ls_file> LIKE LINE OF lt_files.
  
negative.code: 
    METHOD list_files_extra.
  
      DATA: lo_commit TYPE REF TO zcl_ags_obj_commit,
            ls_pretty TYPE zcl_ags_obj_commit=>ty_pretty,
            lt_old    TYPE ty_files_tt.
  
      FIELD-SYMBOLS: <ls_old>    LIKE LINE OF lt_old,
                     <ls_output> LIKE LINE OF rt_files.
  
  
      CREATE OBJECT lo_commit
        EXPORTING
          iv_sha1 = iv_commit.
  
      rt_files = list_files_simple( lo_commit ).
  
  * todo, at some point in time this recursion will break
  * due to the number of commits
  * todo, also look at parent2
      IF NOT lo_commit->get( )-parent IS INITIAL.
        lt_old = list_files_extra( lo_commit->get( )-parent ).
  
        LOOP AT rt_files ASSIGNING <ls_output>.
          READ TABLE lt_old ASSIGNING <ls_old>
            WITH KEY filename = <ls_output>-filename.
          IF sy-subrc <> 0
              OR <ls_old>-sha1 <> <ls_output>-sha1.
            ls_pretty = lo_commit->get_pretty( ).
            <ls_output>-comment     = ls_pretty-text.
            <ls_output>-commit_sha1 = ls_pretty-sha1.
            <ls_output>-time        = ls_pretty-committer-time.
          ELSE.
            <ls_output>-comment     = <ls_old>-comment.
            <ls_output>-commit_sha1 = <ls_old>-commit_sha1.
  