anchor.diff:  
     ENDMETHOD.                    "on_event
   
  +  METHOD uninstall.
  +
  +    DATA: lt_tadir    TYPE TABLE OF tadir,
  +          lv_count    TYPE c LENGTH 3,
  +          ls_item     TYPE st_item,
  +          lv_answer   TYPE c LENGTH 1,
  +          lv_question TYPE c LENGTH 100.
  +
  +    FIELD-SYMBOLS: <ls_tadir> LIKE LINE OF lt_tadir.
  +
  +
  +    SELECT * FROM tadir INTO TABLE lt_tadir
  +      WHERE devclass = is_repo-package.                     "#EC *
  +
  +    IF lines( lt_tadir ) > 0.
  +      lv_count = lines( lt_tadir ).
  +
  +      CONCATENATE 'This will delete all objects in package' is_repo-package
  +        INTO lv_question
  +        SEPARATED BY space.                                 "#EC NOTEXT
  +
  +      CONCATENATE lv_question '(' lv_count 'objects)'
  +        INTO lv_question
  +        SEPARATED BY space.                                 "#EC NOTEXT
  +
  +      CALL FUNCTION 'POPUP_TO_CONFIRM'
  +        EXPORTING
  +          titlebar              = 'Uninstall'
  +          text_question         = lv_question
  +          text_button_1         = 'Delete'
  +          icon_button_1         = 'ICON_DELETE'
  +          text_button_2         = 'Cancel'
  +          icon_button_2         = 'ICON_CANCEL'
  +          default_button        = '2'
  +          display_cancel_button = abap_false
  +        IMPORTING
  +          answer                = lv_answer
  +        EXCEPTIONS
  +          text_not_found        = 1
  +          OTHERS                = 2.                        "#EC NOTEXT
  +      IF sy-subrc <> 0.
  +        _raise 'error from POPUP_TO_CONFIRM'.
  +      ENDIF.
  +
  +      IF lv_answer = '2'.
  +        RETURN.
  +      ENDIF.
  +
  +      LOOP AT lt_tadir ASSIGNING <ls_tadir>.
  +        CLEAR ls_item.
  +        ls_item-obj_type = <ls_tadir>-object.
  +        ls_item-obj_name = <ls_tadir>-obj_name.
  +        lcl_serialize=>delete( ls_item ).
  +      ENDLOOP.
  +
  +    ENDIF.
  +
  +    lcl_persistence=>delete( is_repo ).
  +
  +    view( render( ) ).
  +
  +  ENDMETHOD.                    "uninstall
  +
     METHOD add.
   
       DATA: lt_files    TYPE tt_files,
             ls_item     TYPE st_item,
             ls_comment  TYPE st_comment,
             lv_branch   TYPE t_sha1,
  +          ls_repo     TYPE st_repo,
             lt_fields   TYPE TABLE OF sval,
             lt_spopli   TYPE TABLE OF spopli,
             lv_answer   TYPE c.
  
positive.code:          branch_name TYPE string,
         END OF st_repo.
  
  TYPES: BEGIN OF st_repo_sha1,
           url         TYPE string,
           branch_name TYPE string,
           sha1        TYPE string,
         END OF st_repo_sha1.
  TYPES: tt_repos_sha1 TYPE STANDARD TABLE OF st_repo_sha1 WITH DEFAULT KEY.
  
  TYPES: BEGIN OF st_result,
           obj_type TYPE tadir-object,
  
negative.code:         ls_repo-branch_name = <ls_line>-tdline.
          CONTINUE. " current loop
        ENDIF.
        IF ls_repo-sha1 IS INITIAL.
          ls_repo-sha1 = <ls_line>-tdline.
          CONTINUE. " current loop
        ENDIF.
  
        ls_repo-package = <ls_line>-tdline.
        APPEND ls_repo TO rt_repos.
        CLEAR ls_repo.
      ENDLOOP.
  