* Properly ignore files during deserialize
Closes#5426
This moves the ignore logic from `zcl_abapgit_files_status->prepare_remote` to an option of `zcl_abapgit_repo->get_files_remote`. Deserialize can then ignore the files already when getting them via `get_files_remote`.
PS: Required for https://github.com/exercism/abap/pull/82
* Update zcl_abapgit_repo.clas.abap
* Update zcl_abapgit_repo.clas.abap
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
- Eliminate flashing of progress bar during deserialize
- Updated description for deserialize steps
- Add steps to log (see below)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* TABL: Properly show inactive objects
Current `is_active` check is insufficient for DDIC objects and can't detect "new" or "partically active" objects.
Introduces a new `is_active_ddic` method in `zcl_abapgit_objects_super` which should be used by all DDIC types (follow-up).
Ref #5294
* Update zcl_abapgit_objects.clas.abap
* Update
* Don't include XML when serializing AFF
Avoids output of metadata XML when serialized object contains JSON (ABAP file format).
Preparation for #5126
PS: Contains new and updated unit tests
* Rename is_json_metadata
* CP
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Adds transport number for `zif_abapgit_object~deserialize` and `zif_abapgit_object~delete` to pass the transport number to the object classes.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* performance optimization parallel mode
in parallel mode a new session is created for each object to be serialized. method IS_TYPE_SUPPORTED is called in each new session with only one object type. however all objects are loaded via method SUPPORTED_LIST. this change implements a specific cache for method IS_TYPE_SUPPORTED.
* Update src/objects/zcl_abapgit_objects.clas.abap
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
* moved type defintion to PRIVATE SECTION
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
* Refactor: Consolidate front-end classes
There's no need for two "front-end classes". Moves all of ZCL_ABAPGIT_GUI_FUNCTIONS to ZCL_ABAPGIT_FRONTEND_SERVICES. Now all front-end calls are nicely together.
No functional change, some method reordering.
Ref #2510, #5145
* Add missing interface
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Refactor: Jump to Object Logic
The goal is to greatly simplify the code to jump to an object, and to separate UI and object layers some more.
This PR introduces GUI Jumper (`zcl/if_abapgit_gui_jumper`), which covers all generic options to show an object. It tries the following options in order:
- ADT (if enabled)
- Workbench with line number
- Workbench without line number
- Transport System (new)
Only if all fail, abapGit will call the object-specific handler.
Next steps:
- Remove `jump_adt` and `jump_se11` from `zcl_abapgit_objects_super` and replace by GUI Jumper
- Remove almost all object-specific jump handler since they are covered by GUI Jumper now
* Add class
* Lint
* Misleading name
* Change Package Assignment
Previously, if an object was assigned to another package (but not changed otherwise), AG would delete and re-create the object. This was also visible in the "Selective Pull" popups:
The new process is smarter and detects such changes. It re-assigns the package (via a TADIR change) and avoids dropping and re-creating. The package overwrite popup is also avoided (it will still appear if the object itself was changed, too):
* Better icon
* Add unit test
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Alexander Tsybulsky <sbcgua@users.noreply.github.com>
* Improvements for Objects Class
This introduces a new `is_type_supported` method for `zcl_abapgit_objects` which is about 30x faster than the current `is_supported` method.
`is_type_supported` is used in the other methods like `changed_by` and `exists` to avoid instanciating or calling the object class unnecessarily. It won't be necessary to check for support before using these methods which will alllow simplifying the calling programs (separate PR).
There are also some new test cases for `is_type_supported` and for serializing a commom interface.
* No user id for unsupported objects
Co-authored-by: Lars Hvam <larshp@hotmail.com>
the old get_instance() method in ZCL_ABAPGIT_PERSIST_SETTINGS has been moved to a method in zcl_abapgit_persist_factory, plus interface added. Added to persist injector
* Terminology: Inclusive Language - Part 6
Change remaining variables and switch setting to main_language.
Finally closes#4043
* Add todo
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Terminology: Inclusive Language - Part 5
Change of terminology (#4043)
- Replace `get_master_language` with `get_main_language` and remove it
* File Status
* Jump
* Language
* Main language
* Main language
* CLAS: Remove test class include
Once unit tests are disabled, the test class include is now completely removed (before it might have still contains obsolete code).
Closes#4460
* Reverse pp
* Update 6 objects
* Typo
* Typo
* Revert
* Revert
* Revert
* Revert
* Revert
* Lint
* Update zcl_abapgit_oo_class.clas.abap
* Move add_to_activation
Co-authored-by: Lars Hvam <larshp@hotmail.com>
After the pull request:
https://github.com/abapGit/abapGit/pull/4589
Objects supported by abapGit-plugins are not deserialized and
all are reported as not supported.
Closes#4610
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Group unsupported messages per object type
When number of unsupported objects increase in a package, user needs to scroll through the long list of messages. This change groups messages per object type reducing the number of messages. Also, the filtering before serialization is good in terms of effective work process utilization( in parallel mode ).
* Replace LINE_EXISTS with READ TABLE
* Cache the supported object types
* Show object name
If there is only one object name for the unsupported object type, show the name.
* Spelling: "object(s)" to "objects"
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
The progress bar should not be turned off after `deserialize_object` (but only at end of `deserialize`).
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Automatic creation of top repository package
When adding a repository, it is not necessary anymore that the top SAP package assigned to the repository exists. Just enter a package name and clone (works for offline, too).
The initial diff will now show that the top package exists remotely only. Therefore, when pulling, you will not get the "confirm overwrite package" popup anymore. Yippie!
* Typo
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Refactor I18N settings
- Consolidate I18N parameters into a structure and pass it to xml and serializer classes (#4415)
- Continue change of terminology (#4043)
* Remove changes to serializer class
* Main lang
* DSYS
* OTGR
* Repo view
* Main langu
* Repo view %26 stage
* Serialize
* Settings
* Repo view
* Defs
* Stage
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix pull errors related to files deleted remotely
Improve #4281 by moving "ignore logic" to `filter_files_to_deserialize`
* Added unit test
Co-authored-by: Lars Hvam <larshp@hotmail.com>
In case files are deleted remotely, the files are now ignored during a pull. In other words, "pull" will not touch objects that exist only locally and not remotely.
To delete such objects locally, use "reset local (forced pull)" which will show a popup for these objects and let you delete them.
Closes#4277
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* UI: Clear progress bar
Clears status/progress bar at end of process and removes leftover messages.
Closes#3505
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
This adds shorthand methods for the SHA1 calculation of the different git artifacts.
More logic in ZCL_ABAPGIT_HASH, but easier to read and less application logic.