* Main page - Only show hover info for favorites
in package, user links
suppress titles for non-favorite repositories
* always suppress loading titles in repo overview
Co-authored-by: Lars Hvam <larshp@hotmail.com>
When executing the background logic if a repo processing fails, then log the error and continue processing with next repository.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* 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>