anchor.diff:  
     PRIVATE SECTION.
   
  +    TYPES: BEGIN OF ty_popup,
  +             url         TYPE string,
  +             package     TYPE devclass,
  +             branch_name TYPE string,
  +             cancel      TYPE abap_bool,
  +           END OF ty_popup.
  +
       METHODS get_page_by_name
         IMPORTING iv_name        TYPE clike
         RETURNING VALUE(ri_page) TYPE REF TO lif_gui_page
  +      RAISING   lcx_exception.
  +
  +    METHODS repo_popup
  +      IMPORTING iv_url          TYPE string
  +                iv_package      TYPE devclass OPTIONAL
  +                iv_branch       TYPE string DEFAULT 'refs/heads/master'
  +      RETURNING VALUE(rs_popup) TYPE ty_popup
         RAISING   lcx_exception.
   
       METHODS get_page_diff
  
positive.code:                    iv_act = |remove?{ lv_key }| ).
        lo_sub->add( iv_txt = 'Uninstall'
                     iv_act = |uninstall?{ lv_key }| ).
        lo_sub->add( iv_txt = 'Change branch'
                     iv_act = |change_branch?{ lv_key }| ).
        lo_sub->add( iv_txt = 'Reset'
                     iv_act = |reset?{ lv_key }| ).
        lo_sub->add( iv_txt = 'Create branch'
  
negative.code: 
    ENDMETHOD.                    "repo_package_zip
  
    METHOD switch_branch.
  
      DATA: lo_repo  TYPE REF TO lcl_repo_online,
            ls_popup TYPE ty_popup.
  
  
      lo_repo ?= lcl_app=>repo_srv( )->get( iv_key ).
  
      ls_popup = repo_popup(
        iv_url     = lo_repo->get_url( )
        iv_package = lo_repo->get_package( )
        iv_branch  = lo_repo->get_branch_name( ) ).
      IF ls_popup-cancel = abap_true.
        RETURN.
      ENDIF.
  
  
      CALL FUNCTION 'POPUP_TO_INFORM'
        EXPORTING
          titel = 'todo'
          txt1  = 'see https://github.com/larshp/abapGit/issues/265'
          txt2  = '' ##NO_TEXT.
  
  *1. updating the mv_branch field to the sha1 of the new branch.
  *2. Update the persisted branch name
  *3. call lcl_repo_online->deserialize.
  
    ENDMETHOD.
  
  