This commit is contained in:
Lars Hvam 2014-06-25 20:48:34 +02:00
parent d9394ff7c4
commit a7f0d39674

View File

@ -20,12 +20,12 @@ TYPES: BEGIN OF st_object,
END OF st_object. END OF st_object.
TYPES: tt_objects TYPE STANDARD TABLE OF st_object WITH DEFAULT KEY. TYPES: tt_objects TYPE STANDARD TABLE OF st_object WITH DEFAULT KEY.
TYPES: BEGIN OF st_latest, TYPES: BEGIN OF st_file,
path TYPE string, path TYPE string,
filename TYPE string, filename TYPE string,
data TYPE xstring, data TYPE xstring,
END OF st_latest. END OF st_file.
TYPES: tt_latest TYPE STANDARD TABLE OF st_latest WITH DEFAULT KEY. TYPES: tt_files TYPE STANDARD TABLE OF st_file WITH DEFAULT KEY.
TYPES: BEGIN OF st_commit, TYPES: BEGIN OF st_commit,
tree TYPE t_sha1, tree TYPE t_sha1,
@ -45,6 +45,8 @@ CONSTANTS: gc_commit TYPE t_type VALUE 'commit', "#EC NOTEXT
CONSTANTS: gc_chmod_file TYPE c LENGTH 6 VALUE '100644', CONSTANTS: gc_chmod_file TYPE c LENGTH 6 VALUE '100644',
gc_chmod_dir TYPE c LENGTH 5 VALUE '40000'. gc_chmod_dir TYPE c LENGTH 5 VALUE '40000'.
CONSTANTS: gc_newline TYPE abap_char1 VALUE cl_abap_char_utilities=>newline.
****************** ******************
START-OF-SELECTION. START-OF-SELECTION.
@ -430,13 +432,9 @@ CLASS lcl_pack DEFINITION FINAL.
RETURNING value(rv_data) TYPE xstring RETURNING value(rv_data) TYPE xstring
RAISING lcx_exception. RAISING lcx_exception.
* todo, to be deleted:
CLASS-METHODS sanity_checks IMPORTING it_objects TYPE tt_objects CLASS-METHODS sanity_checks IMPORTING it_objects TYPE tt_objects
RETURNING value(rt_latest) TYPE tt_latest RETURNING value(rt_files) TYPE tt_files
RAISING lcx_exception.
CLASS-METHODS latest_objects IMPORTING iv_branch TYPE t_sha1
it_objects TYPE tt_objects
RETURNING value(rt_latest) TYPE tt_latest
RAISING lcx_exception. RAISING lcx_exception.
CLASS-METHODS: encode_tree IMPORTING it_nodes TYPE tt_nodes CLASS-METHODS: encode_tree IMPORTING it_nodes TYPE tt_nodes
@ -468,12 +466,6 @@ CLASS lcl_pack DEFINITION FINAL.
RETURNING value(rv_type) TYPE t_type RETURNING value(rv_type) TYPE t_type
RAISING lcx_exception. RAISING lcx_exception.
CLASS-METHODS walk IMPORTING it_objects TYPE tt_objects
iv_sha1 TYPE t_sha1
iv_path TYPE string
CHANGING ct_latest TYPE tt_latest
RAISING lcx_exception.
CLASS-METHODS get_length EXPORTING ev_length TYPE i CLASS-METHODS get_length EXPORTING ev_length TYPE i
CHANGING cv_data TYPE xstring. CHANGING cv_data TYPE xstring.
@ -618,94 +610,25 @@ CLASS lcl_pack IMPLEMENTATION.
lv_string = ''. lv_string = ''.
CONCATENATE 'tree' lv_tree_lower INTO lv_tmp SEPARATED BY space. "#EC NOTEXT CONCATENATE 'tree' lv_tree_lower INTO lv_tmp SEPARATED BY space. "#EC NOTEXT
CONCATENATE lv_string lv_tmp cl_abap_char_utilities=>newline INTO lv_string. CONCATENATE lv_string lv_tmp gc_newline INTO lv_string.
IF NOT is_commit-parent IS INITIAL. IF NOT is_commit-parent IS INITIAL.
CONCATENATE 'parent' lv_parent_lower INTO lv_tmp SEPARATED BY space. "#EC NOTEXT CONCATENATE 'parent' lv_parent_lower INTO lv_tmp SEPARATED BY space. "#EC NOTEXT
CONCATENATE lv_string lv_tmp cl_abap_char_utilities=>newline INTO lv_string. CONCATENATE lv_string lv_tmp gc_newline INTO lv_string.
ENDIF. ENDIF.
CONCATENATE 'author' is_commit-author INTO lv_tmp SEPARATED BY space. "#EC NOTEXT CONCATENATE 'author' is_commit-author INTO lv_tmp SEPARATED BY space. "#EC NOTEXT
CONCATENATE lv_string lv_tmp cl_abap_char_utilities=>newline INTO lv_string. CONCATENATE lv_string lv_tmp gc_newline INTO lv_string.
CONCATENATE 'committer' is_commit-committer INTO lv_tmp SEPARATED BY space. "#EC NOTEXT CONCATENATE 'committer' is_commit-committer INTO lv_tmp SEPARATED BY space. "#EC NOTEXT
CONCATENATE lv_string lv_tmp cl_abap_char_utilities=>newline INTO lv_string. CONCATENATE lv_string lv_tmp gc_newline INTO lv_string.
CONCATENATE lv_string cl_abap_char_utilities=>newline is_commit-body INTO lv_string. CONCATENATE lv_string gc_newline is_commit-body INTO lv_string.
rv_data = lcl_convert=>string_to_xstring_utf8( lv_string ). rv_data = lcl_convert=>string_to_xstring_utf8( lv_string ).
ENDMETHOD. "encode_commit ENDMETHOD. "encode_commit
METHOD walk.
DATA: lv_path TYPE string,
ls_latest LIKE LINE OF ct_latest,
lt_nodes TYPE tt_nodes.
FIELD-SYMBOLS: <ls_tree> LIKE LINE OF it_objects,
<ls_blob> LIKE LINE OF it_objects,
<ls_node> LIKE LINE OF lt_nodes.
READ TABLE it_objects ASSIGNING <ls_tree> WITH KEY sha1 = iv_sha1 type = gc_tree.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE lcx_exception
EXPORTING
iv_text = 'Walk, tree not found'. "#EC NOTEXT
ENDIF.
lt_nodes = lcl_pack=>decode_tree( <ls_tree>-data ).
LOOP AT lt_nodes ASSIGNING <ls_node>.
* WRITE: / <ls_node>-sha1, <ls_node>-directory, <ls_node>-name.
IF <ls_node>-chmod = gc_chmod_file.
READ TABLE it_objects ASSIGNING <ls_blob> WITH KEY sha1 = <ls_node>-sha1 type = gc_blob.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE lcx_exception
EXPORTING
iv_text = 'Walk, blob not found'. "#EC NOTEXT
ENDIF.
CLEAR ls_latest.
ls_latest-path = iv_path.
ls_latest-filename = <ls_node>-name.
ls_latest-data = <ls_blob>-data.
APPEND ls_latest TO ct_latest.
ENDIF.
ENDLOOP.
LOOP AT lt_nodes ASSIGNING <ls_node> WHERE chmod = gc_chmod_dir.
CONCATENATE iv_path <ls_node>-name '/' INTO lv_path.
walk( EXPORTING it_objects = it_objects
iv_sha1 = <ls_node>-sha1
iv_path = lv_path
CHANGING ct_latest = ct_latest ).
ENDLOOP.
ENDMETHOD. "walk
METHOD latest_objects.
DATA: ls_commit TYPE st_commit,
ls_object TYPE st_object.
READ TABLE it_objects INTO ls_object WITH KEY sha1 = iv_branch type = gc_commit.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE lcx_exception
EXPORTING
iv_text = 'Commit/branch not found'. "#EC NOTEXT
ENDIF.
ls_commit = lcl_pack=>decode_commit( ls_object-data ).
walk( EXPORTING it_objects = it_objects
iv_sha1 = ls_commit-tree
iv_path = '/'
CHANGING ct_latest = rt_latest ).
ENDMETHOD. "latest
METHOD sanity_checks. METHOD sanity_checks.
DATA: ls_commit TYPE st_commit, DATA: ls_commit TYPE st_commit,
@ -800,7 +723,7 @@ CLASS lcl_pack IMPLEMENTATION.
lv_string = lcl_convert=>xstring_to_string_utf8( iv_data ). lv_string = lcl_convert=>xstring_to_string_utf8( iv_data ).
SPLIT lv_string AT cl_abap_char_utilities=>newline INTO TABLE lt_string. SPLIT lv_string AT gc_newline INTO TABLE lt_string.
lv_mode = 'tree'. "#EC NOTEXT lv_mode = 'tree'. "#EC NOTEXT
LOOP AT lt_string ASSIGNING <lv_string>. LOOP AT lt_string ASSIGNING <lv_string>.
@ -832,7 +755,7 @@ CLASS lcl_pack IMPLEMENTATION.
ELSE. ELSE.
* body * body
CONCATENATE rs_commit-body <lv_string> INTO rs_commit-body CONCATENATE rs_commit-body <lv_string> INTO rs_commit-body
SEPARATED BY cl_abap_char_utilities=>newline. SEPARATED BY gc_newline.
ENDIF. ENDIF.
ENDLOOP. ENDLOOP.
@ -1273,6 +1196,119 @@ CLASS lcl_pack IMPLEMENTATION.
ENDCLASS. "lcl_pack IMPLEMENTATION ENDCLASS. "lcl_pack IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS lcl_porcelain DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_porcelain DEFINITION FINAL.
PUBLIC SECTION.
CLASS-METHODS pull IMPORTING iv_repo TYPE string
* todo, optional branch?
RETURNING value(rt_files) TYPE tt_files
RAISING lcx_exception.
* todo, to be deleted:
CLASS-METHODS latest_objects IMPORTING iv_branch TYPE t_sha1
it_objects TYPE tt_objects
RETURNING value(rt_files) TYPE tt_files
RAISING lcx_exception.
PRIVATE SECTION.
CLASS-METHODS walk IMPORTING it_objects TYPE tt_objects
iv_sha1 TYPE t_sha1
iv_path TYPE string
CHANGING ct_files TYPE tt_files
RAISING lcx_exception.
ENDCLASS. "lcl_porcelain DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_porcelain IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_porcelain IMPLEMENTATION.
METHOD pull.
* todo
RETURN.
ENDMETHOD. "pull
METHOD latest_objects.
DATA: ls_commit TYPE st_commit,
ls_object TYPE st_object.
READ TABLE it_objects INTO ls_object WITH KEY sha1 = iv_branch type = gc_commit.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE lcx_exception
EXPORTING
iv_text = 'Commit/branch not found'. "#EC NOTEXT
ENDIF.
ls_commit = lcl_pack=>decode_commit( ls_object-data ).
walk( EXPORTING it_objects = it_objects
iv_sha1 = ls_commit-tree
iv_path = '/'
CHANGING ct_files = rt_files ).
ENDMETHOD. "latest_objects
METHOD walk.
DATA: lv_path TYPE string,
ls_file LIKE LINE OF ct_files,
lt_nodes TYPE tt_nodes.
FIELD-SYMBOLS: <ls_tree> LIKE LINE OF it_objects,
<ls_blob> LIKE LINE OF it_objects,
<ls_node> LIKE LINE OF lt_nodes.
READ TABLE it_objects ASSIGNING <ls_tree> WITH KEY sha1 = iv_sha1 type = gc_tree.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE lcx_exception
EXPORTING
iv_text = 'Walk, tree not found'. "#EC NOTEXT
ENDIF.
lt_nodes = lcl_pack=>decode_tree( <ls_tree>-data ).
LOOP AT lt_nodes ASSIGNING <ls_node>.
* WRITE: / <ls_node>-sha1, <ls_node>-directory, <ls_node>-name.
IF <ls_node>-chmod = gc_chmod_file.
READ TABLE it_objects ASSIGNING <ls_blob> WITH KEY sha1 = <ls_node>-sha1 type = gc_blob.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE lcx_exception
EXPORTING
iv_text = 'Walk, blob not found'. "#EC NOTEXT
ENDIF.
CLEAR ls_file.
ls_file-path = iv_path.
ls_file-filename = <ls_node>-name.
ls_file-data = <ls_blob>-data.
APPEND ls_file TO ct_files.
ENDIF.
ENDLOOP.
LOOP AT lt_nodes ASSIGNING <ls_node> WHERE chmod = gc_chmod_dir.
CONCATENATE iv_path <ls_node>-name '/' INTO lv_path.
walk( EXPORTING it_objects = it_objects
iv_sha1 = <ls_node>-sha1
iv_path = lv_path
CHANGING ct_files = ct_files ).
ENDLOOP.
ENDMETHOD. "walk
ENDCLASS. "lcl_porcelain IMPLEMENTATION
*----------------------------------------------------------------------* *----------------------------------------------------------------------*
* CLASS lcl_persistence DEFINITION * CLASS lcl_persistence DEFINITION
*----------------------------------------------------------------------* *----------------------------------------------------------------------*
@ -1391,7 +1427,7 @@ CLASS lcl_gui IMPLEMENTATION.
METHOD install. METHOD install.
* todo, let user choose * todo, select git url + branch?
* lcl_persistence=>add( ). * lcl_persistence=>add( ).
RETURN. RETURN.
@ -1399,31 +1435,31 @@ CLASS lcl_gui IMPLEMENTATION.
METHOD render_css. METHOD render_css.
rv_html = '<style type="text/css">' && rv_html = '<style type="text/css">' && gc_newline &&
'body {' && 'body {' && gc_newline &&
'font-family: verdana;' && ' font-family: verdana;' && gc_newline &&
'}' && '}' && gc_newline &&
'a:link {' && 'a:link {' && gc_newline &&
'color: blue;' && ' color: blue;' && gc_newline &&
'}' && '}' && gc_newline &&
'a:visited {' && 'a:visited {' && gc_newline &&
'color: blue;' && ' color: blue;' && gc_newline &&
'}' && '}' && gc_newline &&
'a.grey:link {' && 'a.grey:link {' && gc_newline &&
'color: grey;' && ' color: grey;' && gc_newline &&
'font-size: smaller;' && ' font-size: smaller;' && gc_newline &&
'}' && '}' && gc_newline &&
'a.grey:visited {' && 'a.grey:visited {' && gc_newline &&
'color: grey;' && ' color: grey;' && gc_newline &&
'font-size: smaller;' && ' font-size: smaller;' && gc_newline &&
'}' && '}' && gc_newline &&
'h1 {' && 'h1 {' && gc_newline &&
'display: inline;' && ' display: inline;' && gc_newline &&
'}' && '}' && gc_newline &&
'h2 {' && 'h2 {' && gc_newline &&
'display: inline;' && ' display: inline;' && gc_newline &&
'}' && '}' && gc_newline &&
'</style>'. '</style>' && gc_newline.
ENDMETHOD. "render_css ENDMETHOD. "render_css
@ -1435,16 +1471,16 @@ CLASS lcl_gui IMPLEMENTATION.
lt_repos = lcl_persistence=>list( ). lt_repos = lcl_persistence=>list( ).
rv_html = '<html>' && rv_html = '<html>' && gc_newline &&
'<head>' && '<head>' && gc_newline &&
'<title>My first styled page</title>' && '<title>abapGit</title>' && gc_newline &&
render_css( ) && render_css( ) && gc_newline &&
'</head>' && '</head>' && gc_newline &&
'<body>' && '<body>' && gc_newline &&
'<b><h1>abapGit</h1></b>&nbsp;' && '<b><h1>abapGit</h1></b>&nbsp;' && gc_newline &&
'<a href="sapevent:install">Clone/Install/Start/New</a>&nbsp;' && '<a href="sapevent:install">Clone/Install/Start/New</a>&nbsp;' && gc_newline &&
'<a href="sapevent:explore">Explore</a>&nbsp;' && '<a href="sapevent:explore">Explore</a>&nbsp;' && gc_newline &&
'<a href="sapevent:abapgithome">abapGit@GitHub</a>&nbsp;' && '<a href="sapevent:abapgithome">abapGit@GitHub</a>&nbsp;' && gc_newline &&
'<hr>'. '<hr>'.
LOOP AT lt_repos INTO lv_repo. LOOP AT lt_repos INTO lv_repo.
@ -1469,11 +1505,8 @@ CLASS lcl_gui IMPLEMENTATION.
METHOD render_repo. METHOD render_repo.
rv_html = rv_html && rv_html = rv_html &&
'<a id="' && '<a id="' && short_name( iv_repo ) && '"></a>' &&
short_name( iv_repo ) && '<h2>' && short_name( iv_repo ) && '</h2>&nbsp;' &&
'"></a><h2>' &&
short_name( iv_repo ) &&
'</h2>&nbsp;' &&
iv_repo && iv_repo &&
'<br>'. '<br>'.
@ -1483,7 +1516,7 @@ CLASS lcl_gui IMPLEMENTATION.
METHOD short_name. METHOD short_name.
*todo *todo, regular expression?
rv_short = 'Foobar'. "#EC NOTEXT rv_short = 'Foobar'. "#EC NOTEXT
ENDMETHOD. "short_name ENDMETHOD. "short_name
@ -1502,9 +1535,7 @@ CLASS lcl_gui IMPLEMENTATION.
ls_event-eventid = go_html_viewer->m_id_sapevent. ls_event-eventid = go_html_viewer->m_id_sapevent.
ls_event-appl_event = 'x'. ls_event-appl_event = 'x'.
APPEND ls_event TO lt_events. APPEND ls_event TO lt_events.
CALL METHOD go_html_viewer->set_registered_events go_html_viewer->set_registered_events( lt_events ).
EXPORTING
events = lt_events.
SET HANDLER lcl_gui=>on_sapevent FOR go_html_viewer. SET HANDLER lcl_gui=>on_sapevent FOR go_html_viewer.
@ -1531,15 +1562,13 @@ CLASS lcl_gui IMPLEMENTATION.
ENDIF. ENDIF.
ENDWHILE. ENDWHILE.
CALL METHOD go_html_viewer->load_data go_html_viewer->load_data(
IMPORTING IMPORTING
assigned_url = lv_url assigned_url = lv_url
CHANGING CHANGING
data_table = lt_data. data_table = lt_data ).
CALL METHOD go_html_viewer->show_url go_html_viewer->show_url( lv_url ).
EXPORTING
url = lv_url.
ENDMETHOD. "view ENDMETHOD. "view
@ -1680,7 +1709,7 @@ CLASS lcl_transport IMPLEMENTATION.
lv_data = ei_client->response->get_cdata( ). lv_data = ei_client->response->get_cdata( ).
SPLIT lv_data AT cl_abap_char_utilities=>newline INTO TABLE lt_result. SPLIT lv_data AT gc_newline INTO TABLE lt_result.
LOOP AT lt_result INTO lv_data. LOOP AT lt_result INTO lv_data.
IF lv_data CP '*refs/heads/master*'. IF lv_data CP '*refs/heads/master*'.
IF sy-tabix = 2. IF sy-tabix = 2.
@ -1746,7 +1775,7 @@ CLASS lcl_transport IMPLEMENTATION.
get_null( ) && get_null( ) &&
` ` && ` ` &&
'report-status' && 'report-status' &&
cl_abap_char_utilities=>newline. "#EC NOTEXT gc_newline. "#EC NOTEXT
lv_cmd_pkt = pkt_string( lv_line ). lv_cmd_pkt = pkt_string( lv_line ).
lv_buffer = lv_cmd_pkt && '0000'. lv_buffer = lv_cmd_pkt && '0000'.
@ -1879,12 +1908,12 @@ CLASS lcl_transport IMPLEMENTATION.
ev_branch && ev_branch &&
` ` && ` ` &&
'side-band-64k no-progress shallow' 'side-band-64k no-progress shallow'
&& cl_abap_char_utilities=>newline. "#EC NOTEXT && gc_newline. "#EC NOTEXT
lv_pkt = pkt_string( lv_line ). lv_pkt = pkt_string( lv_line ).
lv_buffer = lv_pkt lv_buffer = lv_pkt
&& '0000' && '0000'
&& '0009done' && cl_abap_char_utilities=>newline. && '0009done' && gc_newline.
li_client->request->set_cdata( lv_buffer ). li_client->request->set_cdata( lv_buffer ).
li_client->send( ). li_client->send( ).
@ -1964,12 +1993,12 @@ FORM receive_test.
DATA: lv_pack TYPE xstring, DATA: lv_pack TYPE xstring,
lv_branch TYPE t_sha1, lv_branch TYPE t_sha1,
lt_latest TYPE tt_latest, lt_files TYPE tt_files,
ls_object TYPE st_object, ls_object TYPE st_object,
lx_exception TYPE REF TO lcx_exception, lx_exception TYPE REF TO lcx_exception,
lt_objects TYPE tt_objects. lt_objects TYPE tt_objects.
FIELD-SYMBOLS: <ls_latest> LIKE LINE OF lt_latest. FIELD-SYMBOLS: <ls_file> LIKE LINE OF lt_files.
TRY. TRY.
@ -1991,11 +2020,11 @@ FORM receive_test.
lcl_pack=>sanity_checks( lt_objects ). lcl_pack=>sanity_checks( lt_objects ).
lt_latest = lcl_pack=>latest_objects( iv_branch = lv_branch lt_files = lcl_porcelain=>latest_objects( iv_branch = lv_branch
it_objects = lt_objects ). it_objects = lt_objects ).
LOOP AT lt_latest ASSIGNING <ls_latest>. LOOP AT lt_files ASSIGNING <ls_file>.
WRITE: / <ls_latest>-path, 40 <ls_latest>-filename. WRITE: / <ls_file>-path, 40 <ls_file>-filename.
ENDLOOP. ENDLOOP.
READ TABLE lt_objects INTO ls_object WITH KEY sha1 = lv_branch type = gc_commit. READ TABLE lt_objects INTO ls_object WITH KEY sha1 = lv_branch type = gc_commit.
@ -2186,7 +2215,7 @@ CLASS lcl_abap_unit DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FI
METHODS convert_int FOR TESTING RAISING lcx_exception. METHODS convert_int FOR TESTING RAISING lcx_exception.
CLASS-METHODS latest IMPORTING iv_repo TYPE string CLASS-METHODS latest IMPORTING iv_repo TYPE string
RETURNING value(rt_latest) TYPE tt_latest RETURNING value(rt_files) TYPE tt_files
RAISING lcx_exception. RAISING lcx_exception.
CLASS-METHODS compare IMPORTING iv_repo TYPE string CLASS-METHODS compare IMPORTING iv_repo TYPE string
RAISING lcx_exception. RAISING lcx_exception.
@ -2409,27 +2438,27 @@ CLASS lcl_abap_unit IMPLEMENTATION.
DATA: lv_url TYPE string, DATA: lv_url TYPE string,
lv_data TYPE xstring, lv_data TYPE xstring,
lt_latest TYPE tt_latest. lt_files TYPE tt_files.
FIELD-SYMBOLS: <ls_latest> LIKE LINE OF lt_latest. FIELD-SYMBOLS: <ls_file> LIKE LINE OF lt_files.
lt_latest = latest( iv_repo ). lt_files = latest( iv_repo ).
cl_abap_unit_assert=>assert_not_initial( lt_latest ). cl_abap_unit_assert=>assert_not_initial( lt_files ).
LOOP AT lt_latest ASSIGNING <ls_latest>. LOOP AT lt_files ASSIGNING <ls_file>.
CONCATENATE CONCATENATE
'https://raw.githubusercontent.com' 'https://raw.githubusercontent.com'
iv_repo iv_repo
'/master' '/master'
<ls_latest>-path <ls_file>-path
<ls_latest>-filename INTO lv_url. "#EC NOTEXT <ls_file>-filename INTO lv_url. "#EC NOTEXT
lv_data = http_fetch( lv_url ). lv_data = http_fetch( lv_url ).
cl_abap_unit_assert=>assert_equals( cl_abap_unit_assert=>assert_equals(
exp = <ls_latest>-data exp = <ls_file>-data
act = lv_data ). act = lv_data ).
ENDLOOP. ENDLOOP.
@ -2447,7 +2476,7 @@ CLASS lcl_abap_unit IMPLEMENTATION.
ev_branch = lv_branch ). ev_branch = lv_branch ).
lt_objects = lcl_pack=>decode( lv_pack ). lt_objects = lcl_pack=>decode( lv_pack ).
lcl_pack=>decode_deltas( CHANGING ct_objects = lt_objects ). lcl_pack=>decode_deltas( CHANGING ct_objects = lt_objects ).
rt_latest = lcl_pack=>latest_objects( iv_branch = lv_branch rt_files = lcl_porcelain=>latest_objects( iv_branch = lv_branch
it_objects = lt_objects ). it_objects = lt_objects ).
ENDMETHOD. "latest ENDMETHOD. "latest
@ -2464,7 +2493,7 @@ CLASS lcl_abap_unit IMPLEMENTATION.
compare( '/larshp/Dicing' ). "#EC NOTEXT compare( '/larshp/Dicing' ). "#EC NOTEXT
ENDMETHOD. "larshp_dicing ENDMETHOD. "larshp_dicing
ENDCLASS. "test IMPLEMENTATION ENDCLASS. "lcl_abap_unit IMPLEMENTATION
*&---------------------------------------------------------------------* *&---------------------------------------------------------------------*
*& Form OUTPUT_OBJECTS *& Form OUTPUT_OBJECTS