separate repo from CREATE_BRANCH

This commit is contained in:
larshp 2018-08-05 09:58:32 +00:00 committed by Lars Hvam
parent 742f3e5e2c
commit d431f2d9d0
3 changed files with 42 additions and 39 deletions

View File

@ -4,6 +4,7 @@ CLASS zcl_abapgit_git_porcelain DEFINITION
CREATE PUBLIC . CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
CLASS-METHODS pull CLASS-METHODS pull
IMPORTING IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo_online !io_repo TYPE REF TO zcl_abapgit_repo_online
@ -26,15 +27,15 @@ CLASS zcl_abapgit_git_porcelain DEFINITION
zcx_abapgit_exception . zcx_abapgit_exception .
CLASS-METHODS create_branch CLASS-METHODS create_branch
IMPORTING IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo_online !iv_url TYPE string
!iv_name TYPE string !iv_name TYPE string
iv_from TYPE zif_abapgit_definitions=>ty_sha1 !iv_from TYPE zif_abapgit_definitions=>ty_sha1
RAISING RAISING
zcx_abapgit_exception . zcx_abapgit_exception .
CLASS-METHODS create_tag CLASS-METHODS create_tag
IMPORTING IMPORTING
!io_repo TYPE REF TO zcl_abapgit_repo_online !io_repo TYPE REF TO zcl_abapgit_repo_online
is_tag TYPE zif_abapgit_definitions=>ty_git_tag !is_tag TYPE zif_abapgit_definitions=>ty_git_tag
RAISING RAISING
zcx_abapgit_exception . zcx_abapgit_exception .
CLASS-METHODS delete_branch CLASS-METHODS delete_branch
@ -57,7 +58,6 @@ CLASS zcl_abapgit_git_porcelain DEFINITION
VALUE(rt_expanded) TYPE zif_abapgit_definitions=>ty_expanded_tt VALUE(rt_expanded) TYPE zif_abapgit_definitions=>ty_expanded_tt
RAISING RAISING
zcx_abapgit_exception . zcx_abapgit_exception .
PRIVATE SECTION. PRIVATE SECTION.
TYPES: BEGIN OF ty_tree, TYPES: BEGIN OF ty_tree,
path TYPE string, path TYPE string,
@ -132,7 +132,7 @@ ENDCLASS.
CLASS zcl_abapgit_git_porcelain IMPLEMENTATION. CLASS ZCL_ABAPGIT_GIT_PORCELAIN IMPLEMENTATION.
METHOD build_trees. METHOD build_trees.
@ -192,6 +192,15 @@ CLASS zcl_abapgit_git_porcelain IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD create_annotated_tag.
receive_pack_create_tag(
is_tag = is_tag
io_repo = io_repo ).
ENDMETHOD.
METHOD create_branch. METHOD create_branch.
DATA: lt_objects TYPE zif_abapgit_definitions=>ty_objects_tt, DATA: lt_objects TYPE zif_abapgit_definitions=>ty_objects_tt,
@ -206,7 +215,7 @@ CLASS zcl_abapgit_git_porcelain IMPLEMENTATION.
lv_pack = zcl_abapgit_git_pack=>encode( lt_objects ). lv_pack = zcl_abapgit_git_pack=>encode( lt_objects ).
zcl_abapgit_git_transport=>receive_pack( zcl_abapgit_git_transport=>receive_pack(
iv_url = io_repo->get_url( ) iv_url = iv_url
iv_old = c_zero iv_old = c_zero
iv_new = iv_from iv_new = iv_from
iv_branch_name = iv_name iv_branch_name = iv_name
@ -215,6 +224,25 @@ CLASS zcl_abapgit_git_porcelain IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD create_lightweight_tag.
DATA: lt_objects TYPE zif_abapgit_definitions=>ty_objects_tt,
lv_pack TYPE xstring.
* "client MUST send an empty packfile"
* https://github.com/git/git/blob/master/Documentation/technical/pack-protocol.txt#L514
lv_pack = zcl_abapgit_git_pack=>encode( lt_objects ).
zcl_abapgit_git_transport=>receive_pack(
iv_url = io_repo->get_url( )
iv_old = c_zero
iv_new = is_tag-sha1
iv_branch_name = is_tag-name
iv_pack = lv_pack ).
ENDMETHOD.
METHOD create_tag. METHOD create_tag.
IF is_tag-name CS ` `. IF is_tag-name CS ` `.
@ -699,32 +727,4 @@ CLASS zcl_abapgit_git_porcelain IMPLEMENTATION.
ENDLOOP. ENDLOOP.
ENDMETHOD. ENDMETHOD.
METHOD create_annotated_tag.
receive_pack_create_tag(
is_tag = is_tag
io_repo = io_repo ).
ENDMETHOD.
METHOD create_lightweight_tag.
DATA: lt_objects TYPE zif_abapgit_definitions=>ty_objects_tt,
lv_pack TYPE xstring.
* "client MUST send an empty packfile"
* https://github.com/git/git/blob/master/Documentation/technical/pack-protocol.txt#L514
lv_pack = zcl_abapgit_git_pack=>encode( lt_objects ).
zcl_abapgit_git_transport=>receive_pack(
iv_url = io_repo->get_url( )
iv_old = c_zero
iv_new = is_tag-sha1
iv_branch_name = is_tag-name
iv_pack = lv_pack ).
ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -80,7 +80,7 @@ ENDCLASS.
CLASS zcl_abapgit_services_git IMPLEMENTATION. CLASS ZCL_ABAPGIT_SERVICES_GIT IMPLEMENTATION.
METHOD commit. METHOD commit.
@ -140,15 +140,18 @@ CLASS zcl_abapgit_services_git IMPLEMENTATION.
RAISE EXCEPTION TYPE zcx_abapgit_cancel. RAISE EXCEPTION TYPE zcx_abapgit_cancel.
ENDIF. ENDIF.
****************
* TODO: move this part to ONLINE repo class
ASSERT lv_name CP 'refs/heads/+*'. ASSERT lv_name CP 'refs/heads/+*'.
zcl_abapgit_git_porcelain=>create_branch( zcl_abapgit_git_porcelain=>create_branch(
io_repo = lo_repo iv_url = lo_repo->get_url( )
iv_name = lv_name iv_name = lv_name
iv_from = lo_repo->get_sha1_remote( ) ). iv_from = lo_repo->get_sha1_remote( ) ).
" automatically switch to new branch " automatically switch to new branch
lo_repo->set_branch_name( lv_name ). lo_repo->set_branch_name( lv_name ).
*****************
MESSAGE 'Switched to new branch' TYPE 'S' ##NO_TEXT. MESSAGE 'Switched to new branch' TYPE 'S' ##NO_TEXT.

View File

@ -33,7 +33,7 @@ ENDCLASS.
CLASS zcl_abapgit_transport_2_branch IMPLEMENTATION. CLASS ZCL_ABAPGIT_TRANSPORT_2_BRANCH IMPLEMENTATION.
METHOD create. METHOD create.
@ -77,7 +77,7 @@ CLASS zcl_abapgit_transport_2_branch IMPLEMENTATION.
ASSERT iv_branch_name CP 'refs/heads/+*'. ASSERT iv_branch_name CP 'refs/heads/+*'.
TRY. TRY.
zcl_abapgit_git_porcelain=>create_branch( zcl_abapgit_git_porcelain=>create_branch(
io_repo = io_repository iv_url = io_repository->get_url( )
iv_name = iv_branch_name iv_name = iv_branch_name
iv_from = io_repository->get_sha1_remote( ) ). iv_from = io_repository->get_sha1_remote( ) ).