* 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>
* UI: Unify rendering of branch, package, user names
Branch name was already rendered "boxed with a leading icon". The same is now done for package and user names.
See `zcl_abapgit_gui_chunk_lib->render_branch_name, render_package_name, render_user_name`.
Closes#4059
* Lint %26 transport
* Unknown user
* Transport css
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Some files that existed locally didn't have a link. After #4084, the state can be evaluated properly to determine if local object exists.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Implementation
* Remove old source code
* Clear selected_commit on switch_repo_type
* Reset selected commit or branch on select
* Don't clear the branch name if commit selected
* add user exit for commit display URL
METHODS adjust_display_commit_url
IMPORTING iv_repo_url TYPE zif_abapgit_persistence=>ty_repo-url
iv_commit_hash TYPE zif_abapgit_definitions=>ty_sha1
CHANGING cv_display_url TYPE zif_abapgit_persistence=>ty_repo-url
* adjust UT
* provide also repo name and key in the exit
* Update ref-exits.md
* Update ref-exits.md
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix state calculation for deleted objects
In case objects are deleted locally or remotely, abapGit now compares against the last known state (checksum).
Closes https://github.com/abapGit/abapGit/issues/4030
* Added test case
Covers known local and remote states
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>
* add minimal unit test
* readd new keywords to abap syntax highlighter
- removed duplicates from keywords
- removed deprecated pseudo comment
- explicitly remove duplicates from keywords to avoid needless dumps
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Implementation
- Create new class ZCL_ABAPGIT_GIT_COMMIT
- Move commit-specific methods from ZCL_ABAPGIT_BRANCH_OVERVIEW to ZCL_ABAPGIT_GIT_COMMIT
- Change methods visibility (from private to public) and type (from instance to class method)
* Remove ##NO_TEXT
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Rename get to get_from_remote
* abapLint: Remove space
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* abapLint
- Remove space
- Remove unused type in ZCL_ABAPGIT_BRANCH_OVERVIEW
* abapLint: Remove space
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Remove obsolete class attribute
* Separate get_by_branch and get_by_commit
* Remove duplicate char
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Remove iv_repo_name; replace its usage by url
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Replace LEAVE with CALL SCREEN
* Add new option iv_show_commit
Add new option iv_show_commit to GUI_CHUNK_LIB to be able to suppress showing commit hash on GUI_PAGE_CODE_INSP page
* abapLint: Replace 'EQ' by '='
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Hide commit hash on other pages too
Hide commit hash on ZCL_ABAPGIT_GUI_PAGE_REPO_SETT and ZCL_ABAPGIT_GUI_PAGE_SYNTAX pages
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Refactor user persistence
Instead of selecting the settings from the DB for each "get", user settings are now kept in instance memory. Simplifies code, too.
* Lint
* Replace commit work
* Change risk level
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>
* refactor validation in html_form + UT
* minor UT tweak
* subtle form bugfix (boolc return space string)
* cleanup add forms
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Update ZCL_ABAPGIT_USER_MASTER_RECORD
- Issue: If the user does not exist in the system, the BAPI will fail but still the user still will be added to the gt_user.
- Fixed the issue, if user is invalid it wont be added to the list.
- Refactored the class and added check_user_exist method.
- Added unit tests.
* Sy-uname
* Lint
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>
Pressing ESC used to exit abapGit completely. Changed it to work like F3 (BACK), which makes more sense especially in HTML form. You can still exit from anywhere using SHIFT+F3.
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
* event->post_data logic
* part of pages, commit test
this is also long text
to test
* string_map: port strict() feature
* pages refactoring part 2
* linter
* docs
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Dialogs: add offline repo HTML form
* Dialogs: add offline repo HTML form
* Dialogs: add offline repo HTML form
* Lint
* Lint
* Chaining
* Set required attribute
* Check for empty display name
* Change validation
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* 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>
* Add button to launch IEChooser.exe on Windows
* Fix CASE statement
* Determine iechooser.exe path using system directory
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Split settings and dev utils menu
* Fix missing settings hotkey on repo view
* Revert "Fix missing settings hotkey on repo view"
This reverts commit 1444744a5f.
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>
pretty print class ZCL_ABAPGIT_HTML_FORM, and change two static methods to instance, this will make future possible changes to the class easier to see in the history
Follow-up to #3717:
- Proper display of public, protected, and private sections
- Add CLAS prefix to be inline with other object types
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* popup_to_select_from_list can handle element tabs
popup_to_select_from_list can now handle element-based non-structured tables like a table of url strings
Therefore related to #3639
* Update zcl_abapgit_popups.clas.abap
* Fixed wrong value assigning and added assert
* Add performance test
* Fix some linter errors
* Refactor free selections to reduce method length
* Performance test add title to result ALV
* Attempt downport
* Downport
* Pretty Printer VS abaplint
* Undo more changes done by pretty printer
* Adjust performance popup title and ALV layout
* Move free sel dialog to global for abapmerge
* Move some type definitions for abapmerge
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* navigate to repo after ZIP import
* add zip import/export action for offline repos
* rename action labels
* change new state to be dependent on current page
change replacing -> new page if action called from repo list
rerender if in repo view
* add some TODOs, see PR discussion
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Update error msg
* Fix login popup errors and cancelation
* Remove validate/reset methods
* Lint
* Rename iv_repo_online to io_repo_online
* Change to error in status bar
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Restart abapGit in case of self-update
Closes#3358
* Fix abapgit url detection
Old logic incorrectly matched for example https://github.com/abapGit-tests/CHAR
* Github only
* Separate method
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
this fixes the following syntax warning raised in local class
"
The exception ZCX_ABAPGIT_EXCEPTION is not caught or declared in the RAISING clause of "HEADERS"
"
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>
* refactoring, use interface for html
replace uses of zcl_abapgit_html with zif_abapgit_html
#3460
* replace additional uses of the A alias
* This removes the A alias from the HTML class
This removes the following alias,
"a FOR zif_abapgit_html~a ."
* fix syntax error
* background pull: always overwrite all objects
always choose to overwrite all objects when using the pull in background feature. If the decision is not set the job will fail with a "undecided" error
#3800
* fix page title typo
* Improve display when there are no changes in repo view
* Update view and remove empty_package method
* Empty package msg
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>
* Validate if branch exists when displaying repo
* Validate if branch exists when displaying repo
* Lint
* Lint and 702
* Lint
* Rename validate_branch to validate
* Fix msg and branch display name
* Move msg to UI layer
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Frederik Hudák <frederik.hudak@sap.com>
* abapGit Emergency Mode
On rare occasions, it is necessary to edit the abapGit settings to overcome an issue (example: https://github.com/larshp/abapGit/issues/3701).
This enhancement allows you to start abapGit in "emergency mode", which directly shows the "Database Utility" for you to view or edit any setting.
How to start abapGit in "Emergency Mode":
1. Go to transaction SU3 to maintain your user profile
2. Maintain parameter DBT with value "ZABAPGIT" (all-caps).
3. Start abapGit
4. After exiting abapGit, go back to SU3 and remove parameter DBT
* Update ref-database-util.md
* Add files via upload
* Update ref-database-util.md
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Use title case for page titles
Other minor changes:
- patch page is no longer called diff
- "code inspector" in main page action menu renamed to "check"
* Two more
* Update zcl_abapgit_gui_page_db_dis.clas.abap
* Update zcl_abapgit_gui_page_repo_sett.clas.abap
* Repo advanced menu
* Commit form labels
* Repo setting lables
* Settings, repo
* Final ones?
* Database util
* Column name in stage page
* abaplint
* Update zcl_abapgit_gui_page_stage.clas.abap
* Hover texts for stage column, commit settings
* lint
Turning on "Details" in Repo Overview will now hide the "Action" column to improve display on smaller screens.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* show last commit hash w/ link if possible
link to commit is supported for github.com and bitbucket.org
* remove inline data declaration
* add gitlab link support with UT
* add commit icon for non supported provider
* remove inline declaration
* remove new for CRETE OBJECT
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* DCLS/DDLS: Fix uninstall dependencies
Closes https://github.com/larshp/abapGit/issues/2467
* Move DDLS before other DDIC
DDLS must be deleted before TABL (which is used in DDLS)
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>
* Enhance result view of Code Inspector/Syntax Check
* Enhance result view of Code Inspector/Syntax Check
* Enhance result view of Code Inspector/Syntax Check
* Lint
* Move sort
* Downport: Fix syntax error in 702
Method "ASSERT_TRUE" does not exist in 702
* Downport: Fix syntax error in 702
Co-authored-by: Lars Hvam <larshp@hotmail.com>
After this fix is applied the menu "advanced > open in master language" opens the repo directly and doesn't open the repo list.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Remember repo list filter
resolves#3552
Changes:
- store filter in local storage instead of session storage, so it is remembered on abapgit restart
- filter is saved whenever it is changed instead of page unload
- removed debug output, it doesn't need to clutter the main page
* Don't resave on page load
* Add semicolons
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Improved staging robustness
- Skipped any objects in the changelist that are not marked for staging prior to processing them , to avoid that they keep other objects without errors from being staged if the user wants to stage parts of the changes
* Reduced line length
* Removed missed whitespace
* Update abaplint.json
* Update abaplint.json
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>
* Fixed faulty translation of post data to parsable string
- Added method TRANSLATE_POSTDATA to ZCL_ABAPGIT_UTILS as a centralized place to translate post data to a string
- Replaced all post data string concatenations with the translation helper method to correctly parse spaces that fall to the end of a table line (this should solve #3073 as well as any other random crash caused by accidental misalignment of the post data)
* Backport ABAP statement to 7.02
* Code cleanup for linter checks
* Code cleanup for linter checks
* Fixed a possible error in parsing
If it_postdata contains an empty last line, the staging fails, because the string may contain a lot of soaces at the end of the previous to last line.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* HTML: move add_icon to interface
* ZCL_ABAPGIT_HTML_TOOLBAR use interface
* ZCL_ABAPGIT_GUI_REPO_OVER use interface
* ZCL_ABAPGIT_GUI_PAGE_VIEW_REPO use intf