diff --git a/src/zcl_abapgit_objects.clas.abap b/src/zcl_abapgit_objects.clas.abap index 607145fae..5a54fa7d1 100644 --- a/src/zcl_abapgit_objects.clas.abap +++ b/src/zcl_abapgit_objects.clas.abap @@ -298,14 +298,29 @@ CLASS ZCL_ABAPGIT_OBJECTS IMPLEMENTATION. METHOD check_duplicates. - DATA: lt_files TYPE zif_abapgit_definitions=>ty_files_tt. + DATA: lt_files TYPE zif_abapgit_definitions=>ty_files_tt, + lv_path TYPE string, + lv_filename TYPE string, + lt_duplicates TYPE stringtab, + lv_all_duplicates TYPE string. + FIELD-SYMBOLS: + LIKE LINE OF it_files. lt_files = it_files. SORT lt_files BY path ASCENDING filename ASCENDING. - DELETE ADJACENT DUPLICATES FROM lt_files COMPARING path filename. - IF lines( lt_files ) <> lines( it_files ). - zcx_abapgit_exception=>raise( 'Duplicates' ). + + LOOP AT lt_files ASSIGNING . + IF lv_path = -path AND lv_filename = -filename. + APPEND -path && -filename TO lt_duplicates. + ENDIF. + lv_path = -path. + lv_filename = -filename. + ENDLOOP. + + IF lt_duplicates IS NOT INITIAL. + CONCATENATE LINES OF lt_duplicates INTO lv_all_duplicates SEPARATED BY `, `. + zcx_abapgit_exception=>raise( |Duplicates: { lv_all_duplicates }| ). ENDIF. ENDMETHOD. @@ -435,7 +450,6 @@ CLASS ZCL_ABAPGIT_OBJECTS IMPLEMENTATION. ls_obj_serializer_map-item = is_item. ls_obj_serializer_map-metadata = is_metadata. INSERT ls_obj_serializer_map INTO TABLE gt_obj_serializer_map. - lv_class_name = is_metadata-class. ELSE. lv_class_name = class_name( is_item ).