From d3d9f6ce41a7878d5e7e1c7bb457b5b8594de969 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Thu, 27 Aug 2015 19:14:13 +0200 Subject: [PATCH] change sha1 to lower case, close #109 abapGit now works with GitHub again make sure to commit changes before installing this update, as it will require you to pull repositories again --- zabapgit.abap | 52 ++++++++++++++++++++++++--------------------------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/zabapgit.abap b/zabapgit.abap index 99390ff26..595bff2c5 100644 --- a/zabapgit.abap +++ b/zabapgit.abap @@ -3,7 +3,7 @@ REPORT zabapgit. * See https://github.com/larshp/abapGit/ CONSTANTS: gc_xml_version TYPE string VALUE 'v0.2-alpha', "#EC NOTEXT - gc_abap_version TYPE string VALUE 'v0.61'. "#EC NOTEXT + gc_abap_version TYPE string VALUE 'v0.62'. "#EC NOTEXT ******************************************************************************** * The MIT License (MIT) @@ -34,7 +34,7 @@ TYPE-POOLS seop. TYPES: t_type TYPE c LENGTH 6, t_bitbyte TYPE c LENGTH 8, t_adler32 TYPE x LENGTH 4, - t_sha1 TYPE x LENGTH 20, + t_sha1 TYPE c LENGTH 40, t_unixtime TYPE c LENGTH 16. TYPES: BEGIN OF st_node, @@ -80,7 +80,7 @@ TYPES: tt_branch_list TYPE STANDARD TABLE OF st_branch_list WITH DEFAULT KEY. TYPES: BEGIN OF st_repo_persi, url TYPE string, branch_name TYPE string, - sha1 TYPE string, + sha1 TYPE t_sha1, package TYPE devclass, offline TYPE sap_bool, END OF st_repo_persi. @@ -293,7 +293,7 @@ CLASS lcl_tadir IMPLEMENTATION. * look for subpackages SELECT * FROM tdevc INTO TABLE lt_tdevc - WHERE parentcl = iv_package. + WHERE parentcl = iv_package. "#EC CI_SUBRC LOOP AT lt_tdevc ASSIGNING . lv_len = strlen( iv_package ). IF -devclass(lv_len) <> iv_package. @@ -1049,7 +1049,6 @@ CLASS lcl_debug IMPLEMENTATION. METHOD render_objects. DATA: lv_len TYPE i, - lv_text40 TYPE c LENGTH 40, lv_text50 TYPE c LENGTH 50. FIELD-SYMBOLS: LIKE LINE OF it_objects. @@ -1069,11 +1068,10 @@ CLASS lcl_debug IMPLEMENTATION. lv_len = 50. ENDIF. - lv_text40 = -sha1. lv_text50 = -data(lv_len). CONCATENATE gv_html '' gc_newline - '' lv_text40 '' gc_newline + '' -sha1 '' gc_newline '' -type '' gc_newline '' lv_text50 '' gc_newline '' gc_newline INTO gv_html. @@ -8871,6 +8869,8 @@ CLASS lcl_hash IMPLEMENTATION. rv_sha1 = lv_hash. + TRANSLATE rv_sha1 TO LOWER CASE. + ENDMETHOD. "sha1_raw METHOD sha1. @@ -9078,6 +9078,7 @@ CLASS lcl_pack IMPLEMENTATION. DATA: lv_string TYPE string, lt_nodes LIKE it_nodes, + lv_hex20 TYPE x LENGTH 20, lv_xstring TYPE xstring. FIELD-SYMBOLS: LIKE LINE OF it_nodes. @@ -9091,7 +9092,8 @@ CLASS lcl_pack IMPLEMENTATION. CONCATENATE -chmod -name INTO lv_string SEPARATED BY space. lv_xstring = lcl_convert=>string_to_xstring_utf8( lv_string ). - CONCATENATE rv_data lv_xstring lc_null -sha1 INTO rv_data IN BYTE MODE. + lv_hex20 = to_upper( -sha1 ). + CONCATENATE rv_data lv_xstring lc_null lv_hex20 INTO rv_data IN BYTE MODE. ENDLOOP. ENDMETHOD. "encode_tree @@ -9162,7 +9164,6 @@ CLASS lcl_pack IMPLEMENTATION. METHOD decode_commit. DATA: lv_string TYPE string, - lv_char40 TYPE c LENGTH 40, lv_mode TYPE string, lv_len TYPE i, lt_string TYPE TABLE OF string. @@ -9181,14 +9182,10 @@ CLASS lcl_pack IMPLEMENTATION. IF NOT lv_mode IS INITIAL AND (lv_len) = lv_mode. CASE lv_mode. WHEN 'tree'. - lv_char40 = +5. - TRANSLATE lv_char40 TO UPPER CASE. - rs_commit-tree = lv_char40. + rs_commit-tree = +5. lv_mode = 'parent'. "#EC NOTEXT WHEN 'parent'. - lv_char40 = +7. - TRANSLATE lv_char40 TO UPPER CASE. - rs_commit-parent = lv_char40. + rs_commit-parent = +7. lv_mode = 'author'. "#EC NOTEXT WHEN 'author'. rs_commit-author = +7. @@ -9268,7 +9265,6 @@ CLASS lcl_pack IMPLEMENTATION. lv_offset TYPE i, lv_message TYPE string, lv_sha1 TYPE t_sha1, - lv_char40 TYPE c LENGTH 40, ls_object LIKE LINE OF ct_objects, lv_len TYPE i, lv_x TYPE x. @@ -9281,8 +9277,7 @@ CLASS lcl_pack IMPLEMENTATION. * find base READ TABLE ct_objects ASSIGNING WITH KEY sha1 = is_object-sha1. IF sy-subrc <> 0. - lv_char40 = is_object-sha1. - CONCATENATE 'Base not found,' lv_char40 INTO lv_message + CONCATENATE 'Base not found,' is_object-sha1 INTO lv_message SEPARATED BY space. "#EC NOTEXT _raise lv_message. ELSE. @@ -9431,6 +9426,7 @@ CLASS lcl_pack IMPLEMENTATION. ls_node-name = lv_name. ls_node-sha1 = iv_data+lv_offset(lc_sha_length). + TRANSLATE ls_node-sha1 TO LOWER CASE. APPEND ls_node TO rt_nodes. lv_start = lv_cursor + 1 + lc_sha_length. @@ -9580,6 +9576,7 @@ CLASS lcl_pack IMPLEMENTATION. CLEAR ls_object. IF lv_type = gc_ref_d. ls_object-sha1 = lv_ref_delta. + TRANSLATE ls_object-sha1 TO LOWER CASE. ELSE. ls_object-sha1 = lcl_hash=>sha1( iv_type = lv_type iv_data = lv_decompressed ). ENDIF. @@ -9596,7 +9593,7 @@ CLASS lcl_pack IMPLEMENTATION. lv_len = xstrlen( iv_data ) - 20. lv_xstring = iv_data(lv_len). lv_sha1 = lcl_hash=>sha1_raw( lv_xstring ). - IF lv_sha1 <> lv_data. + IF to_upper( lv_sha1 ) <> lv_data. _raise 'SHA1 at end of pack doesnt match'. ENDIF. @@ -9604,7 +9601,7 @@ CLASS lcl_pack IMPLEMENTATION. METHOD encode. - DATA: lv_sha1 TYPE t_sha1, + DATA: lv_sha1 TYPE x LENGTH 20, lv_adler32 TYPE t_adler32, lv_len TYPE i, lv_compressed TYPE xstring, @@ -9635,11 +9632,11 @@ CLASS lcl_pack IMPLEMENTATION. CONCATENATE rv_data c_zlib lv_compressed INTO rv_data IN BYTE MODE. lv_adler32 = lcl_hash=>adler32( -data ). - CONCATENATE rv_data lv_adler32 INTO rv_data IN BYTE MODE. + CONCATENATE rv_data lv_adler32 INTO rv_data IN BYTE MODE. ENDLOOP. - lv_sha1 = lcl_hash=>sha1_raw( rv_data ). + lv_sha1 = to_upper( lcl_hash=>sha1_raw( rv_data ) ). CONCATENATE rv_data lv_sha1 INTO rv_data IN BYTE MODE. ENDMETHOD. "encode @@ -10178,7 +10175,7 @@ CLASS lcl_transport IMPLEMENTATION. METHOD parse_branch_list. DATA: lt_result TYPE TABLE OF string, - lv_hash TYPE c LENGTH 40, + lv_hash TYPE t_sha1, lv_name TYPE string, lv_foo TYPE string ##NEEDED, lv_char TYPE c, @@ -10206,7 +10203,6 @@ CLASS lcl_transport IMPLEMENTATION. ENDIF. APPEND INITIAL LINE TO rt_list ASSIGNING . - TRANSLATE lv_hash TO UPPER CASE. -sha1 = lv_hash. -name = lv_name. ENDLOOP. @@ -13088,7 +13084,7 @@ CLASS ltcl_abap_unit IMPLEMENTATION. METHOD encode_decode_pack_multiple. CONSTANTS: lc_data TYPE x LENGTH 15 VALUE '123456789ABCDEF545794254754554', - lc_sha TYPE x LENGTH 20 VALUE '5F46CB3C4B7F0B3600B64F744CDE614A283A88DC'. + lc_sha TYPE t_sha1 VALUE '5f46cb3c4b7f0b3600b64f744cde614a283a88dc'. DATA: lt_objects TYPE tt_objects, ls_object LIKE LINE OF lt_objects, @@ -13209,7 +13205,7 @@ CLASS ltcl_abap_unit IMPLEMENTATION. METHOD encode_decode_tree. - CONSTANTS: lc_sha TYPE x LENGTH 20 VALUE '5F46CB3C4B7F0B3600B64F744CDE614A283A88DC'. + CONSTANTS: lc_sha TYPE t_sha1 VALUE '5f46cb3c4b7f0b3600b64f744cde614a283a88dc'. DATA: lt_nodes TYPE tt_nodes, ls_node LIKE LINE OF lt_nodes, @@ -13233,8 +13229,8 @@ CLASS ltcl_abap_unit IMPLEMENTATION. METHOD encode_decode_commit. - CONSTANTS: lc_tree TYPE x LENGTH 20 VALUE '44CDE614A283A88DC5F46CB3C4B7F0B3600B64F7', - lc_parent TYPE x LENGTH 20 VALUE '83A88DC5F46CB3C4B7F0B3600B64F744CDE614A2'. + CONSTANTS: lc_tree TYPE t_sha1 VALUE '5f46cb3c4b7f0b3600b64f744cde614a283a88dc', + lc_parent TYPE t_sha1 VALUE '1236cb3c4b7f0b3600b64f744cde614a283a88dc'. DATA: ls_commit TYPE st_commit, ls_result TYPE st_commit,