* fixed error when activating on ABAP 7.02
* implemented suggestion, direct assignment instead of casting
* implemented suggestion (now using the interface)
* changed lr_popups to li_popups
Since all object handler contains exactly the same CASE statement for STEP definition, I would recommend that each object handler simply returns the STEP he belongs to.
This fix should "simply" issue #2499.
* Update zcl_abapgit_objects_program.clas.abap
Found a situation on my project where on pulling code from a zip file, the error RS_CUA_INTERNAL_WRITE sy-subrc = 2 popped.
The error was due to the content of XML file exported : <CUA><ADM>ACTCODE was containing an 'X' value for a single file. I corrected the file putting it blank and it worked. But it's a fastidious task so I fixed the method ZCL_ABAPGIT_OBJECTS_PROGRAM->auto_correct_cua_adm in order to fix this field also when it contains only an 'X'. Tested ok on my system so I propose this small change.
* Update zcl_abapgit_objects_program.clas.abap
* Update zcl_abapgit_objects_program.clas.abap
Use the same check SAP does in form check_adm of include LSMPIF03 for the CUA values.
* Leading spaces are lost when pulling bug #2571
Reason: during the pull (deserialization), the method `PARSE` of `ZCL_ABAPGIT_XML` does a `li_parser->set_normalizing( iv_normalize )` whose parameter has the default value "true", which strips leading and trailing spaces.
Solution: use `li_parser->add_strip_space_element( )` instead of using the normalization, which seems to work in elementary objects (clas, devc, doma, dtel, enho, enqu, fugr, intf, prog, scp1, tabl, tran, ttyp), but I fear of side effects throughout all abapGit features.
* #2571 zcl_abapgit_xml iv_normalize removed+AU
- Removal of useless parameter IV_NORMALIZE of method PARSE
- Abap Unit test added for testing the method PARSE for an XML valuecontaining leading and trailing spaces
* renaming attribute lo_xml to mo_xml
* Hotkeys no longer depend on abapGit installation
When this commit is applied hotkeys also work with
the single abapGit report. Limitation is still that users
only can override hotkeys with the installed abapGit repo.
* Fix hotkey display when no user def. hotkeys
* New: Override hotkeys within one file abapGit report
When this commit is applied it's possible to override the default
shortcut also in the one file abapGit report. It's no longer necessary
to installe the full abapGit repo to use this feature
* Extract is_merged + check in hotkey logic
* Allow access to private repos when using ADT
In case of using a private repository in ADT (aka ABAP in Eclipse), username and password are passed to the backend system. The ADT backend coding currently handles this via class ZCL_ABAPGIT_DEFAULT_AUTH_INFO. To avoid sending a password dialog in the backend system, class CL_ABAPGIT_PASSWORD_DIALOG needs to be adjusted to take over user/pw from ZCL_ABAPGIT_DEFAULT_AUTH_INFO in a generic way. I know this is not nice and it would be better to have ZCL_ABAPGIT_DEFAULT_AUTH_INFO in ZABAPGIT. Even the best solution would be to re-use ZCL_ABAPGIT_LOGIN_MANAGER instead, but I would recommend to refactor this in a new pull request later on...
* Add comment
Add comment for temporary solution and link to PR#2635
* Avoid DYNPRO_SEND_IN_BACKGROUND while ADT Pull
When ADT (aka ABAP in Eclipse) is used to trigger a pull request, there is no SAPGUI available in the backend system. Whenever a dynpro is called, a DYNPRO_SEND_IN_BACKGROUND short dump occurs.
This commit fixes issue #2632.
Additional remark: In case of a private repository, username and password are passed to the backend system. The ADT backend coding handles this via class ZCL_ABAPGIT_DEFAULT_AUTH_INFO. To avoid sending a password dialog in the backend system (class CL_ABAPGIT_PASSWORD_DIALOG), ZABAPGIT coding needs to be adjusted to take over user/pw from ZCL_ABAPGIT_DEFAULT_AUTH_INFO. I know this is not nice and it would be better to have ZCL_ABAPGIT_DEFAULT_AUTH_INFO in ZABAPGIT. Even the best solution would be to re-use ZCL_ABAPGIT_LOGIN_MANAGER, but I would recommend to refactor this in a new pull request later on...
* Fix abaplint identiation failure
Fix abaplint identiation failure
* Rest ZCL_ABAPGIT_PASSWORD_DIALOG
Rest ZCL_ABAPGIT_PASSWORD_DIALOG to prelimiary version.
To be changed in a different pull request....
* Add user exit for serialize_abap_clif_source
* Document CLIF serializer exit
* Add exit redirection for CLIF serializer
* Add link to example for CLIF serialization exit
* report name of xml file in case of format error
In case of an error in the XML file, for support reason I want to know which file causes the error. The file name is mentioned if the XML itself is corrupt or if there is an XML version mismatch.
This PR fixes issue #2619.
* fix abaplint issues
fix abaplint issues
Issue #2579: diff still shown after pull of ENHO hooks (implicit enhancements i.e. code added at start/end of existing methods, etc.)
Reason: if the author has created and deleted implicit enhancements in the original system, the numbering doesn't start from 1 (this is the numbering we can see for the statement ENHANCEMENT, for instance ENHANCEMENT 1. ... ENDENHANCEMENT.) When pulling in another system, the numbering will start from 1, so it will differ from the source. As this enhancement number is serialized by abapGit in the XML, it will detect a difference.
Correction: the method SERIALIZE of class ZCL_ABAPGIT_OBJECT_ENHO_HOOK is changed so that to not serialize the enhancement number.
Three issues are corrected:
- Enhancement events are not serialized at all, nor deserialized (missing feature).
- The codeof new enhancement methods (not the implicit enhancements of existing methods, the code for methods added) are serialized but not deserialized (incomplete feature).
- DIFF may also appear after pulling ENHO objects, concerning attributes (OTR text ID being different) and method parameters (author, date, etc.)
Corrections:
- Add serialization/deserialization of events in class ZCL_ABAPGIT_OBJECT_ENHO_CLIF
- Add deserialization of method implementations in class ZCL_ABAPGIT_OBJECT_ENHO_CLASS
- I havealso moved the existing method SERIALIZE_INCLUDES from ZCL_ABAPGIT_OBJECT_ENHO_CLIF to ZCL_ABAPGIT_OBJECT_ENHO_CLASS and created DESERIALIZE_INCLUDES in the latter class because method implementations exist only for classes, not for interfaces, so it should be done in "CLASS", not in "CLIF".
- DIFF criteria cleared in method SERIALIZE of class ZCL_ABAPGIT_OBJECT_ENHO_CLIF
#2498 Two unit tests in ZCL_ABAPGIT_GUI_PAGE_DIFF failing
It concerns two test methods which test zcl_abapgit_gui_page_diff%3D>get_patch_data. The parameter IV_PATCH is passed with an incorrect value.
This issue is due to commit 389512f690 on Feb 26, 2019
Correction of method get_patch_data_add:
- Before: |add_patch_zcl_test_git_add_p.clas.abap_19|
- After: |patch_line_add_zcl_test_git_add_p.clas.abap_0_19|
Correction of method get_patch_data_remove:
- Before: |remove_patch_ztest_patch.prog.abap_39|
- After: |patch_line_remove_ztest_patch.prog.abap_0_39|
* shortdump ZCL_ABAPGIT_ZLIB->Decompress #2483
Short dump ASSERTION_FAILED while pulling from a Git repository.
It's because of block type '00' (variable `lv_btype`) not handled at all.
00 is "non-compressed blocks", see https://www.ietf.org/rfc/rfc1951.txt section 3.2.4
The issue used to happen with Azure DevOps website, for "tree" objects (100644...) but not all tree objects.
Correction : algorithm added to handle non-compressed blocks. Test method added to complete the current test for blocks with fixed Huffman codes (01). Also one test method added for testing blocks with dynamic Huffman codes (10), test data taken from ZAZLIB.
* Lint code alignment issue
Short dump GETWA_NOT_ASSIGNED because of stupid copy/paste error in method SERIALIZE of ZCL_ABAPGIT_OBJECT_ENHO_CLIF:
LOOP AT lt_tab_types ASSIGNING <ls_type>.
CLEAR: <ls_attr>-author,
<ls_attr>-createdon,
<ls_attr>-changedby,
<ls_attr>-changedon.
ENDLOOP.
Replace all <ls_attr> with <ls_type>.
+ clearing of <ls_type>-descript_id (OTR text ID) so that the DIFF ignores this field (new OTR texts, with new IDs, are always created while pulling so the ID must not be compared).