diff --git a/src/zabapgit_dot_abapgit.prog.abap b/src/zabapgit_dot_abapgit.prog.abap index 24c761ca4..36d823007 100644 --- a/src/zabapgit_dot_abapgit.prog.abap +++ b/src/zabapgit_dot_abapgit.prog.abap @@ -35,9 +35,12 @@ CLASS lcl_dot_abapgit DEFINITION CREATE PRIVATE FINAL FRIENDS ltcl_dot_abapgit. * set_starting_folder * IMPORTING iv_path TYPE string, get_master_language - RETURNING VALUE(rv_language) TYPE spras. + RETURNING VALUE(rv_language) TYPE spras, * set_master_language * IMPORTING iv_language TYPE spras. + get_signature + RETURNING VALUE(rs_signature) TYPE ty_file_signature + RAISING lcx_exception. PRIVATE SECTION. TYPES: BEGIN OF ty_dot_abapgit, @@ -207,4 +210,13 @@ CLASS lcl_dot_abapgit IMPLEMENTATION. * ms_data-master_language = iv_language. * ENDMETHOD. + METHOD get_signature. + + rs_signature-path = gc_root_dir. + rs_signature-filename = gc_dot_abapgit. + rs_signature-sha1 = lcl_hash=>sha1( iv_type = gc_type-blob + iv_data = serialize( ) ). + + ENDMETHOD. "get_signature + ENDCLASS. \ No newline at end of file diff --git a/src/zabapgit_repo_impl.prog.abap b/src/zabapgit_repo_impl.prog.abap index 06fb5ba92..39da085eb 100644 --- a/src/zabapgit_repo_impl.prog.abap +++ b/src/zabapgit_repo_impl.prog.abap @@ -260,12 +260,15 @@ CLASS lcl_repo_online IMPLEMENTATION. lt_local = get_files_local( ). lv_branch_equal = boolc( get_sha1_remote( ) = get_sha1_local( ) ). - DELETE lt_local WHERE item IS INITIAL. + DELETE lt_local " Remove non-code related files except .abapgit + WHERE item IS INITIAL + AND NOT ( file-path = gc_root_dir AND file-filename = gc_dot_abapgit ). + SORT lt_local BY item. SORT lt_remote BY path filename. LOOP AT lt_local ASSIGNING . - IF ls_last_item <> -item. " New item reached ? + IF ls_last_item <> -item OR sy-tabix = 1. " First or New item reached ? APPEND INITIAL LINE TO lt_checksums ASSIGNING . -item = -item. ls_last_item = -item. @@ -472,6 +475,7 @@ CLASS lcl_repo IMPLEMENTATION. ENDIF. lt_updated_files = lcl_objects=>deserialize( me ). + APPEND mo_dot_abapgit->get_signature( ) TO lt_updated_files. CLEAR: mt_local, mv_last_serialization.