diff --git a/src/git/zcl_abapgit_git_pack.clas.abap b/src/git/zcl_abapgit_git_pack.clas.abap index aeda2a104..7ca440f02 100644 --- a/src/git/zcl_abapgit_git_pack.clas.abap +++ b/src/git/zcl_abapgit_git_pack.clas.abap @@ -480,7 +480,8 @@ CLASS zcl_abapgit_git_pack IMPLEMENTATION. ls_node-chmod = lv_chmod. IF ls_node-chmod <> zif_abapgit_definitions=>c_chmod-dir AND ls_node-chmod <> zif_abapgit_definitions=>c_chmod-file - AND ls_node-chmod <> zif_abapgit_definitions=>c_chmod-executable. + AND ls_node-chmod <> zif_abapgit_definitions=>c_chmod-executable + AND ls_node-chmod <> zif_abapgit_definitions=>c_chmod-submodule. zcx_abapgit_exception=>raise( |Unknown chmod| ). ENDIF. diff --git a/src/git/zcl_abapgit_git_porcelain.clas.abap b/src/git/zcl_abapgit_git_porcelain.clas.abap index f876ce3d4..315f4e88f 100644 --- a/src/git/zcl_abapgit_git_porcelain.clas.abap +++ b/src/git/zcl_abapgit_git_porcelain.clas.abap @@ -774,7 +774,8 @@ CLASS ZCL_ABAPGIT_GIT_PORCELAIN IMPLEMENTATION. LOOP AT lt_nodes ASSIGNING . CASE -chmod. WHEN zif_abapgit_definitions=>c_chmod-file - OR zif_abapgit_definitions=>c_chmod-executable. + OR zif_abapgit_definitions=>c_chmod-executable + OR zif_abapgit_definitions=>c_chmod-submodule. APPEND INITIAL LINE TO rt_expanded ASSIGNING . -path = iv_base. -name = -name. diff --git a/src/zif_abapgit_definitions.intf.abap b/src/zif_abapgit_definitions.intf.abap index 9aefd0cbf..ef3c6f512 100644 --- a/src/zif_abapgit_definitions.intf.abap +++ b/src/zif_abapgit_definitions.intf.abap @@ -429,6 +429,7 @@ INTERFACE zif_abapgit_definitions file TYPE ty_chmod VALUE '100644', executable TYPE ty_chmod VALUE '100755', dir TYPE ty_chmod VALUE '40000 ', + submodule TYPE ty_chmod VALUE '160000', END OF c_chmod . CONSTANTS c_crlf TYPE c LENGTH 2 VALUE cl_abap_char_utilities=>cr_lf ##NO_TEXT. CONSTANTS c_newline TYPE c LENGTH 1 VALUE cl_abap_char_utilities=>newline ##NO_TEXT.