* Deserialize: Commit changes before activation
Some objects (like `prog` or `intf`) are deserialized as inactive objects i.e. uncommitted changes. Usually, these changes are committed to the database after the activation process (end of the session). However, if there are any errors during activation, an exception is raised which will automatically do a `rollback work`.
This change will make sure that inactive objects are preserved even if the activation fails. One can then analyze the inactive objects, make necessary corrections, and activate them manually.
Closes#4500
* Replace with standard function
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Tweak HTTP error messages
- Minor changes to error texts
- Add HTTP 422 which can happen on gitlab if you ommit ".git" in the URL
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Fix the following issues to make it CSS3 compliant:
- Font-style bold is not a font-style value
- Family names containing whitespace should be quoted
- Same color for background-color and border-color
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* DEVC: Fix check if package is empty
SOTR object is linked to SAP package and removed together with the package on uninstall. Therefore, it should not be taken into account when checking if a package is empty.
* Update comment
Co-authored-by: Lars Hvam <larshp@hotmail.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>
* ACID: Avoid "no changes found" popup
- Fix "no changes found" popup in case identical object is deserialized again
- Change to T100 messages
- Add missing dequeue
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Adjustments to Debug Info
- Fix display of abapGit installation package (side-effect of changed package assignment)
- Clarify that list of supported objects is relevant for the local system only (since it's release dependent)
- Add link to complete list of supported objects
* Remove pragmas
* Fix status calculation on package move
If an object is moved to another package *and* changed, the status was "blank". Now the object status is properly shown as "added/deleted". Also the `packmove` flag is *not* set anymore since a simple `tadir` change would not be sufficient.
Extended unit test to cover this case.
* Split test method
* pretty
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Change of terminology (#4043). This time with the missing changes in service_repo.
repo_srv and serializer will be next after #4431.
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>
* NSPC: Add support for namespaces
Part 2 of #835
If a repo contains any namespaced object, then this PR will make namespaces part of the repository. So far, serializing and updating an existing namespace is supported.
abapGit can not (yet) create the namespace automatically. This will require a bit of refactoring which will then also support creating the top repo package automatically. Coming soon.
See readme of test case https://github.com/abapGit-tests/NSPC
* Refactor build
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix for #4425
* Remove whitespace at end of line
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Remove whitespace at end of line
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Refactor CTS API and support additional objects
- Change methods from public to private
- Reduce interface to public methods
- Support objects that can not be locked but can be included in a transport (prep for namespaces)
* Remove lenght check
Co-authored-by: Lars Hvam <larshp@hotmail.com>
There is no problem with having dots in names - we have these names in
our corporate github.
I don't know how to deal with the non-deterministic regex differently
than first trying with the suffix .git and than without it.
Closes#4427
* 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>
* Repo view: Adjust link to settings & render transport
- Update link text
- Re-init flag to render transport (in case the package has changed)
* Main langu
* NSPC: Add warning if namespace does not exist
Part 1 of #835
* Limit to xml files
* Unit test
* RC
* Regex
* Refactor checks into methods
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Usually, in abapGit packages are created by the folder logic already. But it dumps with "`li_package` is not assigned," if deserialize is used in other ways.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Prevent staging of duplicate files
Since objects cannot exist in multiple packages, the staging page is now checking the selected files to prevent the resulting repo from containing an object multiple times.
If an object is moved to another SAP package and the corresponding files are seleted to be added to the repo (for the new package), then the files must also be removed from the repo (from the old package). If not, an error is raised.
* Remove other changes
* Update file status
* Extend unit test
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Adjustment to BDEF Object Handler
Adjustment to BDEF Object Handler regarding exchange file format
* fix abaplint stuff
* fix abaplint issue
* adaptation in deserialize method
* fix abaplint issues
* fixes abaplinter issues
* requested changes
* fix type issue
* fix type issue
* delete unused method FILL_METADATA_FROM_DB
* enhance signature with exception information
* change reference type
* change to initial activation logic
* change to abap step for activation
* change of reference type as part of create Service
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Remove dependency on persistence interface
Minor adjustment to exit interface (`zif_abapgit_exit`)
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Dialogs: HTML forms for repo settings
This moves the repo settings to HTML forms. The settings are split into three pages:
- Repository settings (ie abapgit.xml)
- Local settings
- Infos
* Lint
* Infos > Stats
* Infos > Stats
* Infos > Stats
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* UI: Refactor form css class
- Move styles to CSS
- Provide default for form class
- Remove form class from render calls
* Update css
* Condense textarea
Co-authored-by: Lars Hvam <larshp@hotmail.com>
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>
* Dialogs: HTML forms - follow-up
Follow-up to #4264:
- Split `zcl_abapgit_html_form` class
Processing form data has been moved to `zcl_abapgit_html_form_utils`
- `iv_is_main` refactored to `iv_cmd_type`
- In case of unsaved data, form exit will now prompt for confirmation (`zcl_abapgit_html_form_utils`)
* dot space
* lint
* Remove const
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>
* Set branch name with commit
* Can't stage when commit is checked out
* Add missing variable
* Remove passing a parameter, since set relies on IS SUPPLIED
* Undo last commit
* Intelligent create branch when commit is checked o
ut
* lint
* Fix cancel buttons (missing commit)
* Code review
* Remove unused variables
* Add extra line
* Remove unused variable
* Add back new branch pop-up. Considers tag.
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>
* Add refresh after failed uninstall
If uninstall does not complete successfully, the old state of the repo will be shown. This will refresh the state and properly show which objects were deleted and which still remain.
* Update src/zcl_abapgit_repo_srv.clas.abap
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
syntax highligting, move unit tests for abap to abap class, xml to xml class
this avoids having cyclic references, previously HIGHLIGTER called FACTORY which instantiated ABAP which inherited from HIGHLIGTER
* 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>
* New Repo: Check package existence before showing p
* fix lint errors
* fix linter
* add more unit tests
* refactor unit tests
Co-authored-by: Lars Hvam <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>
* Dialogs: HTML form tweaks
- Minor increase of contrast for background, input- and readonly fields
- Add read-only option for columns of table control
* Add is_empty
* Add init and hidden
* Render
* Remove init
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>
* Improve ""Cannot find .abapgit.xml" situation
Skip check during creating of repo and increase file count.
Closes#4174
* New online
* Add UT
* Move check to content list
* Update zcl_abapgit_repo_srv.clas.abap
* Lint
* Rename to check_repo_size
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix unit test for user records
Perform unit test only if a user with an email address exists
Closes#4247
* Remove test
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>
Reverting back to a proper exit of screens using `LEAVE TO SCREEN` and avoid increasing the size of the callstack.
Closes#4279
PS: The crash mentioned in #4027 was prevented by removing the commit hash from the check screen. It works also with `LEAVE TO SCREEN`.
* Optimize status calc
Avoid status calculation for ignored files. Since files in / are ignored by default, the starting folder for unit tests is set to /.
* Fix if
* Index
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>
* UI: Improvements for setting pages
- Better navigation between settings pages
After jumping between setting pages, the back button will go to last page before navigating to the settings (ie "back with bookmark")
- Add commit work
* Lint + router
* Jump repo view to settings
* Lint
* Conflict
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>
* User interface, "Advanced" menu
Added tooltips to the "Remove" and "Uninstall" options in the advanced menu. As a new user, I would revisit the [documentation](https://docs.abapgit.org/guide-online-uninstall.html) to distinguish between the two.
The tooltips are passed as "iv_title" parameters to ZCL_ABAPGIT_HTML_TOOLBAR->add
* Update src/ui/zcl_abapgit_gui_page_repo_view.clas.abap
Adjustments from review
* Update src/ui/zcl_abapgit_gui_page_repo_view.clas.abap
Adjustments from review
* Update zcl_abapgit_gui_page_repo_view.clas.abap
Comply with abaplint line length of 120
* Update zcl_abapgit_gui_page_repo_view.clas.abap
Comply with abaplint's no whitespaces at EOL
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
* Refactor: Version comparison
Move version comparison from `zcl_abapgit_news` to `zcl_abapgit_version` and make it public for use in other places
* Lint
* Compare sem versions
* Change supplied
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Dialogs: Enhance HTML form with table control
- Adds option to maintain data using a table control
- Extends UTs with several cases that were include in #4172
- Table control to be used by "repo settings" #4171
* Border
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* /git/, put method get_length under test
add unit tests for method get_length
the method will probably be refactored sometime in the future, I think the bit manipulation can be replaced with some hex, div and bit-mask magic
* fix tabs
* log, purge() now returns the log
For each action, the log should be returned, then it is up to the UI how or if to show or persist it in the session.
First step of #2821
* li_log not needed anymore
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.
When repeatedly navigating "back" to the main screen via the "Repository List" [o] button:
If somewhere in this navigation sequence you Remove a repository,
then continue on via "Repository List",
but later you use the GUI's actual "BACK" button, until you have returned to the main screen where that repository still existed,
a short dump occurs as the exception raised by zcl_abapgit_repo_srv=>get in zcl_abapgit_gui_page_repo_view->render_content propagates unhandled
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Dialogs: New pages for global and personal setting
Redesign of abapGit settings using HTML forms. Two functional changes to old settings page:
- "Development Internal Settings" are only visible when using the developer version (not in standalone program)
- "User-specific hotkey settings" are not available anymore. The default hotkeys continue to work as before.
Global/Personal settings can be reached using hotkeys "x" and "y".
* Lint
* Hide button
* Change to top menu
* Remove old page
* Remove old page
* fix links
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Create an interface for online repo functions
To make my own code calling online repo functions testable, I need some functions behind an interface. Using aliases, this is a safe refactoring. Please pull :)
* Update src/zif_abapgit_repo_online.intf.abap
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Update src/zif_abapgit_repo_online.intf.abap
Commit abaplint recommendation
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* update formatting
Co-authored-by: Rembold Rembold <philipp.rebold@sap.com>
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* UI: Add help buttons to "New Online/Offline"
- Add help button to both dialogs linking to docs.abapgit.org
- Clicking the button brings up the documentation inside the GUI HTML viewer
- Enhancement to `zcl_abapgit_gui` and `zcl_abapgit_html_viewer_gui` to properly handle 'Back' when navigating through Internet pages
* Open help in external browser
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Refactor XSTRING_TO_INT
this will use the built-in type conversion, its less code and most likely also runs faster
* delete METHOD alpha_output
it is only used in one place, and its a simple NUMC that is converted
* Dialogs: HTML form enhancements
In preparation for https://github.com/abapGit/abapGit/issues/4171, HTML forms were enhanced as follows:
- New integer fields (type "number") with min/max, https://github.com/abapGit/abapGit/issues/3559
- Added support for minlength/maxlength for text fields
- Added support for read-only fields
- Added support for password fields
- New option for adding a help button to the form (with URL link)
- Moved HTML snippets to render method
- Changed parameters to csequence to also accept char variables (like abap_true)
- Minor adjustments to styles
* Lint and fix ul/fieldgroup
* Min/max validation, textarea
* Close textarea tag
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix dump in status calculation
Happened when switching a repo from offline to online, which incorrectly set the branch to "master" (separate issue), and then trying to switch branch to "main".
* Add testcase
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* ZCL_ABAPGIT_CONVERT refactor
this removes calls to function modules, replacing with class based equivalents, or all custom ABAP implementations
* rename local variables
* move merge types to merge class
this will make the God interface defintions smaller
also reducing INTF -> CLAS references
and making it easier to add an interface for the merge class in the future
* add interface ZIF_ABAPGIT_MERGE
* 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>
- Add FUGR, CLAS, INTF into existing order of object types
- Also fixes BINARY search for DDLS dependencies
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Move git url repo methods
This moves methods GET_COMMIT_DISPLAY_URL and GET_DEFAULT_COMMIT_DISPLAY_URL from the repo class to new class in new package GIT_PLATFORM.
we want to keep the repo class small, as its quite complex and central
#4085
* fix line length
* Triggers main command when pressing enter in form
Adds hidden button that triggers main command when pressing the enter key
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Backup and restore for abapGit persistency
Backup complete content of abapGit persistency to a ZIP file and restore when necessary.
* Messages
* 702
Co-authored-by: Lars Hvam <larshp@hotmail.com>
- Added icon for user
- Changed icon for transport to truck
- Adapted "staging" page
- Renamed CSS-classes because of conflict with classes used on staging page
Screenshots #4097Closes#4098
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>
* 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