anchor.diff:  
   ENDCLASS.
   
  -CLASS zcl_abapgit_object_vcls IMPLEMENTATION.
  -
  -  METHOD zif_abapgit_object~has_changed_since.
  -    rv_changed = abap_true.
  -  ENDMETHOD.  "zif_abapgit_object~has_changed_since
  +
  +
  +CLASS ZCL_ABAPGIT_OBJECT_VCLS IMPLEMENTATION.
  +
   
     METHOD zif_abapgit_object~changed_by.
       rv_user = c_user_unknown. " todo
     ENDMETHOD.
   
  -  METHOD zif_abapgit_object~get_metadata.
  -    rs_metadata = get_metadata( ).
  -  ENDMETHOD.                    "zif_abapgit_object~get_metadata
  -
  -  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~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.
  +
  +  METHOD zif_abapgit_object~compare_to_remote_version.
  +    CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
  +  ENDMETHOD.
  +
  +
  +  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.
   
  -    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
  +    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~deserialize.
   
  
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.
  