The specific dump occurred when the source was empty. Now it checks the string length properly.
Closes#4309
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Reduce memory consumption during deserialize
Import of objects required unnecessarily a lot of memory. This was the especially the case during the initial import of repos with large (binary) objects or high number of objects (even if they were not under /src/).
With this fix, an instance of an object serializer now contains only the files associated with this object (rather than all (!) files of the repo).
* Change path logic
* Comment
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Uninstall of enhancements failed with "Action cancelled" error and left object locked.
Removed call of `save` since calling `delete` method is sufficient. Also added `run_dark` for `delete`.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Raise error if package is not part of package hierarchy
If a package exists locally and remotely, but the local package is not part of the package hierarchy associated with the repo, then an error message will be raised.
The local package must be assigned manually to the package hierarchy before abapGit can process this scenario.
Note: The assignment is not done automatically, since it's not clear where in the hierarchy the new package should be located.
* lv_msg
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>
* Remove unnecessary constructors
A constructor that redefines the super constructor but only calls the super constructor with the same parameters is unnecessary and can be removed
https://github.com/abaplint/abaplint/issues/1417
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* fix creation of TR entries for uninstalled PROGs
Fixes creation of CTS Transport Request entries for PROG Objects uninstalled from transportable package.
* Abaplint Fixes
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Align naming of object super classes
- SAXX_SUPER for SAMC %26 SAPC
- W3XX_SUPER for W3HT %26 W3MI
* Delete old classes
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix missing i_suppress_dialog parameter syntax error in 731 system
* replace cx_root with cx_sy_dyn_call_param_not_found
* revert back to cx_root because checks have failed
"Statement does not exist in ABAPv702(or a parser error)"
* Revert "revert back to cx_root because checks have failed"
This reverts commit 73b9b2aa6f.
* replace cx_root with cx_sy_dyn_call_param_not_found, sorry i didn't see that extra quote character, should be fine now.
* fix whitespace
Co-authored-by: larshp <larshp@hotmail.com>
Maintenance views can have dependencies on tables with foreign keys. Such cases can lead to errors during deserialize since the foreign key relationships between tables are processed only in the "late" step.
This fix moves the processing of maintenance views (viewclass = c) to the "late" step.
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>
* PROG: Remove objects from work area
Fixes issue with incomplete deletion of inactive objects
Closes#4151
* Lint
* Add correction
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>
* Remove obsolete late_deser from metadata
Final part to remove late_deser flag. Solution remains compatible with old bridge class which still uses the flag.
* Call
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* show log, remove title parameter
the log objec already have the title as part of the object, another input is not required
this aligns the code to always use the title from the object
closes#4223
* zif_abapgit_log, change title to csequence input
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.
* DEVC: Remove obsolete TADIR entries
In case a package is local (ie no transports), abapGit will now check if objects still exist in the package. In case an object does not exist anymore, the corresponding TADIR entry will be removed. This allows empty local packages to be uninstalled automatically.
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Terminology: Inclusive Language - Part 2
Change "Master Language" to "Main Language" in UI and comments (documentation and variables next)
* Docs
* Docs
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Update unit tests to use CI
* Make test repo configurable
* Remove local tests and use CI
* Lint fixes
* Replace local tests with CI
* Add Type Group constants to abaplint
* Update constants and replace assert_true
* Revert constants
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix DDIC activation issues
- Avoid double activation of DDIC objects in case of "LATE" processing
- Derive DDIC id for XINX and MCID (same as for INDX)
Closes#4103
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
The field `late_deser` in `ZIF_ABAPGIT_DEFINITIONS=>ty_metadata` is obsolete:
```abap
TYPES:
BEGIN OF ty_metadata,
class TYPE string,
version TYPE string,
late_deser TYPE abap_bool, " refactor: can be removed later. replaced by steps
delete_tadir TYPE abap_bool,
ddic TYPE abap_bool,
END OF ty_metadata .
```
The PR removes the remaining usage with one exception: `ZCL_ABAPGIT_OBJECTS_BRIDGE->GET_DESERIALIZE_STEPS` still depends on the field. In order to remove it completely, the plug-in interface `zif_abapgitp_plugin` (https://github.com/abapGit/abapGit-Plugins/blob/master/src/zif_abapgitp_plugin.intf.abap) will have to be changed.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* 702: Downport
No chaining with CHANGING
* 702: Downport
* Syntax check variant
* Too many fields warning
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* TABL: Skip data check for GTT
fixes#4074
* undo case change
* TABL: use fm DD_EXISTS_DATA for data check
* remove formatting change
* Data existence check only for DB tables
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* CLAS: Avoid unnecessary serialize of testclass file
Unit tests are only functional if the corresponding flag is set (`seoclassdf-with_unit_tests`). Therefore, if the flag is not set, there's no need to serialize this include.
* Added version to select
* Switch to seo function
* Set mv_skip_testclass
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Close some todos
FUGR does not have any class includes
* Remove huh?
* Move WDYN activation to serializer
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* 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
* Adapt trial code from christianguenter2
* Add changed_by
* Adapt trial code from christianguenter2
* Add changed_by
* Add unit test mock class
* Update unit tests
* Unit tests %26 lint fixes
* De-Linting
* More lint fixes
* More lint experimenting
* More de-linting
* Update unit tests
* Turnaround test (WIP)
* More XML turnaround testing
* Turnaround test now working
* Clean up code
* Enable experimental mode
If we want to merge into master, it will only run for daredevil experimentalists
* Update src/objects/zcl_abapgit_object_pdts.clas.testclasses.abap
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Update src/objects/zcl_abapgit_object_pdts.clas.abap
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* 702 compatibility
* More 702 compatibility
* Removed container texts and system elements
Temporary(?) measure as they are being too troublesome, changing XML on successive serializations and suchlike.
* Caught exception
* General refactoring
* Remove NOTEXT pragmas and directives
* De-linting
* Remove diff in transport class
* Refactoring WIP
* Refactoring - WIP
* Refactor serialization
* De-lint
* Update container serialization
* Refactor deserialization WIP
* Object type PDTS - Workflow Task (experimental)
* Object PDTS Alpha version
* De-lint
* Correct CI dependency issues
* Check for critical unit test setting
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Activation of foreign keys now uses with same logic as #3545:
- remove keys during DDIC phase
- add keys during LATE phase
Closes#3867
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* remove uses of CHAR30
* Update abaplint.json
* add basic unit test for ZCL_ABAPGIT_MESSAGE_HELPER
* replace uses of char50
* fix name
* Update abaplint.json
* use sy-uname instead of uname
in ZCL_ABAPGIT_USER_MASTER_RECORD
* 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>
* 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>
Windows cannot store filenames containing "<" and ">"
These two characters are now uri encoded, same approach as already deployed for some characters
#3817
The removed fields have no real use as no other CLAS object contains
that field.
It was added in the commit:
b0d54f97e3
Besides, it causes me troubles in sapcli when I do checkin.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* otgr: initial object support
This commit replaces the generic SOBJ support with native support for
the object type OTGR and the format is not backward compatible,
so repos containing SOBJ serialized objects could not be pulled anymore
(it's necessary to pull them with previous version of abapGit and push
them with the new version of abapGit).
The new OTGR handler supports only master language description because
there is no API which would allow us to maintain other languages and
I am not willing to re-implement parts of ABAP platform just to version
texts which nobody cares about. Also, the texts dealing part is not
that straightforward - one has to think about keeping the texts
in sync which requires lot of code.
I did the following optimizations to the XML format:
- removed the activation state from all elements because we
always serialize only Active and deserialize as Inactive
- removed the foreign key name from texts and other details
because we know which object type group is currently being handled
- used short names for root elements of details to avoid redundancy
because the detail's table name is used for child XML elements -
e.g. TEXTS vs. CLS_TYPE_GROUPT.
Closes#1515
* Update ref-supported.md
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Web DynPro Component Configuration Support
Web DynPro Component Configuration Support Class
* WDCC Support - Syntax Corrections
Web DynPro Component Configuration Support
Syntax Corrrections
* TADIR Object Name Concatenation Change/Removal
TADIR Object Name Concatenation Change/Removal
As ms_item-obj_name hold complete TADIR name, concatenation with ..00 is not necessary.
* WDCC Support - Syntax Corrections
Web DynPro Component Configuration Support
-Remove dynamic coding
-Remove explicit commit/roll back
-Use Tadir functionality of base class
* WDCC Support - Syntax Corrections
Web DynPro Component Configuration Support
-The EXPORTING keyword can be omitted (exporting))
* WDCC Support - Syntax Corrections
Web DynPro Component Configuration Support
-Removal of HJA comments
-Removal of me->
* Removal of Component Config XML in main object fil
Removal of Component Config XML in main object file
-Component Configuration raw XML added to additional comp_conf.xml file
* Additional xml file pretty printed as string
Additional file contents now pretty printed and added as string for easy diff.
Serialisation / Derialisation now working with pretty printing and un-pretty printing.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* WDYN: Fix missing texts
Texts were missing if more than one concept existed per WebDynpro component. Also fixes unit tests which were not working properly before and adds anew test.
* Pretty print
* Refactor and enhance SOTR support
Now supports all objects that use OTR: CLAS (LIMU/CPUB), ENHC, ENHO, ENHS, ENSC, WAPA (LIMU/WAPP) WDYA, WDYN (LIMU/WDYV), WEBI
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* IOBJ: Remove number range objects
Number ranges for BW objects are local to a system and will cause errors when duplicates occur.
* Fix spelling
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix for objects with space or dot in name
* Update zcl_abapgit_file_status.clas.abap
* Fix for objects with space or dot in name
* Escaping of filenames
* Escape %
* Remove escape of space
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* add variant transaction support and fix FG globals
add handling of variant transaction
clear globals in FG for FM RPY_TRANSACTION_INSERT
fixes#2744
* CC cleanup
* fix linter errors
* fix linter errors
* fix linter error - type pool constants
* fix linter error void type
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* 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>
* DSYS serializer rewritten
* Fixes issue #3374 when object names include a namespace.
* Uses longtexts facility to serialize texts:
* Supports i18n texts.
* Supports text versions other than 0001.
* Fix linter compliance
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Fixes the dump and import error for package interfaces. Even if the package interface is in a different package than the referencedpackage itself.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Update 3 objects
* Update zcl_abapgit_exit.clas.abap
Pretty printer didnt work in JAVA GUI, so had to manually change the file
* IS_STEP as input parameter
* Issue in JAVA based GUI
Pretty printer not working for class name in implementation
* Move TY_STEP_DATA to ZIF_ABAPGIT_DEFINITIONS
* try moving ty_deserialization_step
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Issue 3324: WDA Texta are not taken into accout
* Remove the not allowed Web Dynpro component
* Correct ABAB CHECKS 702 for SOTR_HANDLER
* ABAP Check 702 SOTR_HANDLER II
* ABAP Check 702 SOTR_HANDLER III: AUnit Exception
* ABAP Check 702 compliant IV
* ABAB Check 702 compliance V
* ABAP Check Compliance 702 VI
* ABAP Check 702 compliance VII
* ABAP Check 702 compliance VIII: delete comment
* ABAP Check compliance 702 IX : conv #
* Commit X: Improvements of ABAP Unit tests
-Test uses a 100% existing wd component and TEST(!) checks it
-Test enhanced with a non existing component -> no exception is raised nor existence is checked inside the PRODUCTIVE ROUTINE(!) via WDR_REPOSITORY_INFO as this check should have been done earlier not in this last phase to append the texts, labels, etc... to the component archive
* C XI: ABAP Unit Tests(2)
* C XII : ABAP Checks 702 for ABAP Unit Tests
* C XIII : ABAP CHECKS 702
* C XIV : ABAP CHECKS 702
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Add syntax-highlighters for CSS, JS, JSON
* Update W3MI ZABAPGIT_CSS_THEME_DEFAULT
* Fix line size and case statement
* Fix line size
* Update styles, removed operators
* Added highlight for comments in HTML/XML
* Fix menu hover background
This makes the selected menu more visible.
Also includes color fix for repo name and url in dark theme.
* Fix for W3xx objects with "." in name
* Reverse fix for W3xx
* Remove hover style changes
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Master lang only - descriptions for clas, intf
* Use master language instead of logon language
* sy-langu to master language - fix cus0, cus1, cus2
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* char: deserialize missing attribute hide_icons
* char: unlock upon all errors
It's very annoying when I have to go to SM12 to unlock CHAR
objects which could not be activated due to a missing OTGR.