mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 04:36:49 +08:00
Files: Introduce secondary keys (#5101)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
57879a87ed
commit
53343a98d6
|
@ -153,6 +153,7 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
|
||||||
APPEND <ls_local> TO ls_user_files-local.
|
APPEND <ls_local> TO ls_user_files-local.
|
||||||
|
|
||||||
LOOP AT ls_files-remote ASSIGNING <ls_remote>
|
LOOP AT ls_files-remote ASSIGNING <ls_remote>
|
||||||
|
USING KEY file
|
||||||
WHERE filename = <ls_local>-file-filename
|
WHERE filename = <ls_local>-file-filename
|
||||||
AND path <> <ls_local>-file-path
|
AND path <> <ls_local>-file-path
|
||||||
AND filename <> 'package.devc.xml'.
|
AND filename <> 'package.devc.xml'.
|
||||||
|
|
|
@ -65,7 +65,9 @@ CLASS ZCL_ABAPGIT_DATA_CONFIG IMPLEMENTATION.
|
||||||
DATA lx_ajson TYPE REF TO zcx_abapgit_ajson_error.
|
DATA lx_ajson TYPE REF TO zcx_abapgit_ajson_error.
|
||||||
|
|
||||||
CLEAR mt_config.
|
CLEAR mt_config.
|
||||||
LOOP AT it_files INTO ls_file WHERE path = zif_abapgit_data_config=>c_default_path
|
LOOP AT it_files INTO ls_file
|
||||||
|
USING KEY file_path
|
||||||
|
WHERE path = zif_abapgit_data_config=>c_default_path
|
||||||
AND filename CP |*.{ zif_abapgit_data_config=>c_config }.{ zif_abapgit_data_config=>c_default_format }|.
|
AND filename CP |*.{ zif_abapgit_data_config=>c_config }.{ zif_abapgit_data_config=>c_default_format }|.
|
||||||
TRY.
|
TRY.
|
||||||
lo_ajson = zcl_abapgit_ajson=>parse( zcl_abapgit_convert=>xstring_to_string_utf8( ls_file-data ) ).
|
lo_ajson = zcl_abapgit_ajson=>parse( zcl_abapgit_convert=>xstring_to_string_utf8( ls_file-data ) ).
|
||||||
|
|
|
@ -185,9 +185,10 @@ CLASS ZCL_ABAPGIT_DATA_DESERIALIZER IMPLEMENTATION.
|
||||||
|
|
||||||
lr_data = zcl_abapgit_data_utils=>build_table_itab( ls_config-name ).
|
lr_data = zcl_abapgit_data_utils=>build_table_itab( ls_config-name ).
|
||||||
|
|
||||||
READ TABLE it_files INTO ls_file WITH KEY
|
READ TABLE it_files INTO ls_file
|
||||||
path = zif_abapgit_data_config=>c_default_path
|
WITH KEY file_path
|
||||||
filename = zcl_abapgit_data_utils=>build_filename( ls_config ).
|
COMPONENTS path = zif_abapgit_data_config=>c_default_path
|
||||||
|
filename = zcl_abapgit_data_utils=>build_filename( ls_config ).
|
||||||
IF sy-subrc = 0.
|
IF sy-subrc = 0.
|
||||||
convert_json_to_itab(
|
convert_json_to_itab(
|
||||||
ir_data = lr_data
|
ir_data = lr_data
|
||||||
|
|
|
@ -656,7 +656,8 @@ CLASS zcl_abapgit_file_status IMPLEMENTATION.
|
||||||
<ls_result> = build_new_local( <ls_local> ).
|
<ls_result> = build_new_local( <ls_local> ).
|
||||||
" Check if same file exists in different location
|
" Check if same file exists in different location
|
||||||
READ TABLE ct_remote ASSIGNING <ls_remote>
|
READ TABLE ct_remote ASSIGNING <ls_remote>
|
||||||
WITH KEY filename = <ls_local>-file-filename.
|
WITH KEY file
|
||||||
|
COMPONENTS filename = <ls_local>-file-filename.
|
||||||
IF sy-subrc = 0 AND <ls_local>-file-sha1 = <ls_remote>-sha1.
|
IF sy-subrc = 0 AND <ls_local>-file-sha1 = <ls_remote>-sha1.
|
||||||
<ls_result>-packmove = abap_true.
|
<ls_result>-packmove = abap_true.
|
||||||
ELSEIF sy-subrc = 4.
|
ELSEIF sy-subrc = 4.
|
||||||
|
|
|
@ -212,10 +212,14 @@ CLASS zcl_abapgit_objects_files IMPLEMENTATION.
|
||||||
iv_ext = iv_ext ).
|
iv_ext = iv_ext ).
|
||||||
|
|
||||||
IF mv_path IS NOT INITIAL.
|
IF mv_path IS NOT INITIAL.
|
||||||
READ TABLE mt_files TRANSPORTING NO FIELDS WITH KEY path = mv_path
|
READ TABLE mt_files TRANSPORTING NO FIELDS
|
||||||
filename = lv_filename.
|
WITH KEY file_path
|
||||||
|
COMPONENTS path = mv_path
|
||||||
|
filename = lv_filename.
|
||||||
ELSE.
|
ELSE.
|
||||||
READ TABLE mt_files TRANSPORTING NO FIELDS WITH KEY filename = lv_filename.
|
READ TABLE mt_files TRANSPORTING NO FIELDS
|
||||||
|
WITH KEY file
|
||||||
|
COMPONENTS filename = lv_filename.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF sy-subrc = 0.
|
IF sy-subrc = 0.
|
||||||
|
@ -277,10 +281,14 @@ CLASS zcl_abapgit_objects_files IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
IF mv_path IS NOT INITIAL.
|
IF mv_path IS NOT INITIAL.
|
||||||
READ TABLE mt_files ASSIGNING <ls_file> WITH KEY path = mv_path
|
READ TABLE mt_files ASSIGNING <ls_file>
|
||||||
filename = iv_filename.
|
WITH KEY file_path
|
||||||
|
COMPONENTS path = mv_path
|
||||||
|
filename = iv_filename.
|
||||||
ELSE.
|
ELSE.
|
||||||
READ TABLE mt_files ASSIGNING <ls_file> WITH KEY filename = iv_filename.
|
READ TABLE mt_files ASSIGNING <ls_file>
|
||||||
|
WITH KEY file
|
||||||
|
COMPONENTS filename = iv_filename.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF sy-subrc <> 0.
|
IF sy-subrc <> 0.
|
||||||
|
|
|
@ -55,7 +55,9 @@ CLASS zcl_abapgit_object_smim IMPLEMENTATION.
|
||||||
|
|
||||||
lt_files = mo_files->get_files( ).
|
lt_files = mo_files->get_files( ).
|
||||||
|
|
||||||
READ TABLE lt_files ASSIGNING <ls_file> WITH KEY filename = lv_filename.
|
READ TABLE lt_files ASSIGNING <ls_file>
|
||||||
|
WITH KEY file
|
||||||
|
COMPONENTS filename = lv_filename.
|
||||||
IF sy-subrc <> 0.
|
IF sy-subrc <> 0.
|
||||||
zcx_abapgit_exception=>raise( 'SMIM, file not found' ).
|
zcx_abapgit_exception=>raise( 'SMIM, file not found' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
|
@ -341,7 +341,8 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
READ TABLE it_remote WITH KEY filename = is_result-filename INTO ls_remote_file.
|
READ TABLE it_remote WITH KEY file
|
||||||
|
COMPONENTS filename = is_result-filename INTO ls_remote_file.
|
||||||
IF sy-subrc <> 0. "if file does not exist in remote, we don't need to validate
|
IF sy-subrc <> 0. "if file does not exist in remote, we don't need to validate
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
|
@ -414,8 +414,9 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
|
||||||
get_files_remote( ).
|
get_files_remote( ).
|
||||||
|
|
||||||
READ TABLE mt_remote ASSIGNING <ls_remote>
|
READ TABLE mt_remote ASSIGNING <ls_remote>
|
||||||
WITH KEY path = zif_abapgit_definitions=>c_root_dir
|
WITH KEY file_path
|
||||||
filename = zif_abapgit_definitions=>c_dot_abapgit.
|
COMPONENTS path = zif_abapgit_definitions=>c_root_dir
|
||||||
|
filename = zif_abapgit_definitions=>c_dot_abapgit.
|
||||||
IF sy-subrc = 0.
|
IF sy-subrc = 0.
|
||||||
ro_dot = zcl_abapgit_dot_abapgit=>deserialize( <ls_remote>-data ).
|
ro_dot = zcl_abapgit_dot_abapgit=>deserialize( <ls_remote>-data ).
|
||||||
set_dot_abapgit( ro_dot ).
|
set_dot_abapgit( ro_dot ).
|
||||||
|
@ -432,8 +433,9 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
|
||||||
get_files_remote( ).
|
get_files_remote( ).
|
||||||
|
|
||||||
READ TABLE mt_remote ASSIGNING <ls_remote>
|
READ TABLE mt_remote ASSIGNING <ls_remote>
|
||||||
WITH KEY path = zif_abapgit_definitions=>c_root_dir
|
WITH KEY file_path
|
||||||
filename = zif_abapgit_apack_definitions=>c_dot_apack_manifest.
|
COMPONENTS path = zif_abapgit_definitions=>c_root_dir
|
||||||
|
filename = zif_abapgit_apack_definitions=>c_dot_apack_manifest.
|
||||||
IF sy-subrc = 0.
|
IF sy-subrc = 0.
|
||||||
ro_dot = zcl_abapgit_apack_reader=>deserialize( iv_package_name = ms_data-package
|
ro_dot = zcl_abapgit_apack_reader=>deserialize( iv_package_name = ms_data-package
|
||||||
iv_xstr = <ls_remote>-data ).
|
iv_xstr = <ls_remote>-data ).
|
||||||
|
@ -458,7 +460,8 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
|
||||||
mi_data_config = ri_config.
|
mi_data_config = ri_config.
|
||||||
|
|
||||||
READ TABLE mt_remote ASSIGNING <ls_remote>
|
READ TABLE mt_remote ASSIGNING <ls_remote>
|
||||||
WITH KEY path = zif_abapgit_data_config=>c_default_path.
|
WITH KEY file_path
|
||||||
|
COMPONENTS path = zif_abapgit_data_config=>c_default_path.
|
||||||
IF sy-subrc = 0.
|
IF sy-subrc = 0.
|
||||||
ri_config->from_json( mt_remote ).
|
ri_config->from_json( mt_remote ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
|
@ -226,8 +226,9 @@ CLASS ZCL_ABAPGIT_REPO_CONTENT_LIST IMPLEMENTATION.
|
||||||
IF lines( lt_remote ) > lc_new_repo_size.
|
IF lines( lt_remote ) > lc_new_repo_size.
|
||||||
" Less files means it's a new repo (with just readme and license, for example) which is ok
|
" Less files means it's a new repo (with just readme and license, for example) which is ok
|
||||||
READ TABLE lt_remote TRANSPORTING NO FIELDS
|
READ TABLE lt_remote TRANSPORTING NO FIELDS
|
||||||
WITH KEY path = zif_abapgit_definitions=>c_root_dir
|
WITH KEY file_path
|
||||||
filename = zif_abapgit_definitions=>c_dot_abapgit.
|
COMPONENTS path = zif_abapgit_definitions=>c_root_dir
|
||||||
|
filename = zif_abapgit_definitions=>c_dot_abapgit.
|
||||||
IF sy-subrc <> 0.
|
IF sy-subrc <> 0.
|
||||||
mi_log->add_warning( |Cannot find .abapgit.xml - Is this an abapGit repository?| ).
|
mi_log->add_warning( |Cannot find .abapgit.xml - Is this an abapGit repository?| ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
|
@ -88,7 +88,8 @@ CLASS zcl_abapgit_repo_online IMPLEMENTATION.
|
||||||
IF zcl_abapgit_objects=>exists( ls_item ) = abap_false.
|
IF zcl_abapgit_objects=>exists( ls_item ) = abap_false.
|
||||||
" Check if any package is included in remote
|
" Check if any package is included in remote
|
||||||
READ TABLE mt_remote TRANSPORTING NO FIELDS
|
READ TABLE mt_remote TRANSPORTING NO FIELDS
|
||||||
WITH KEY filename = zcl_abapgit_filename_logic=>c_package_file.
|
WITH KEY file
|
||||||
|
COMPONENTS filename = zcl_abapgit_filename_logic=>c_package_file.
|
||||||
IF sy-subrc <> 0.
|
IF sy-subrc <> 0.
|
||||||
" If not, prompt to create it
|
" If not, prompt to create it
|
||||||
lv_package = zcl_abapgit_services_basis=>create_package( iv_package ).
|
lv_package = zcl_abapgit_services_basis=>create_package( iv_package ).
|
||||||
|
|
|
@ -381,8 +381,9 @@ CLASS zcl_abapgit_gui_page_diff IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
READ TABLE it_remote ASSIGNING <ls_remote>
|
READ TABLE it_remote ASSIGNING <ls_remote>
|
||||||
WITH KEY filename = is_status-filename
|
WITH KEY file_path
|
||||||
path = is_status-path.
|
COMPONENTS path = is_status-path
|
||||||
|
filename = is_status-filename.
|
||||||
IF sy-subrc <> 0.
|
IF sy-subrc <> 0.
|
||||||
ASSIGN ls_r_dummy TO <ls_remote>.
|
ASSIGN ls_r_dummy TO <ls_remote>.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
|
@ -30,7 +30,9 @@ INTERFACE zif_abapgit_definitions
|
||||||
TYPES: data TYPE xstring,
|
TYPES: data TYPE xstring,
|
||||||
END OF ty_file .
|
END OF ty_file .
|
||||||
TYPES:
|
TYPES:
|
||||||
ty_files_tt TYPE STANDARD TABLE OF ty_file WITH DEFAULT KEY .
|
ty_files_tt TYPE STANDARD TABLE OF ty_file WITH DEFAULT KEY
|
||||||
|
WITH UNIQUE SORTED KEY file_path COMPONENTS path filename
|
||||||
|
WITH NON-UNIQUE SORTED KEY file COMPONENTS filename.
|
||||||
TYPES:
|
TYPES:
|
||||||
ty_string_tt TYPE STANDARD TABLE OF string WITH DEFAULT KEY .
|
ty_string_tt TYPE STANDARD TABLE OF string WITH DEFAULT KEY .
|
||||||
TYPES ty_git_branch_type TYPE c LENGTH 2 .
|
TYPES ty_git_branch_type TYPE c LENGTH 2 .
|
||||||
|
|
Loading…
Reference in New Issue
Block a user