mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
#311 branches part1, interface changes
This commit is contained in:
parent
41ffa35699
commit
6bb3ed474f
|
@ -105,6 +105,31 @@ CLASS lcl_git_utils IMPLEMENTATION.
|
||||||
|
|
||||||
ENDCLASS. "lcl_git_utils
|
ENDCLASS. "lcl_git_utils
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* CLASS lcl_git_branch_list DEFINITION
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
CLASS lcl_git_branch_list DEFINITION FINAL CREATE PRIVATE.
|
||||||
|
PUBLIC SECTION.
|
||||||
|
DATA mt_branches TYPE ty_git_branch_list_tt READ-ONLY.
|
||||||
|
|
||||||
|
CLASS-METHODS create
|
||||||
|
IMPORTING iv_data TYPE string
|
||||||
|
RETURNING VALUE(ro_list) TYPE REF TO lcl_git_branch_list
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS find_by_name
|
||||||
|
IMPORTING iv_branch_name TYPE clike
|
||||||
|
RETURNING VALUE(rs_branch) TYPE ty_git_branch
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
CLASS-METHODS parse_branch_list
|
||||||
|
IMPORTING iv_data TYPE string
|
||||||
|
RETURNING VALUE(rt_list) TYPE ty_git_branch_list_tt
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
ENDCLASS. "lcl_git_branch_list
|
||||||
|
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
* CLASS lcl_transport DEFINITION
|
* CLASS lcl_transport DEFINITION
|
||||||
|
@ -133,7 +158,7 @@ CLASS lcl_git_transport DEFINITION FINAL.
|
||||||
|
|
||||||
CLASS-METHODS branches
|
CLASS-METHODS branches
|
||||||
IMPORTING iv_url TYPE string
|
IMPORTING iv_url TYPE string
|
||||||
RETURNING VALUE(rt_branch_list) TYPE ty_git_branch_list_tt
|
RETURNING VALUE(ro_branch_list) TYPE REF TO lcl_git_branch_list
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
CLASS-METHODS class_constructor.
|
CLASS-METHODS class_constructor.
|
||||||
|
@ -151,7 +176,7 @@ CLASS lcl_git_transport DEFINITION FINAL.
|
||||||
IMPORTING iv_url TYPE string
|
IMPORTING iv_url TYPE string
|
||||||
iv_service TYPE string
|
iv_service TYPE string
|
||||||
EXPORTING ei_client TYPE REF TO if_http_client
|
EXPORTING ei_client TYPE REF TO if_http_client
|
||||||
et_branch_list TYPE ty_git_branch_list_tt
|
eo_branch_list TYPE REF TO lcl_git_branch_list
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
CLASS-METHODS find_branch
|
CLASS-METHODS find_branch
|
||||||
|
@ -193,20 +218,6 @@ CLASS lcl_git_transport DEFINITION FINAL.
|
||||||
|
|
||||||
ENDCLASS. "lcl_transport DEFINITION
|
ENDCLASS. "lcl_transport DEFINITION
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
|
||||||
* CLASS lcl_git_branch_helper DEFINITION
|
|
||||||
*----------------------------------------------------------------------*
|
|
||||||
CLASS lcl_git_branch_helper DEFINITION FINAL.
|
|
||||||
PUBLIC SECTION.
|
|
||||||
|
|
||||||
CLASS-METHODS parse_branch_list
|
|
||||||
IMPORTING iv_data TYPE string
|
|
||||||
RETURNING VALUE(rt_list) TYPE ty_git_branch_list_tt
|
|
||||||
RAISING lcx_exception.
|
|
||||||
|
|
||||||
ENDCLASS. "lcl_git_branch_helper
|
|
||||||
|
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
* CLASS lcl_pack DEFINITION
|
* CLASS lcl_pack DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
@ -407,9 +418,7 @@ CLASS lcl_git_transport IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD find_branch.
|
METHOD find_branch.
|
||||||
|
|
||||||
DATA: lt_branch_list TYPE ty_git_branch_list_tt,
|
DATA: lo_branch_list TYPE REF TO lcl_git_branch_list.
|
||||||
ls_branch_list LIKE LINE OF lt_branch_list.
|
|
||||||
|
|
||||||
|
|
||||||
branch_list(
|
branch_list(
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
@ -417,20 +426,10 @@ CLASS lcl_git_transport IMPLEMENTATION.
|
||||||
iv_service = iv_service
|
iv_service = iv_service
|
||||||
IMPORTING
|
IMPORTING
|
||||||
ei_client = ei_client
|
ei_client = ei_client
|
||||||
et_branch_list = lt_branch_list ).
|
eo_branch_list = lo_branch_list ).
|
||||||
|
|
||||||
IF ev_branch IS SUPPLIED.
|
IF ev_branch IS SUPPLIED.
|
||||||
IF iv_branch_name IS INITIAL.
|
ev_branch = lo_branch_list->find_by_name( iv_branch_name )-sha1.
|
||||||
lcx_exception=>raise( 'branch empty' ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
READ TABLE lt_branch_list INTO ls_branch_list
|
|
||||||
WITH KEY name = iv_branch_name.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
lcx_exception=>raise( 'Branch not found' ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ev_branch = ls_branch_list-sha1.
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD. "find_branch
|
ENDMETHOD. "find_branch
|
||||||
|
@ -446,7 +445,7 @@ CLASS lcl_git_transport IMPLEMENTATION.
|
||||||
iv_service = c_service-upload
|
iv_service = c_service-upload
|
||||||
IMPORTING
|
IMPORTING
|
||||||
ei_client = li_client
|
ei_client = li_client
|
||||||
et_branch_list = rt_branch_list ).
|
eo_branch_list = ro_branch_list ).
|
||||||
li_client->close( ).
|
li_client->close( ).
|
||||||
|
|
||||||
ENDMETHOD. "branches
|
ENDMETHOD. "branches
|
||||||
|
@ -499,9 +498,9 @@ CLASS lcl_git_transport IMPLEMENTATION.
|
||||||
ii_client = ei_client ).
|
ii_client = ei_client ).
|
||||||
|
|
||||||
lv_data = ei_client->response->get_cdata( ).
|
lv_data = ei_client->response->get_cdata( ).
|
||||||
et_branch_list = lcl_git_branch_helper=>parse_branch_list( lv_data ).
|
eo_branch_list = lcl_git_branch_list=>create( lv_data ).
|
||||||
|
|
||||||
ENDMETHOD. "ref_discovery
|
ENDMETHOD. "branch_list
|
||||||
|
|
||||||
METHOD send_receive.
|
METHOD send_receive.
|
||||||
|
|
||||||
|
@ -707,9 +706,29 @@ CLASS lcl_git_transport IMPLEMENTATION.
|
||||||
ENDCLASS. "lcl_transport IMPLEMENTATION
|
ENDCLASS. "lcl_transport IMPLEMENTATION
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
* CLASS lcl_git_branch_helper IMPLEMENTATION
|
* CLASS lcl_git_branch_list IMPLEMENTATION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_git_branch_helper IMPLEMENTATION.
|
CLASS lcl_git_branch_list IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD create.
|
||||||
|
CREATE OBJECT ro_list.
|
||||||
|
ro_list->mt_branches = parse_branch_list( iv_data = iv_data ).
|
||||||
|
ENDMETHOD. "create
|
||||||
|
|
||||||
|
METHOD find_by_name.
|
||||||
|
|
||||||
|
IF iv_branch_name IS INITIAL.
|
||||||
|
lcx_exception=>raise( 'Branch name empty' ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
READ TABLE mt_branches INTO rs_branch
|
||||||
|
WITH KEY name = iv_branch_name.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
lcx_exception=>raise( 'Branch not found' ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD. "find_by_name
|
||||||
|
|
||||||
|
|
||||||
METHOD parse_branch_list.
|
METHOD parse_branch_list.
|
||||||
|
|
||||||
|
@ -753,7 +772,7 @@ CLASS lcl_git_branch_helper IMPLEMENTATION.
|
||||||
ENDMETHOD. "parse_branch_list
|
ENDMETHOD. "parse_branch_list
|
||||||
|
|
||||||
|
|
||||||
ENDCLASS. "lcl_git_branch_helper
|
ENDCLASS. "lcl_git_branch_list
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -161,7 +161,8 @@ CLASS lcl_branch_overview IMPLEMENTATION.
|
||||||
* get objects directly from git, mo_repo only contains a shallow clone of only
|
* get objects directly from git, mo_repo only contains a shallow clone of only
|
||||||
* the selected branch
|
* the selected branch
|
||||||
|
|
||||||
gt_branches = lcl_git_transport=>branches( io_repo->get_url( ) ).
|
"TODO refactor
|
||||||
|
gt_branches = lcl_git_transport=>branches( io_repo->get_url( ) )->mt_branches.
|
||||||
|
|
||||||
DELETE gt_branches WHERE name = 'refs/heads/gh-pages' ##NO_TEXT.
|
DELETE gt_branches WHERE name = 'refs/heads/gh-pages' ##NO_TEXT.
|
||||||
DELETE gt_branches WHERE name CP 'refs/tags/*' ##NO_TEXT.
|
DELETE gt_branches WHERE name CP 'refs/tags/*' ##NO_TEXT.
|
||||||
|
|
|
@ -308,7 +308,8 @@ CLASS lcl_merge IMPLEMENTATION.
|
||||||
lt_upload TYPE ty_git_branch_list_tt.
|
lt_upload TYPE ty_git_branch_list_tt.
|
||||||
|
|
||||||
|
|
||||||
lt_branches = lcl_git_transport=>branches( gs_merge-repo->get_url( ) ).
|
"TODO refactor
|
||||||
|
lt_branches = lcl_git_transport=>branches( gs_merge-repo->get_url( ) )->mt_branches.
|
||||||
|
|
||||||
_find iv_source gs_merge-source.
|
_find iv_source gs_merge-source.
|
||||||
_find iv_target gs_merge-target.
|
_find iv_target gs_merge-target.
|
||||||
|
|
|
@ -220,17 +220,17 @@ CLASS lcl_popups IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD branch_list_popup.
|
METHOD branch_list_popup.
|
||||||
|
|
||||||
DATA: lt_branches TYPE ty_git_branch_list_tt,
|
DATA: lo_branches TYPE REF TO lcl_git_branch_list,
|
||||||
lv_answer TYPE c LENGTH 1,
|
lv_answer TYPE c LENGTH 1,
|
||||||
lt_selection TYPE TABLE OF spopli.
|
lt_selection TYPE TABLE OF spopli.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_sel> LIKE LINE OF lt_selection,
|
FIELD-SYMBOLS: <ls_sel> LIKE LINE OF lt_selection,
|
||||||
<ls_branch> LIKE LINE OF lt_branches.
|
<ls_branch> LIKE LINE OF lcl_git_branch_list=>mt_branches.
|
||||||
|
|
||||||
|
|
||||||
lt_branches = lcl_git_transport=>branches( iv_url ).
|
lo_branches = lcl_git_transport=>branches( iv_url ).
|
||||||
|
|
||||||
LOOP AT lt_branches ASSIGNING <ls_branch>.
|
LOOP AT lo_branches->mt_branches ASSIGNING <ls_branch>.
|
||||||
APPEND INITIAL LINE TO lt_selection ASSIGNING <ls_sel>.
|
APPEND INITIAL LINE TO lt_selection ASSIGNING <ls_sel>.
|
||||||
<ls_sel>-varoption = <ls_branch>-name.
|
<ls_sel>-varoption = <ls_branch>-name.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
@ -261,8 +261,7 @@ CLASS lcl_popups IMPLEMENTATION.
|
||||||
READ TABLE lt_selection ASSIGNING <ls_sel> WITH KEY selflag = abap_true.
|
READ TABLE lt_selection ASSIGNING <ls_sel> WITH KEY selflag = abap_true.
|
||||||
ASSERT sy-subrc = 0.
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
READ TABLE lt_branches INTO rs_branch WITH KEY name = <ls_sel>-varoption.
|
rs_branch = lo_branches->find_by_name( <ls_sel>-varoption ).
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user