Commit Graph

47 Commits

Author SHA1 Message Date
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
Marc Bernard
9672f5b030
Adjust name prefix for types (#3991)
* Part 1

* Part 2

* Part 3

* Lint

* Part 5

* Part 6

* Part 7

* Part 8

* Part 9

* Enforce type naming prefix

All types need to start with TY_...

* Fix local types
2020-10-07 08:54:15 +02:00
Marc Bernard
24436879b6
Improvements for uninstall (#3959)
* Improvements for uninstall

Uninstall now catches exceptions and tries up to 3 times to remove an object. Exceptions are only raised if after 3 tries some objects still remain. 

Tested with https://github.com/larshp/abapPGP

Closes https://github.com/abapGit/abapGit/issues/379 and https://github.com/abapGit/abapGit/issues/3949, and probably #3228

* Add SHLP

also ordered when by priority

* Conflict

* Move counter

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-10-03 09:17:11 +02:00
Marc Bernard
dc9773bee9
Fix handling of T100 exceptions (#3943)
* Fix errors raised during deletion

* Fix error handler

* Harmonize top and bottom message banners

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-09-27 10:56:08 +02:00
g-back
7871d23fef
XML Input/Output: Remove Aliases (#3898)
* change XML reference to interface

* remove aliases from XML in/out classes

* change XML references to interfaces
2020-09-18 14:01:44 +02:00
g-back
c05af1163f
XML Refactoring: zif_abapgit_object et al. (#3895)
* change xml references

* change xml reference, remove type definition


deleted type already exists in zif_abapgit_definitions

* change XML references

* change indentation

* fix indentation

* fix ident pt. 3

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-09-17 17:24:32 +02:00
g-back
4dde63360e
XML Refactoring: Comparator/OO_Object_FNC (#3888)
* change xml references to interfaces


changed reference in interfaces:
- zif_abapgit_comparator
- zif_abapgit_oo_object_fnc

* change reference of xml in dependent objects

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-09-16 12:43:40 +02:00
Lars Hvam
9c41a2b7d8
remove text pragmas and pseudo comments (#3827)
* remove text pragmas and pseudo comments

* fix whitespace

* fix carriage return

* test

* test

* Update zcl_abapgit_repo.clas.abap
2020-09-03 09:13:47 +02:00
Marc Bernard
5bddba99d4
CHAR: Fix OTGR dependency order and activation (#3805)
* CHAR: Fix OTGR dependency order and activation

* Update order and activation

Also fixes uninstall
2020-08-27 07:15:26 +02:00
Marc Bernard
e0c93b0d7c
Add deleted objects to overwrite confirm popup (#3591)
* Add deleted objects to overwrite confirm popup

Closes https://github.com/larshp/abapGit/issues/2845

* Pretty print

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-07-07 15:31:21 +02:00
Marc Bernard
9d29fe57ce
Missing objects in overwrite confirmation popup (#3558)
* Missing objects in overwrite confirmation popup

Closes https://github.com/larshp/abapGit/issues/3550

* Unit tests

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-07-04 09:31:21 +02:00
Rakshith Gore
f132e99722
SCP1 Import Order (#3543)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-06-28 10:53:49 +02:00
Marc Bernard
5f7c7dc2bc
DDIC with reference to class/interface, Search Help with Exit Function (#3545)
* Update zcl_abapgit_objects.clas.abap

* DDIC with reference to class/interface

* DDIC with reference to class/interface

* Search help with exit function

* Table with reference to search help

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-06-28 10:47:39 +02:00
Marc Bernard
01dce88475
Interface and implementing class in same package (#3528)
* Interface and implementing class in same package

* Interface and implementing class in same package

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-06-21 10:23:43 +02:00