diff --git a/src/zabapgit_file_status.prog.abap b/src/zabapgit_file_status.prog.abap index dcf759ab8..3b2698f9d 100644 --- a/src/zabapgit_file_status.prog.abap +++ b/src/zabapgit_file_status.prog.abap @@ -164,7 +164,7 @@ CLASS lcl_file_status IMPLEMENTATION. IF lo_dot_abapgit->is_ignored( iv_path = -path - iv_filename = -filename ) = abap_true. + iv_filename = -filename ) = abap_true. "OR -obj_type = 'DEVC' ##TODO. DELETE rt_results INDEX lv_index. ENDIF. ENDLOOP. @@ -224,6 +224,7 @@ CLASS lcl_file_status IMPLEMENTATION. ev_is_xml = lv_is_xml ). CHECK lv_is_xml = abap_true. " Skip all but obj definitions + CHECK ls_item-obj_type <> 'DEVC' ##TODO. ls_item-devclass = lcl_tadir=>get_object_package( iv_object = ls_item-obj_type diff --git a/src/zabapgit_object_devc.prog.abap b/src/zabapgit_object_devc.prog.abap index 18d4072f8..440466609 100644 --- a/src/zabapgit_object_devc.prog.abap +++ b/src/zabapgit_object_devc.prog.abap @@ -27,8 +27,8 @@ CLASS lcl_object_devc DEFINITION iv_lock TYPE abap_bool RAISING lcx_exception. DATA: - mv_devclass TYPE devclass, mv_local_devclass TYPE devclass, + mv_repo_devclass TYPE devclass, mv_installation_package TYPE devclass. ENDCLASS. @@ -36,7 +36,8 @@ CLASS lcl_object_devc IMPLEMENTATION. METHOD constructor. super->constructor( is_item = is_item iv_language = iv_language ). - mv_devclass = is_item-obj_name. + mv_local_devclass = is_item-devclass. " This may be empty at this point + mv_repo_devclass = is_item-obj_name. ENDMETHOD. METHOD get_package. @@ -61,7 +62,7 @@ CLASS lcl_object_devc IMPLEMENTATION. ENDMETHOD. METHOD lif_object~changed_by. - rv_user = get_package( mv_devclass )->changed_by. + rv_user = get_package( mv_local_devclass )->changed_by. ENDMETHOD. METHOD lif_object~compare_to_remote_version. @@ -79,7 +80,7 @@ CLASS lcl_object_devc IMPLEMENTATION. " Unfortunately deleted objects that are still contained in an unreleased transport request " also count towards the contained objects counter. - li_package = get_package( mv_devclass ). + li_package = get_package( mv_local_devclass ). li_package->get_changeable( IMPORTING e_changeable = lv_changeable ). IF lv_changeable = abap_false. @@ -140,13 +141,15 @@ CLASS lcl_object_devc IMPLEMENTATION. ls_save_sign TYPE paksavsign. FIELD-SYMBOLS: TYPE scomppdtln. + mv_local_devclass = iv_package. + io_xml->read( EXPORTING iv_name = 'DEVC' CHANGING cg_data = ls_package_data ). - mv_local_devclass = mv_devclass. +* mv_local_devclass = mv_local_devclass. " Is it the top level package? * IF ls_package_data-parentcl IS INITIAL. @@ -158,7 +161,9 @@ CLASS lcl_object_devc IMPLEMENTATION. * ENDIF. * ENDIF. - li_package = get_package( mv_devclass ). + li_package = get_package( mv_local_devclass ). + ls_package_data-devclass = mv_local_devclass. + CLEAR ls_package_data-parentcl. ##TODO " ls_data_sign-ctext = abap_true. * ls_data_sign-korrflag = abap_true. @@ -167,7 +172,7 @@ CLASS lcl_object_devc IMPLEMENTATION. ls_data_sign-dlvunit = abap_true. ls_data_sign-comp_posid = abap_true. ls_data_sign-component = abap_true. - ls_data_sign-parentcl = abap_true. +* ls_data_sign-parentcl = abap_true. ls_data_sign-perminher = abap_true. ls_data_sign-intfprefx = abap_true. ls_data_sign-packtype = abap_true. @@ -181,7 +186,7 @@ CLASS lcl_object_devc IMPLEMENTATION. ls_data_sign-project_passdown = abap_true. IF ls_package_data-ctext IS INITIAL. - ls_package_data-ctext = mv_devclass. + ls_package_data-ctext = mv_local_devclass. ENDIF. IF ls_package_data-dlvunit IS INITIAL. ls_package_data-dlvunit = 'HOME'. @@ -292,9 +297,10 @@ CLASS lcl_object_devc IMPLEMENTATION. ENDMETHOD. METHOD lif_object~exists. + ASSERT mv_local_devclass IS NOT INITIAL ##TODO. cl_package_helper=>check_package_existence( EXPORTING - i_package_name = mv_devclass + i_package_name = mv_local_devclass IMPORTING e_package_exists = rv_bool EXCEPTIONS @@ -338,7 +344,7 @@ CLASS lcl_object_devc IMPLEMENTATION. ls_usage_data TYPE scomppdtln, li_usage TYPE REF TO if_package_permission_to_use. - li_package = get_package( mv_devclass ). + li_package = get_package( mv_local_devclass ). IF li_package IS NOT BOUND. lcx_exception=>raise( |Could not find package to serialize.| ). ENDIF. @@ -355,8 +361,8 @@ CLASS lcl_object_devc IMPLEMENTATION. lcx_exception=>raise( |Error from IF_PACKAGE->GET_ALL_ATTRIBUTES { sy-subrc }| ). ENDIF. - ls_package_data-devclass = mv_devclass. - IF mv_devclass = mv_installation_package. + ls_package_data-devclass = mv_repo_devclass. + IF mv_local_devclass = mv_installation_package. ##TODO CLEAR ls_package_data-parentcl. ENDIF. @@ -380,8 +386,7 @@ CLASS lcl_object_devc IMPLEMENTATION. EXCEPTIONS object_invalid = 1 unexpected_error = 2 - OTHERS = 3 - ). + OTHERS = 3 ). IF sy-subrc <> 0. lcx_exception=>raise( |Error from IF_PACKAGE->GET_PERMISSION_TO_USE { sy-subrc }| ). ENDIF. @@ -446,10 +451,10 @@ CLASS lcl_object_devc IMPLEMENTATION. object_not_changeable = 1 object_invalid = 2 intern_err = 3 - OTHERS = 4 - ). + OTHERS = 4 ). IF sy-subrc <> 0. - lcx_exception=>raise( |Error from IF_PACKAGE_PERMISSION_TO_USE->SET_ALL_ATTRIBUTES { sy-subrc }| ). + lcx_exception=>raise( + |Error from IF_PACKAGE_PERMISSION_TO_USE->SET_ALL_ATTRIBUTES { sy-subrc }| ). ENDIF. ELSE. diff --git a/src/zabapgit_objects_impl.prog.abap b/src/zabapgit_objects_impl.prog.abap index e28bf5705..7d18d262a 100644 --- a/src/zabapgit_objects_impl.prog.abap +++ b/src/zabapgit_objects_impl.prog.abap @@ -621,6 +621,8 @@ CLASS lcl_objects IMPLEMENTATION. io_dot = io_repo->get_dot_abapgit( ) iv_path = -path ). + ls_item-devclass = lv_package ##TODO. + lv_cancel = warning_package( is_item = ls_item iv_package = lv_package ). IF lv_cancel = abap_true. diff --git a/src/zabapgit_tadir.prog.abap b/src/zabapgit_tadir.prog.abap index 20d8e48dd..bbc7ffff4 100644 --- a/src/zabapgit_tadir.prog.abap +++ b/src/zabapgit_tadir.prog.abap @@ -188,6 +188,7 @@ CLASS lcl_tadir IMPLEMENTATION. LOOP AT it_tadir ASSIGNING . ls_item-obj_type = -object. ls_item-obj_name = -obj_name. + ls_item-devclass = -devclass. IF lcl_objects=>is_supported( ls_item ) = abap_true. lv_exists = lcl_objects=>exists( ls_item ). @@ -239,6 +240,7 @@ CLASS lcl_tadir IMPLEMENTATION. ls_exclude-low = 'STOB'. " auto generated by core data services APPEND ls_exclude TO lt_excludes. + ##TODO. * IF sy-uname <> 'DEVELOPER' AND io_dot IS NOT BOUND OR io_dot->uses_advanced_packages( ) = abap_false. * ls_exclude-low = 'DEVC'. * APPEND ls_exclude TO lt_excludes. @@ -271,6 +273,16 @@ CLASS lcl_tadir IMPLEMENTATION. WHEN 'SICF'. * replace the internal GUID with a hash of the path -obj_name+15 = read_sicf_url( -obj_name ). + + WHEN 'DEVC'. + " The package on this system might be named differently to the one in the repository. + IF io_dot IS BOUND. + -obj_name = lcl_folder_logic=>path_to_package( + iv_top = iv_top + io_dot = io_dot + iv_path = lv_path ). + ENDIF. + ENDCASE. ENDLOOP.