anchor.diff:          deserialized_at TYPE string VALUE 'deserialized_at',
           stats           TYPE string VALUE 'stats',
           stats_table     TYPE string VALUE 'stats_table',
  -      END OF c_id.
  +      END OF c_id .
       CONSTANTS:
         BEGIN OF c_event,
           go_back TYPE string VALUE 'go-back',
           save    TYPE string VALUE 'save',
  -      END OF c_event.
  -
  +      END OF c_event .
       DATA mo_form TYPE REF TO zcl_abapgit_html_form .
       DATA mo_form_data TYPE REF TO zcl_abapgit_string_map .
  -
  -    DATA mo_repo TYPE REF TO zcl_abapgit_repo.
  -    DATA mt_stats TYPE STANDARD TABLE OF ty_stats WITH KEY measure.
  +    DATA mo_repo TYPE REF TO zcl_abapgit_repo .
  +    DATA:
  +      mt_stats TYPE STANDARD TABLE OF ty_stats WITH KEY measure .
   
       METHODS get_form_schema
         RETURNING
           VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form
         RAISING
  -        zcx_abapgit_exception.
  +        zcx_abapgit_exception .
       METHODS read_settings
         RAISING
  -        zcx_abapgit_exception.
  +        zcx_abapgit_exception .
       METHODS read_stats
         RAISING
  -        zcx_abapgit_exception.
  +        zcx_abapgit_exception .
  +    METHODS read_stats_files
  +      EXPORTING
  +        !et_local  TYPE zif_abapgit_definitions=>ty_files_item_tt
  +        !et_remote TYPE zif_abapgit_definitions=>ty_files_tt
  +      RAISING
  +        zcx_abapgit_exception .
  +    METHODS read_stats_state
  +      RAISING
  +        zcx_abapgit_exception .
  +    METHODS read_stats_size_lines_sloc
  +      IMPORTING
  +        !it_local        TYPE zif_abapgit_definitions=>ty_files_item_tt
  +        !it_remote       TYPE zif_abapgit_definitions=>ty_files_tt
  +      EXPORTING
  +        !et_local_items  TYPE zif_abapgit_definitions=>ty_items_tt
  +        !et_remote_items TYPE zif_abapgit_definitions=>ty_items_tt
  +      RAISING
  +        zcx_abapgit_exception .
  +    METHODS read_stats_file
  +      IMPORTING
  +        !is_file       TYPE zif_abapgit_definitions=>ty_file
  +      RETURNING
  +        VALUE(rs_info) TYPE ty_infos .
  +    METHODS read_stats_objects
  +      CHANGING
  +        !ct_local_items  TYPE zif_abapgit_definitions=>ty_items_tt
  +        !ct_remote_items TYPE zif_abapgit_definitions=>ty_items_tt
  +      RAISING
  +        zcx_abapgit_exception .
       METHODS format_user
         IMPORTING
           !iv_username   TYPE xubname
         RETURNING
  -        VALUE(rv_user) TYPE string.
  +        VALUE(rv_user) TYPE string .
       METHODS format_timestamp
         IMPORTING
           !iv_timestamp       TYPE timestampl
         RETURNING
  -        VALUE(rv_timestamp) TYPE string.
  +        VALUE(rv_timestamp) TYPE string .
       METHODS format_size
         IMPORTING
           !iv_size       TYPE i
         RETURNING
  -        VALUE(rv_size) TYPE string.
  +        VALUE(rv_size) TYPE string .
   ENDCLASS.
   
   
   
  -CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_INFO IMPLEMENTATION.
  +CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION.
   
   
     METHOD constructor.
  
positive.code:   METHOD read_stats.
  
      DATA:
        lt_local              TYPE zif_abapgit_definitions=>ty_files_item_tt,
        lt_remote             TYPE zif_abapgit_definitions=>ty_files_tt,
        ls_item               TYPE zif_abapgit_definitions=>ty_item,
        lt_local_items        TYPE STANDARD TABLE OF zif_abapgit_definitions=>ty_item WITH DEFAULT KEY,
        lt_remote_items       TYPE STANDARD TABLE OF zif_abapgit_definitions=>ty_item WITH DEFAULT KEY,
        lt_results            TYPE zif_abapgit_definitions=>ty_results_tt,
        lt_unsupported_local  TYPE zif_abapgit_definitions=>ty_items_tt,
        lt_supported_types    TYPE zcl_abapgit_objects=>ty_types_tt,
        lv_unsupported_remote TYPE i,
        lv_ignored            TYPE abap_bool,
        lv_state              TYPE c LENGTH 1,
        ls_stats              TYPE ty_stats.
  
      FIELD-SYMBOLS:
        <ls_local>  LIKE LINE OF lt_local,
        <ls_remote> LIKE LINE OF lt_remote,
        <ls_result> LIKE LINE OF lt_results.
  
      CLEAR mt_stats.
  
      lt_local = mo_repo->get_files_local( ).
  
      ls_stats-measure = 'Number of Files'.
      ls_stats-local   = lines( lt_local ).
  
      IF mo_repo->has_remote_source( ) = abap_true.
        lt_remote = mo_repo->get_files_remote( ).
        ls_stats-remote = lines( lt_remote ).
      ENDIF.
  
      APPEND ls_stats TO mt_stats.
  
      IF lt_remote IS NOT INITIAL.
        ls_stats-measure = 'Number of Ignored Files'.
        ls_stats-local  = ls_stats-remote - ls_stats-local.
        IF ls_stats-local < 0.
  
negative.code:   METHOD format_size.
  
      DATA:
        lv_size TYPE p LENGTH 16 DECIMALS 2.
  
      IF iv_size > 1024 * 1024 * 1024.
        lv_size = iv_size / 1024 / 1024 / 1024.
        rv_size = |{ lv_size } GB|.
      ELSEIF iv_size > 1024 * 1024.
        lv_size = iv_size / 1024 / 1024.
        rv_size = |{ lv_size } MB|.
      ELSEIF iv_size > 1024.
        lv_size = iv_size / 1024.
        rv_size = |{ lv_size } KB|.
      ELSE.
        rv_size = |{ iv_size } Bytes|.
      ENDIF.
  
    ENDMETHOD.
  
  