mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
#234, Merge branch 'master' into t234, conflicts
This commit is contained in:
commit
4747115118
|
@ -3,7 +3,7 @@ REPORT zabapgit.
|
||||||
* See http://www.abapgit.org
|
* See http://www.abapgit.org
|
||||||
|
|
||||||
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
|
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
|
||||||
gc_abap_version TYPE string VALUE 'v1.9.13'. "#EC NOTEXT
|
gc_abap_version TYPE string VALUE 'v1.9.14'. "#EC NOTEXT
|
||||||
|
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
* The MIT License (MIT)
|
* The MIT License (MIT)
|
||||||
|
@ -2777,12 +2777,14 @@ CLASS lcl_diff IMPLEMENTATION.
|
||||||
|
|
||||||
ENDCLASS. "lcl_diff IMPLEMENTATION
|
ENDCLASS. "lcl_diff IMPLEMENTATION
|
||||||
|
|
||||||
|
CLASS ltcl_git_pack DEFINITION DEFERRED.
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
* CLASS lcl_pack DEFINITION
|
* CLASS lcl_pack DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
*
|
*
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_git_pack DEFINITION FINAL.
|
CLASS lcl_git_pack DEFINITION FINAL FRIENDS ltcl_git_pack.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
TYPES: BEGIN OF ty_node,
|
TYPES: BEGIN OF ty_node,
|
||||||
|
@ -2859,6 +2861,10 @@ CLASS lcl_git_pack DEFINITION FINAL.
|
||||||
EXPORTING ev_header TYPE i
|
EXPORTING ev_header TYPE i
|
||||||
CHANGING cv_delta TYPE xstring.
|
CHANGING cv_delta TYPE xstring.
|
||||||
|
|
||||||
|
CLASS-METHODS sort_tree
|
||||||
|
IMPORTING it_nodes TYPE ty_nodes_tt
|
||||||
|
RETURNING VALUE(rt_nodes) TYPE ty_nodes_tt.
|
||||||
|
|
||||||
CLASS-METHODS get_type
|
CLASS-METHODS get_type
|
||||||
IMPORTING iv_x TYPE x
|
IMPORTING iv_x TYPE x
|
||||||
RETURNING VALUE(rv_type) TYPE ty_type
|
RETURNING VALUE(rv_type) TYPE ty_type
|
||||||
|
@ -14385,6 +14391,38 @@ ENDCLASS. "lcl_hash IMPLEMENTATION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_git_pack IMPLEMENTATION.
|
CLASS lcl_git_pack IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD sort_tree.
|
||||||
|
|
||||||
|
TYPES: BEGIN OF ty_sort,
|
||||||
|
sort TYPE string,
|
||||||
|
node TYPE ty_node,
|
||||||
|
END OF ty_sort.
|
||||||
|
|
||||||
|
DATA: lt_sort TYPE STANDARD TABLE OF ty_sort WITH DEFAULT KEY.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_sort> LIKE LINE OF lt_sort,
|
||||||
|
<ls_node> LIKE LINE OF it_nodes.
|
||||||
|
|
||||||
|
|
||||||
|
LOOP AT it_nodes ASSIGNING <ls_node>.
|
||||||
|
APPEND INITIAL LINE TO lt_sort ASSIGNING <ls_sort>.
|
||||||
|
IF <ls_node>-chmod = gc_chmod-dir.
|
||||||
|
CONCATENATE <ls_node>-name '/' INTO <ls_sort>-sort.
|
||||||
|
ELSE.
|
||||||
|
<ls_sort>-sort = <ls_node>-name.
|
||||||
|
ENDIF.
|
||||||
|
<ls_sort>-node = <ls_node>.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
* following has to be done, or unpack will fail on server side
|
||||||
|
SORT lt_sort BY sort ASCENDING.
|
||||||
|
|
||||||
|
LOOP AT lt_sort ASSIGNING <ls_sort>.
|
||||||
|
APPEND <ls_sort>-node TO rt_nodes.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD type_and_length.
|
METHOD type_and_length.
|
||||||
|
|
||||||
DATA: lv_bits TYPE string,
|
DATA: lv_bits TYPE string,
|
||||||
|
@ -14485,9 +14523,7 @@ CLASS lcl_git_pack IMPLEMENTATION.
|
||||||
FIELD-SYMBOLS: <ls_node> LIKE LINE OF it_nodes.
|
FIELD-SYMBOLS: <ls_node> LIKE LINE OF it_nodes.
|
||||||
|
|
||||||
|
|
||||||
lt_nodes[] = it_nodes[].
|
lt_nodes = sort_tree( it_nodes ).
|
||||||
* following has to be done, or unpack will fail on server side
|
|
||||||
SORT lt_nodes BY name ASCENDING.
|
|
||||||
|
|
||||||
LOOP AT lt_nodes ASSIGNING <ls_node>.
|
LOOP AT lt_nodes ASSIGNING <ls_node>.
|
||||||
ASSERT NOT <ls_node>-chmod IS INITIAL.
|
ASSERT NOT <ls_node>-chmod IS INITIAL.
|
||||||
|
@ -20951,7 +20987,9 @@ CLASS ltcl_git_pack DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FI
|
||||||
pack_long FOR TESTING
|
pack_long FOR TESTING
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
pack_multiple FOR TESTING
|
pack_multiple FOR TESTING
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception,
|
||||||
|
sort_tree1 FOR TESTING,
|
||||||
|
sort_tree2 FOR TESTING.
|
||||||
|
|
||||||
METHODS:
|
METHODS:
|
||||||
object_blob
|
object_blob
|
||||||
|
@ -21218,6 +21256,62 @@ ENDCLASS. "ltcl_url IMPLEMENTATION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS ltcl_git_pack IMPLEMENTATION.
|
CLASS ltcl_git_pack IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD sort_tree1.
|
||||||
|
|
||||||
|
DATA: lt_tree TYPE lcl_git_pack=>ty_nodes_tt.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_tree> LIKE LINE OF lt_tree.
|
||||||
|
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lt_tree ASSIGNING <ls_tree>.
|
||||||
|
<ls_tree>-chmod = gc_chmod-file.
|
||||||
|
<ls_tree>-name = 'b.txt'.
|
||||||
|
<ls_tree>-sha1 = '0123'.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lt_tree ASSIGNING <ls_tree>.
|
||||||
|
<ls_tree>-chmod = gc_chmod-file.
|
||||||
|
<ls_tree>-name = 'a.txt'.
|
||||||
|
<ls_tree>-sha1 = '0123'.
|
||||||
|
|
||||||
|
lt_tree = lcl_git_pack=>sort_tree( lt_tree ).
|
||||||
|
|
||||||
|
READ TABLE lt_tree INDEX 1 ASSIGNING <ls_tree>.
|
||||||
|
cl_abap_unit_assert=>assert_subrc( ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = <ls_tree>-name
|
||||||
|
exp = 'a.txt' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD sort_tree2.
|
||||||
|
|
||||||
|
DATA: lt_tree TYPE lcl_git_pack=>ty_nodes_tt.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_tree> LIKE LINE OF lt_tree.
|
||||||
|
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lt_tree ASSIGNING <ls_tree>.
|
||||||
|
<ls_tree>-chmod = gc_chmod-file.
|
||||||
|
<ls_tree>-name = 'foo.txt'.
|
||||||
|
<ls_tree>-sha1 = '0123'.
|
||||||
|
|
||||||
|
APPEND INITIAL LINE TO lt_tree ASSIGNING <ls_tree>.
|
||||||
|
<ls_tree>-chmod = gc_chmod-dir.
|
||||||
|
<ls_tree>-name = 'foo'.
|
||||||
|
<ls_tree>-sha1 = '0123'.
|
||||||
|
|
||||||
|
lt_tree = lcl_git_pack=>sort_tree( lt_tree ).
|
||||||
|
|
||||||
|
READ TABLE lt_tree INDEX 1 ASSIGNING <ls_tree>.
|
||||||
|
cl_abap_unit_assert=>assert_subrc( ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = <ls_tree>-name
|
||||||
|
exp = 'foo.txt' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD pack_multiple.
|
METHOD pack_multiple.
|
||||||
|
|
||||||
CONSTANTS: lc_data TYPE x LENGTH 15 VALUE '123456789ABCDEF545794254754554',
|
CONSTANTS: lc_data TYPE x LENGTH 15 VALUE '123456789ABCDEF545794254754554',
|
||||||
|
|
Loading…
Reference in New Issue
Block a user