anchor.diff:  
   
   
  -CLASS ZCL_ABAPGIT_BRANCH_OVERVIEW IMPLEMENTATION.
  +CLASS zcl_abapgit_branch_overview IMPLEMENTATION.
   
   
     METHOD constructor.
  
positive.code:       EXIT.
      ENDLOOP.
  
      LOOP AT mt_branches ASSIGNING <ls_branch>.
        lv_name = <ls_branch>-name+11.
        READ TABLE mt_commits ASSIGNING <ls_commit> WITH KEY sha1 = <ls_branch>-sha1.
        ASSERT sy-subrc = 0.
  
        DO.
          IF <ls_commit>-branch IS INITIAL.
            <ls_commit>-branch = lv_name.
          ELSE.
            APPEND INITIAL LINE TO <ls_commit>-create ASSIGNING <ls_create>.
            <ls_create>-name = lv_name.
            <ls_create>-parent = <ls_commit>-branch.
            EXIT.
          ENDIF.
  
negative.code: 
      CONSTANTS: lc_head TYPE string VALUE 'HEAD'.
  
      TYPES: BEGIN OF ty_branch_with_time,
               time TYPE string,
               name TYPE string,
               sha1 TYPE zif_abapgit_definitions=>ty_sha1,
             END OF ty_branch_with_time.
  
      DATA: lt_branches_sorted_by_time TYPE SORTED TABLE OF ty_branch_with_time WITH NON-UNIQUE KEY time,
            ls_branches_with_time      TYPE ty_branch_with_time.
  
      FIELD-SYMBOLS: <ls_branch>                LIKE LINE OF mt_branches,
                     <ls_branch_sorted_by_time> LIKE LINE OF lt_branches_sorted_by_time,
                     <ls_head>                  LIKE LINE OF mt_branches,
                     <ls_commit>                LIKE LINE OF mt_commits,
                     <ls_create>                LIKE LINE OF <ls_commit>-create.
  
  
  * Exchange HEAD, and make sure the branch determination starts with the HEAD branch
      READ TABLE mt_branches ASSIGNING <ls_head> WITH KEY name = lc_head.
      ASSERT sy-subrc = 0.
      LOOP AT mt_branches ASSIGNING <ls_branch>
  