mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
commit
151264fb67
|
@ -1510,7 +1510,6 @@ CLASS lcl_git_porcelain IMPLEMENTATION.
|
||||||
|
|
||||||
DATA: lt_nodes TYPE lcl_git_pack=>ty_nodes_tt,
|
DATA: lt_nodes TYPE lcl_git_pack=>ty_nodes_tt,
|
||||||
ls_tree LIKE LINE OF rt_trees,
|
ls_tree LIKE LINE OF rt_trees,
|
||||||
lv_sub TYPE string,
|
|
||||||
lv_len TYPE i,
|
lv_len TYPE i,
|
||||||
lt_folders TYPE ty_folders_tt.
|
lt_folders TYPE ty_folders_tt.
|
||||||
|
|
||||||
|
@ -1537,19 +1536,19 @@ CLASS lcl_git_porcelain IMPLEMENTATION.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
* folders
|
* folders
|
||||||
lv_sub = <ls_folder>-path && '+*'.
|
LOOP AT lt_folders ASSIGNING <ls_sub> WHERE count = <ls_folder>-count + 1.
|
||||||
LOOP AT lt_folders ASSIGNING <ls_sub>
|
lv_len = strlen( <ls_folder>-path ).
|
||||||
WHERE count = <ls_folder>-count + 1 AND path CP lv_sub.
|
IF strlen( <ls_sub>-path ) > lv_len AND <ls_sub>-path(lv_len) = <ls_folder>-path.
|
||||||
APPEND INITIAL LINE TO lt_nodes ASSIGNING <ls_node>.
|
APPEND INITIAL LINE TO lt_nodes ASSIGNING <ls_node>.
|
||||||
<ls_node>-chmod = gc_chmod-dir.
|
<ls_node>-chmod = gc_chmod-dir.
|
||||||
|
|
||||||
* extract folder name, this can probably be done easier using regular expressions
|
* extract folder name, this can probably be done easier using regular expressions
|
||||||
lv_len = strlen( <ls_folder>-path ).
|
<ls_node>-name = <ls_sub>-path+lv_len.
|
||||||
<ls_node>-name = <ls_sub>-path+lv_len.
|
lv_len = strlen( <ls_node>-name ) - 1.
|
||||||
lv_len = strlen( <ls_node>-name ) - 1.
|
<ls_node>-name = <ls_node>-name(lv_len).
|
||||||
<ls_node>-name = <ls_node>-name(lv_len).
|
|
||||||
|
|
||||||
<ls_node>-sha1 = <ls_sub>-sha1.
|
<ls_node>-sha1 = <ls_sub>-sha1.
|
||||||
|
ENDIF.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
CLEAR ls_tree.
|
CLEAR ls_tree.
|
||||||
|
|
|
@ -457,6 +457,10 @@ CLASS ltcl_git_porcelain DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHO
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
root_empty FOR TESTING
|
root_empty FOR TESTING
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
|
namespaces FOR TESTING
|
||||||
|
RAISING lcx_exception,
|
||||||
|
more_sub FOR TESTING
|
||||||
|
RAISING lcx_exception,
|
||||||
sub FOR TESTING
|
sub FOR TESTING
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
@ -530,6 +534,50 @@ CLASS ltcl_git_porcelain IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD more_sub.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_tree> LIKE LINE OF mt_trees.
|
||||||
|
|
||||||
|
append( iv_path = '/src/foo_a/foo_a1/'
|
||||||
|
iv_name = 'a1.txt' ).
|
||||||
|
|
||||||
|
append( iv_path = '/src/foo_a/foo_a2/'
|
||||||
|
iv_name = 'a2.txt' ).
|
||||||
|
|
||||||
|
mt_trees = lcl_git_porcelain=>build_trees( mt_expanded ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lines( mt_trees )
|
||||||
|
exp = 5 ).
|
||||||
|
|
||||||
|
LOOP AT mt_trees ASSIGNING <ls_tree>.
|
||||||
|
cl_abap_unit_assert=>assert_not_initial( <ls_tree>-data ).
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD namespaces.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_tree> LIKE LINE OF mt_trees.
|
||||||
|
|
||||||
|
append( iv_path = '/src/#foo#a/#foo#a1/'
|
||||||
|
iv_name = 'a1.txt' ).
|
||||||
|
|
||||||
|
append( iv_path = '/src/#foo#a/#foo#a2/'
|
||||||
|
iv_name = 'a2.txt' ).
|
||||||
|
|
||||||
|
mt_trees = lcl_git_porcelain=>build_trees( mt_expanded ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lines( mt_trees )
|
||||||
|
exp = 5 ).
|
||||||
|
|
||||||
|
LOOP AT mt_trees ASSIGNING <ls_tree>.
|
||||||
|
cl_abap_unit_assert=>assert_not_initial( <ls_tree>-data ).
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD root_empty.
|
METHOD root_empty.
|
||||||
|
|
||||||
append( iv_path = '/sub/'
|
append( iv_path = '/sub/'
|
||||||
|
|
Loading…
Reference in New Issue
Block a user