anchor.diff:  
     ENDMETHOD.                    "deserialize
   
  -  METHOD zif_abapgit_object~delete.
  -* Do the same as in VIEWCLUSTER_SAVE_DEFINITION
  -    DATA: lv_vclname TYPE vcl_name.
  -
  -
  -    lv_vclname = ms_item-obj_name.
  -
  -    DELETE FROM vcldir WHERE vclname = lv_vclname.        "#EC CI_SUBRC
  -    DELETE FROM vcldirt WHERE vclname = lv_vclname. "#EC CI_NOFIRST "#EC CI_SUBRC
  -    DELETE FROM vclstruc WHERE vclname = lv_vclname.      "#EC CI_SUBRC
  -    DELETE FROM vclstruct WHERE vclname = lv_vclname. "#EC CI_NOFIRST "#EC CI_SUBRC
  -    DELETE FROM vclstrudep WHERE vclname = lv_vclname.    "#EC CI_SUBRC
  -    DELETE FROM vclmf WHERE vclname = lv_vclname.         "#EC CI_SUBRC
  -
  -  ENDMETHOD.                    "delete
  +
  +  METHOD zif_abapgit_object~exists.
  +
  +    DATA lv_changedate TYPE vcldir-changedate.
  +
  +    SELECT SINGLE changedate INTO lv_changedate FROM vcldir
  +      WHERE vclname = ms_item-obj_name.
  +
  +    rv_bool = boolc( sy-subrc = 0 ).
  +
  +    IF lv_changedate IS INITIAL.
  +* same logic as in function module VIEWCLUSTER_GET_DEFINITION
  +      rv_bool = abap_false.
  +    ENDIF.
  +
  +  ENDMETHOD.                    "zif_abapgit_object~exists
  +
  +
  +  METHOD zif_abapgit_object~get_metadata.
  +    rs_metadata = get_metadata( ).
  +    rs_metadata-delete_tadir = abap_true.
  +  ENDMETHOD.
  +
  +
  +  METHOD zif_abapgit_object~has_changed_since.
  +    rv_changed = abap_true.
  +  ENDMETHOD.  "zif_abapgit_object~has_changed_since
  +
  +
  +  METHOD zif_abapgit_object~is_locked.
  +
  +    rv_is_locked = abap_false.
  +
  +  ENDMETHOD.
  +
   
     METHOD zif_abapgit_object~jump.
   
  
positive.code:         vclstruc_tab   = lt_vclstruc
          vclstrudep_tab = lt_vclstrudep
          vclmf_tab      = lt_vclmf.
  
      lv_objectname = ls_vcldir_entry-vclname.
      CALL FUNCTION 'OBJ_GENERATE'
  
negative.code: 
    ENDMETHOD.                    "jump
  
  
    METHOD zif_abapgit_object~serialize.
  
      DATA: lv_vclname      TYPE vcl_name,
            ls_vcldir_entry TYPE v_vcldir,
            lt_vclstruc     TYPE TABLE OF v_vclstruc,
            lt_vclstrudep   TYPE TABLE OF v_vclstdep,
            lt_vclmf        TYPE TABLE OF v_vclmf.
  
  
      IF zif_abapgit_object~exists( ) = abap_false.
        RETURN.
      ENDIF.
  
      lv_vclname = ms_item-obj_name.
  
      CALL FUNCTION 'VIEWCLUSTER_GET_DEFINITION'
        EXPORTING
          vclname                = lv_vclname
        IMPORTING
          vcldir_entry           = ls_vcldir_entry
        TABLES
          vclstruc_tab           = lt_vclstruc
          vclstrudep_tab         = lt_vclstrudep
          vclmf_tab              = lt_vclmf
        EXCEPTIONS
          viewcluster_not_found  = 1
          incomplete_viewcluster = 2
          OTHERS                 = 3.
      IF sy-subrc <> 0.
        zcx_abapgit_exception=>raise( 'error in VIEWCLUSTER_GET_DEFINITION' ).
      ENDIF.
  
      CLEAR ls_vcldir_entry-author.
  
      io_xml->add( iv_name = 'VCLDIR'
                   ig_data = ls_vcldir_entry ).
      io_xml->add( iv_name = 'VLCSTRUC_TAB'
                   ig_data = lt_vclstruc ).
      io_xml->add( iv_name = 'VCLSTRUDEP_TAB'
                   ig_data = lt_vclstrudep ).
      io_xml->add( iv_name = 'VCLMF_TAB'
                   ig_data = lt_vclmf ).
  
    ENDMETHOD.                    "serialize
  ENDCLASS.
  