mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
commit
151264fb67
|
@ -1510,7 +1510,6 @@ CLASS lcl_git_porcelain IMPLEMENTATION.
|
|||
|
||||
DATA: lt_nodes TYPE lcl_git_pack=>ty_nodes_tt,
|
||||
ls_tree LIKE LINE OF rt_trees,
|
||||
lv_sub TYPE string,
|
||||
lv_len TYPE i,
|
||||
lt_folders TYPE ty_folders_tt.
|
||||
|
||||
|
@ -1537,19 +1536,19 @@ CLASS lcl_git_porcelain IMPLEMENTATION.
|
|||
ENDLOOP.
|
||||
|
||||
* folders
|
||||
lv_sub = <ls_folder>-path && '+*'.
|
||||
LOOP AT lt_folders ASSIGNING <ls_sub>
|
||||
WHERE count = <ls_folder>-count + 1 AND path CP lv_sub.
|
||||
APPEND INITIAL LINE TO lt_nodes ASSIGNING <ls_node>.
|
||||
<ls_node>-chmod = gc_chmod-dir.
|
||||
LOOP AT lt_folders ASSIGNING <ls_sub> WHERE count = <ls_folder>-count + 1.
|
||||
lv_len = strlen( <ls_folder>-path ).
|
||||
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>.
|
||||
<ls_node>-chmod = gc_chmod-dir.
|
||||
|
||||
* 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.
|
||||
lv_len = strlen( <ls_node>-name ) - 1.
|
||||
<ls_node>-name = <ls_node>-name(lv_len).
|
||||
<ls_node>-name = <ls_sub>-path+lv_len.
|
||||
lv_len = strlen( <ls_node>-name ) - 1.
|
||||
<ls_node>-name = <ls_node>-name(lv_len).
|
||||
|
||||
<ls_node>-sha1 = <ls_sub>-sha1.
|
||||
<ls_node>-sha1 = <ls_sub>-sha1.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
CLEAR ls_tree.
|
||||
|
|
|
@ -457,6 +457,10 @@ CLASS ltcl_git_porcelain DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHO
|
|||
RAISING lcx_exception,
|
||||
root_empty FOR TESTING
|
||||
RAISING lcx_exception,
|
||||
namespaces FOR TESTING
|
||||
RAISING lcx_exception,
|
||||
more_sub FOR TESTING
|
||||
RAISING lcx_exception,
|
||||
sub FOR TESTING
|
||||
RAISING lcx_exception.
|
||||
|
||||
|
@ -530,6 +534,50 @@ CLASS ltcl_git_porcelain IMPLEMENTATION.
|
|||
|
||||
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.
|
||||
|
||||
append( iv_path = '/sub/'
|
||||
|
|
Loading…
Reference in New Issue
Block a user