Commit Graph

63 Commits

Author SHA1 Message Date
Lars Hvam
8ae35648e4
new user exit: change allowed object types (#6173) 2023-03-28 10:02:10 +02:00
Marc Bernard
b6beda19f1
Show performance metrics for long-running ops (#6148)
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2023-03-16 16:53:20 +01:00
Alexander Tsybulsky
69515e5f55
LXE: more objects (#6144) 2023-03-13 17:36:00 +01:00
Lars Hvam
773f2f7749
refactor, extract git definitions to git (#6029)
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
2023-02-03 11:46:00 +01:00
Lars Hvam
20785fef78
delete, fix dump (#6011) 2023-01-25 20:41:17 +01:00
Marc Bernard
db70f3d735
Pull log: Include object counts (#5982)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2023-01-16 12:59:10 +01:00
Marc Bernard
25bbbf89cd
Refactor: Remove delete_tadir flag (#5949)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2023-01-06 15:56:12 +01:00
Fabian Lupa
77fea02b45
Force usage of local object handler classes (#5778) 2022-09-26 06:50:16 -04:00
Marc Bernard
dd85924244
Properly ignore files during deserialize (#5427)
* 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>
2022-04-26 16:52:19 +02:00
sandraros
b3c89a8ff2
Create empty classes/interfaces before DDIC (#5393)
* Force XSLT activation during deserialize

* Revert "Force XSLT activation during deserialize"

This reverts commit 7d6fc64ddb.

* Create empty class/interface before DDIC phase

Fix #5392

* pretty printer ZCL_ABAPGIT_OBJECT_INTF

* abaplint zcl_abapgit_object_clas

* Update zcl_abapgit_object_clas.clas.abap

* Update zcl_abapgit_object_dtel.clas.abap

* Update zcl_abapgit_object_intf.clas.abap

* Update zcl_abapgit_object_tabl.clas.abap

* Update zcl_abapgit_object_ttyp.clas.abap

* Update zcl_abapgit_objects.clas.abap

* Update zcl_abapgit_object_clas.clas.abap

* Update zcl_abapgit_object_intf.clas.abap

* Update zif_abapgit_object.intf.abap

* Update src/objects/zcl_abapgit_object_intf.clas.abap

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* Update order numbers

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2022-04-26 16:07:15 +02:00
Christian Günter
2ba6151355
JUMP: Switch execution order - first specific then generic (#5357)
* Switch jump order

* fix DDLS

* fix SHI3
2022-02-18 05:48:36 +01:00
Marc Bernard
92b583bb18
Improve progress bar and log for pull (#5311)
- 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>
2022-02-14 08:25:27 +01:00
Marc Bernard
b5b252744d
Detect JSON files during pull (#5313) 2022-02-02 14:24:38 -05:00
Marc Bernard
631132736d
UI: Center Popups - Part (#5315)
Adjusting more popups #5275
2022-02-02 07:35:02 +01:00
Marc Bernard
ec9ff1a29f
TABL: Properly show inactive objects (#5303)
* 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
2022-02-01 16:11:18 +01:00
Marc Bernard
ce31e33688
Refactor: Activation log (#5302)
* Refactor: Activation log

- Merges the activation log into the regular pull log
- Removes duplicate messages

* Update

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2022-02-01 15:24:35 +01:00
Marc Bernard
6efaa0e0b4
Refactor: Remove ddic flag (#5295)
Closes #5264

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2022-01-30 16:37:56 +01:00
Marc Bernard
53bd8c3fe5
Don't include XML when serializing AFF (#5254)
* 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>
2022-01-12 16:54:33 +01:00
Lars Hvam
c3b9980486
replace XUBNAME with SYUNAME (#5248) 2022-01-06 08:18:45 +01:00
Marc Bernard
35f18c57d9
Pass transport to object classes (#5216)
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>
2021-12-20 18:47:10 +01:00
manhofmann
a637caf864
performance optimization parallel mode (#5187)
* 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>
2021-12-09 06:58:58 +01:00
Marc Bernard
b46c8b4599
Refactor: Consolidate front-end classes (#5172)
* 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>
2021-12-09 06:49:43 +01:00
Marc Bernard
9e629475dc
Fix dump ASSERTION_FAILED (#5190)
"Exists check" might be called for objects without `TADIR` entry (like `NSPC`). 

Regression of #4952 which removed the "if"

a72d3314cb (diff-4a3135e0f538157951fefdea06986dc644f6005a2af7f6917ff7f7f2f771f622L299)
2021-12-08 20:50:37 -05:00
Marc Bernard
a37cf58e01
Refactor: Jump to Object Logic (#5114)
* 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
2021-11-07 08:15:08 +01:00
Christian Günter
53343a98d6
Files: Introduce secondary keys (#5101)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-11-05 05:32:39 +01:00
Marc Bernard
0379bc6d11
Change Package Assignment (#4980)
* 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>
2021-10-05 06:02:20 +02:00
Marc Bernard
a72d3314cb
Remove exception from changed_by (#4952)
Simplify some code since `zcl_abapgit_objects=>changed_by` does not raise any exceptions.

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-09-16 09:44:05 +02:00
Marc Bernard
61e629cd1f
Improvements for Objects Class (#4944)
* 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>
2021-09-12 07:33:41 +02:00
Marc Bernard
e86e2267c0
Improve message if object type is not supported (#4913)
Minor text change
2021-08-27 14:53:20 -04:00
Lars Hvam
329fd9dc0e
interface and factory for ZCL_ABAPGIT_PERSIST_SETTINGS (#4882)
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
2021-08-03 15:13:16 +02:00
Marc Bernard
ad244abacd
Terminology: Inclusive Language - Part 6 (#4791)
* 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>
2021-05-28 13:15:00 +02:00
Marc Bernard
f18a8ee82b
Terminology: Inclusive Language - Part 5 (#4702)
* 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
2021-04-15 08:32:09 +02:00
Marc Bernard
56a0dca134
Refactor: Objects Class (#4664)
* Refactor: Objects Class

Splits `zcl_abapgit_objects` into smaller classes

Moves the following methods and related test cases:

`zcl_abapgit_objects_check`
- `deserialize_check`
- `warning_overwrite_find`
- `warning_package_find`
- `checks_adjust`
- `warning_overwrite_adjust`
- `warning_package_adjust`

`zcl_abapgit_files_deserialize`
- `files_to_deserialize`
- `filter_files_to_deserialize`
- `prioritize_deser`
- `adjust_namespaces`

* PP

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-03-27 10:46:38 +01:00
Marc Bernard
a1cc7f8668
CLAS: Fix several issues related to class includes (#4510)
* 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>
2021-03-12 07:05:47 +01:00
Jakub Filak
cce8660054
objects: do not consider only native objects as supported (#4611)
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>
2021-03-06 22:31:49 +01:00
yellappam
09353951eb
Group unsupported object type messages (#4589)
* 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>
2021-03-03 05:36:21 +01:00
Marc Bernard
f570a6a0a9
Reduce flicker of status bar during deserialize (#4467)
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>
2021-02-01 09:36:00 +01:00
Marc Bernard
40efc567f6
Automatic creation of top repository package (#4431)
* 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>
2021-01-23 10:11:54 +01:00
Marc Bernard
31a550db0f
Refactor I18N settings (#4423)
* 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>
2021-01-19 14:29:09 +01:00
Marc Bernard
4bfc56b79e
Fix pull errors related to files deleted remotely (#4338)
* 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>
2020-12-28 12:59:21 +01:00
Marc Bernard
ac1c3baa0d
Fix typo "odd" > "of" (#4316) 2020-12-13 08:29:28 +01:00
Marc Bernard
b31885796d
Fix pull errors related to files deleted remotely (#4281)
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>
2020-12-08 17:16:04 +01:00
Marc Bernard
7f61ebd645
UI: Clear progress bar (#4249)
* 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>
2020-11-27 10:18:52 +01:00
Marc Bernard
e36486901d
Check objects when installing into main package (#4244)
* Check objects when installing into main package

Closes https://github.com/abapGit/abapGit/issues/2273

* Lint

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-11-25 09:53:56 +01:00
Lars Hvam
d3b68b8a48
remove broken dynamic call (#4221)
closes #4195

but lets keep #3453 open
2020-11-24 07:52:58 +01:00
Lars Hvam
381d40e35a
ZCL_ABAPGIT_HASH add shorthand methods (#4220)
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.
2020-11-23 14:30:31 +01:00
Marc Bernard
46470da59d
Improvements for uninstall (#4198)
* Improvements for uninstall

- Improve error handling on deletion collecting errors in log
Closes #4197

- Remove limit of 3 loops which allows deleting objects with deeper dependencies
(Follow-up https://github.com/abapGit/abapGit/issues/3228#issuecomment-728800249)

* Exception

* Error msg

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-11-19 09:31:31 +01:00
Marc Bernard
e93cbc5a1f
Move ty_deserialization, ty_step_data, ty_repo_ref_tt (#4181)
* Move ty_deserialization, ty_step_data

Remove dependencies from `zif_abapgit_definitions` (see https://github.com/abapGit/abapGit/issues/4179)

* Move to interface

* Move ty_repo_ref_tt
2020-11-16 08:34:29 +01:00
Lars Hvam
df652f0436
delete various unused local variables (#4126) 2020-11-03 08:43:04 +01:00
Marc Bernard
e7b5281dde
Remove todo about unknown user id (#4113)
It's not feasible to use transports to determine who changed an object last (see https://github.com/abapGit/abapGit/pull/4056#issuecomment-719956576).

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-11-02 09:33:30 +01:00