mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 13:03:01 +08:00
Merge pull request #1083 from christianguenter2/tags-in-branch-overview
Tags in branch overview and tag fixes
This commit is contained in:
commit
5cffdbe50d
|
@ -602,6 +602,8 @@ CLASS lcl_git_pack IMPLEMENTATION.
|
||||||
rv_type = zif_abapgit_definitions=>gc_type-tree.
|
rv_type = zif_abapgit_definitions=>gc_type-tree.
|
||||||
WHEN '011'.
|
WHEN '011'.
|
||||||
rv_type = zif_abapgit_definitions=>gc_type-blob.
|
rv_type = zif_abapgit_definitions=>gc_type-blob.
|
||||||
|
WHEN '100'.
|
||||||
|
rv_type = zif_abapgit_definitions=>gc_type-tag.
|
||||||
WHEN '111'.
|
WHEN '111'.
|
||||||
rv_type = zif_abapgit_definitions=>gc_type-ref_d.
|
rv_type = zif_abapgit_definitions=>gc_type-ref_d.
|
||||||
WHEN OTHERS.
|
WHEN OTHERS.
|
||||||
|
|
|
@ -20,6 +20,7 @@ CLASS lcl_branch_overview DEFINITION FINAL.
|
||||||
message TYPE string,
|
message TYPE string,
|
||||||
branch TYPE string,
|
branch TYPE string,
|
||||||
merge TYPE string,
|
merge TYPE string,
|
||||||
|
tags TYPE stringtab,
|
||||||
create TYPE STANDARD TABLE OF ty_create WITH DEFAULT KEY,
|
create TYPE STANDARD TABLE OF ty_create WITH DEFAULT KEY,
|
||||||
compressed TYPE abap_bool,
|
compressed TYPE abap_bool,
|
||||||
END OF ty_commit.
|
END OF ty_commit.
|
||||||
|
@ -54,11 +55,14 @@ CLASS lcl_branch_overview DEFINITION FINAL.
|
||||||
get_git_objects
|
get_git_objects
|
||||||
IMPORTING io_repo TYPE REF TO lcl_repo_online
|
IMPORTING io_repo TYPE REF TO lcl_repo_online
|
||||||
RETURNING VALUE(rt_objects) TYPE zif_abapgit_definitions=>ty_objects_tt
|
RETURNING VALUE(rt_objects) TYPE zif_abapgit_definitions=>ty_objects_tt
|
||||||
|
RAISING zcx_abapgit_exception,
|
||||||
|
determine_tags
|
||||||
RAISING zcx_abapgit_exception.
|
RAISING zcx_abapgit_exception.
|
||||||
|
|
||||||
CLASS-DATA:
|
CLASS-DATA:
|
||||||
gt_branches TYPE lcl_git_branch_list=>ty_git_branch_list_tt,
|
gt_branches TYPE lcl_git_branch_list=>ty_git_branch_list_tt,
|
||||||
gt_commits TYPE TABLE OF ty_commit.
|
gt_commits TYPE TABLE OF ty_commit,
|
||||||
|
gt_tags TYPE lcl_git_branch_list=>ty_git_branch_list_tt.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -143,6 +147,7 @@ CLASS lcl_branch_overview IMPLEMENTATION.
|
||||||
|
|
||||||
determine_branch( ).
|
determine_branch( ).
|
||||||
determine_merges( ).
|
determine_merges( ).
|
||||||
|
determine_tags( ).
|
||||||
fixes( ).
|
fixes( ).
|
||||||
|
|
||||||
SORT gt_commits BY time ASCENDING.
|
SORT gt_commits BY time ASCENDING.
|
||||||
|
@ -153,6 +158,8 @@ CLASS lcl_branch_overview IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD get_git_objects.
|
METHOD get_git_objects.
|
||||||
|
|
||||||
|
DATA: lo_branch_list TYPE REF TO lcl_git_branch_list.
|
||||||
|
|
||||||
lcl_progress=>show( iv_key = 'Get git objects'
|
lcl_progress=>show( iv_key = 'Get git objects'
|
||||||
iv_current = 1
|
iv_current = 1
|
||||||
iv_total = 1
|
iv_total = 1
|
||||||
|
@ -162,7 +169,11 @@ CLASS lcl_branch_overview IMPLEMENTATION.
|
||||||
* the selected branch
|
* the selected branch
|
||||||
|
|
||||||
"TODO refactor
|
"TODO refactor
|
||||||
gt_branches = lcl_git_transport=>branches( io_repo->get_url( ) )->get_branches_only( ).
|
|
||||||
|
lo_branch_list = lcl_git_transport=>branches( io_repo->get_url( ) ).
|
||||||
|
|
||||||
|
gt_branches = lo_branch_list->get_branches_only( ).
|
||||||
|
gt_tags = lo_branch_list->get_tags_only( ).
|
||||||
|
|
||||||
lcl_git_transport=>upload_pack( EXPORTING io_repo = io_repo
|
lcl_git_transport=>upload_pack( EXPORTING io_repo = io_repo
|
||||||
iv_deepen = abap_false
|
iv_deepen = abap_false
|
||||||
|
@ -298,6 +309,26 @@ CLASS lcl_branch_overview IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD determine_tags.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_tag> TYPE lcl_git_branch_list=>ty_git_branch,
|
||||||
|
<ls_commit> TYPE lcl_branch_overview=>ty_commit.
|
||||||
|
|
||||||
|
LOOP AT gt_tags ASSIGNING <ls_tag>.
|
||||||
|
|
||||||
|
READ TABLE gt_commits WITH KEY sha1 = <ls_tag>-sha1
|
||||||
|
ASSIGNING <ls_commit>.
|
||||||
|
CHECK sy-subrc = 0.
|
||||||
|
|
||||||
|
INSERT replace( val = <ls_tag>-name
|
||||||
|
sub = zif_abapgit_definitions=>gc_tag_prefix
|
||||||
|
with = `` ) INTO TABLE <ls_commit>-tags.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
***********************
|
***********************
|
||||||
|
@ -412,6 +443,7 @@ CLASS lcl_gui_page_boverview IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD body.
|
METHOD body.
|
||||||
|
DATA: tag TYPE string.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_commit> LIKE LINE OF mt_commits,
|
FIELD-SYMBOLS: <ls_commit> LIKE LINE OF mt_commits,
|
||||||
<ls_create> LIKE LINE OF <ls_commit>-create.
|
<ls_create> LIKE LINE OF <ls_commit>-create.
|
||||||
|
@ -470,10 +502,18 @@ CLASS lcl_gui_page_boverview IMPLEMENTATION.
|
||||||
escape_message( <ls_commit>-message )
|
escape_message( <ls_commit>-message )
|
||||||
}", dotColor: "black", dotSize: 15, messageHashDisplay: false, messageAuthorDisplay: false\});| ).
|
}", dotColor: "black", dotSize: 15, messageHashDisplay: false, messageAuthorDisplay: false\});| ).
|
||||||
ELSEIF <ls_commit>-merge IS INITIAL.
|
ELSEIF <ls_commit>-merge IS INITIAL.
|
||||||
|
|
||||||
|
" gitgraph doesn't support multiple tags per commit yet.
|
||||||
|
" Therefore we concatenate them.
|
||||||
|
" https://github.com/nicoespeon/gitgraph.js/issues/143
|
||||||
|
|
||||||
|
tag = concat_lines_of( table = <ls_commit>-tags
|
||||||
|
sep = ` | ` ).
|
||||||
|
|
||||||
ro_html->add( |{ escape_branch( <ls_commit>-branch ) }.commit(\{message: "{
|
ro_html->add( |{ escape_branch( <ls_commit>-branch ) }.commit(\{message: "{
|
||||||
escape_message( <ls_commit>-message ) }", author: "{
|
escape_message( <ls_commit>-message ) }", author: "{
|
||||||
<ls_commit>-author }", sha1: "{
|
<ls_commit>-author }", sha1: "{
|
||||||
<ls_commit>-sha1(7) }"\});| ).
|
<ls_commit>-sha1(7) }", tag: "{ tag }"\});| ).
|
||||||
ELSE.
|
ELSE.
|
||||||
ro_html->add( |{ escape_branch( <ls_commit>-merge ) }.merge({
|
ro_html->add( |{ escape_branch( <ls_commit>-merge ) }.merge({
|
||||||
escape_branch( <ls_commit>-branch ) }, \{message: "{
|
escape_branch( <ls_commit>-branch ) }, \{message: "{
|
||||||
|
|
|
@ -137,7 +137,13 @@ CLASS lcl_popups DEFINITION FINAL.
|
||||||
EXPORTING
|
EXPORTING
|
||||||
ev_url TYPE abaptxt255-line
|
ev_url TYPE abaptxt255-line
|
||||||
ev_package TYPE tdevc-devclass
|
ev_package TYPE tdevc-devclass
|
||||||
ev_branch TYPE textl-line.
|
ev_branch TYPE textl-line,
|
||||||
|
|
||||||
|
remove_tag_prefix
|
||||||
|
IMPORTING
|
||||||
|
iv_text TYPE string
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_text) TYPE spopli-varoption.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -302,21 +308,18 @@ CLASS lcl_popups IMPLEMENTATION.
|
||||||
METHOD create_tag_popup.
|
METHOD create_tag_popup.
|
||||||
|
|
||||||
DATA: lv_answer TYPE c LENGTH 1,
|
DATA: lv_answer TYPE c LENGTH 1,
|
||||||
lt_fields TYPE TABLE OF sval,
|
lt_fields TYPE TABLE OF sval.
|
||||||
lv_text_question TYPE string.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_field> LIKE LINE OF lt_fields.
|
FIELD-SYMBOLS: <ls_field> LIKE LINE OF lt_fields.
|
||||||
|
|
||||||
CLEAR: ev_name, ev_cancel.
|
CLEAR: ev_name, ev_cancel.
|
||||||
|
|
||||||
lv_text_question = `You create a tag from current commit ` && iv_sha1(7) && ` continue?`.
|
add_field( EXPORTING iv_tabname = 'TOAVALUE'
|
||||||
|
iv_fieldname = 'REFER_CODE'
|
||||||
lv_answer = lcl_popups=>popup_to_confirm( titlebar = `Create a tag?`
|
iv_fieldtext = 'SHA'
|
||||||
text_question = lv_text_question ).
|
iv_value = iv_sha1(7)
|
||||||
IF lv_answer <> '1'.
|
iv_field_attr = '05'
|
||||||
ev_cancel = abap_true.
|
CHANGING ct_fields = lt_fields ).
|
||||||
RETURN.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
add_field( EXPORTING iv_tabname = 'TEXTL'
|
add_field( EXPORTING iv_tabname = 'TEXTL'
|
||||||
iv_fieldname = 'LINE'
|
iv_fieldname = 'LINE'
|
||||||
|
@ -341,7 +344,8 @@ CLASS lcl_popups IMPLEMENTATION.
|
||||||
IF lv_answer = 'A'.
|
IF lv_answer = 'A'.
|
||||||
ev_cancel = abap_true.
|
ev_cancel = abap_true.
|
||||||
ELSE.
|
ELSE.
|
||||||
READ TABLE lt_fields INDEX 1 ASSIGNING <ls_field>.
|
READ TABLE lt_fields WITH KEY fieldname = 'LINE'
|
||||||
|
ASSIGNING <ls_field>.
|
||||||
ASSERT sy-subrc = 0.
|
ASSERT sy-subrc = 0.
|
||||||
ev_name = |{ zif_abapgit_definitions=>gc_tag_prefix }{ <ls_field>-value }|.
|
ev_name = |{ zif_abapgit_definitions=>gc_tag_prefix }{ <ls_field>-value }|.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -591,14 +595,16 @@ CLASS lcl_popups IMPLEMENTATION.
|
||||||
lo_branches = lcl_git_transport=>branches( iv_url ).
|
lo_branches = lcl_git_transport=>branches( iv_url ).
|
||||||
lt_tags = lo_branches->get_tags_only( ).
|
lt_tags = lo_branches->get_tags_only( ).
|
||||||
|
|
||||||
|
IF lines( lt_tags ) = 0.
|
||||||
|
zcx_abapgit_exception=>raise( `There are no tags for this repository` ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
IF iv_select_mode = abap_true.
|
IF iv_select_mode = abap_true.
|
||||||
|
|
||||||
LOOP AT lt_tags ASSIGNING <ls_tag>.
|
LOOP AT lt_tags ASSIGNING <ls_tag>.
|
||||||
|
|
||||||
INSERT INITIAL LINE INTO lt_selection INDEX 1 ASSIGNING <ls_sel>.
|
INSERT INITIAL LINE INTO lt_selection INDEX 1 ASSIGNING <ls_sel>.
|
||||||
<ls_sel>-varoption = replace( val = <ls_tag>-name
|
<ls_sel>-varoption = remove_tag_prefix( <ls_tag>-name ).
|
||||||
sub = zif_abapgit_definitions=>gc_tag_prefix
|
|
||||||
with = '' ).
|
|
||||||
|
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
|
@ -639,9 +645,7 @@ CLASS lcl_popups IMPLEMENTATION.
|
||||||
|
|
||||||
LOOP AT lt_tags ASSIGNING <ls_tag>.
|
LOOP AT lt_tags ASSIGNING <ls_tag>.
|
||||||
|
|
||||||
<ls_tag>-name = replace( val = <ls_tag>-name
|
<ls_tag>-name = remove_tag_prefix( <ls_tag>-name ).
|
||||||
sub = zif_abapgit_definitions=>gc_tag_prefix
|
|
||||||
with = '' ).
|
|
||||||
<ls_tag>-sha1 = <ls_tag>-sha1(7).
|
<ls_tag>-sha1 = <ls_tag>-sha1(7).
|
||||||
|
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
@ -1225,4 +1229,15 @@ CLASS lcl_popups IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD remove_tag_prefix.
|
||||||
|
|
||||||
|
rv_text = iv_text.
|
||||||
|
|
||||||
|
REPLACE FIRST OCCURRENCE OF zif_abapgit_definitions=>gc_tag_prefix
|
||||||
|
IN rv_text
|
||||||
|
WITH ''.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -155,6 +155,7 @@ INTERFACE zif_abapgit_definitions
|
||||||
commit TYPE zif_abapgit_definitions=>ty_type VALUE 'commit', "#EC NOTEXT
|
commit TYPE zif_abapgit_definitions=>ty_type VALUE 'commit', "#EC NOTEXT
|
||||||
tree TYPE zif_abapgit_definitions=>ty_type VALUE 'tree', "#EC NOTEXT
|
tree TYPE zif_abapgit_definitions=>ty_type VALUE 'tree', "#EC NOTEXT
|
||||||
ref_d TYPE zif_abapgit_definitions=>ty_type VALUE 'ref_d', "#EC NOTEXT
|
ref_d TYPE zif_abapgit_definitions=>ty_type VALUE 'ref_d', "#EC NOTEXT
|
||||||
|
tag TYPE zif_abapgit_definitions=>ty_type VALUE 'tag', "#EC NOTEXT
|
||||||
blob TYPE zif_abapgit_definitions=>ty_type VALUE 'blob', "#EC NOTEXT
|
blob TYPE zif_abapgit_definitions=>ty_type VALUE 'blob', "#EC NOTEXT
|
||||||
END OF gc_type .
|
END OF gc_type .
|
||||||
CONSTANTS:
|
CONSTANTS:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user