This commit adds three new methods to ZCL_ABAPGIT_OBJECTS_SUPER:
- SERIALIZE_LONGTEXTS
- DESERIALIZE_LONGTEXTS
- DELETE_LONGTEXTS
They can be called on demand in concrete object type serializers.
In this commit they were called from DTEL, DOMA and TABL
* Insert initial line before bothsequence and action
* Change settings boolean read to support Java GUI
Standard netweaver and Java GUI netweaver parse differently the checkboxes on HTML pages. This commit consider the value on the checkbox aseither "on" or "X".
With this commit we are able to define global hotkeys. Which means
that the hotkey is active on all pages. The global hotkeys are
defined in ZCL_ABAPGIT_GUI_PAGE=>GET_HOTKEY_ACTIONS. The first
globally defined hotkey is the hotkey overview with the default
hotkey '?' assigned to it. This was previously hard coded in the js.
* Introduce customizable hotkeys
With this commit customizable hotkeys are introduced. They can
be defined in the user specific settings. Currently we support
only one letter keybindigs e.g. 's', 't' or 'x' and no modifiers.
Every page in the UI can decide which actions it offers for the
hotkeys. Therefore we introduce the interface ZIF_ABAPGIT_GUI_PAGE_HOTKEY
with the method GET_HOTKEY_ACTIONS. At this point in time only
the main page offers actions for hotkeys, but the mechanism works
already for all pages. New actions for hotkeys can be defined
easily.
Hotkeys are only available for installed abapGit repositories.
Because we need to detect the classes which implement the above
mentioned interface and it seems that there is no easy way to do
that for local classes. Maybe we can add it later when we know more.
We don't supply default key bindings. So it is totally up to the
user to define them.
* provide default hotkeys
Refactoring
Downport
Descriptions in new online popup
Optimized git object handling
SSST package popup fixed
PARA popup fixed
Package validations
Diff still shows after pushing
TABL field ROWORCOLST cleared
Staging page optimizations
Correct CUA if needed during pull
* correct xml errors of CUA interfaces
Issue error RS_CUA_INTERNAL_WRITE while pulling an old abapgit repository #1807. Same issue as #562 (error RS_CUA_INTERNAL_WRITE) which is solved by correcting manually the XML of the CUA interfaces (fastidious), or by regenerating the XML (but unfortunately sometimes the abapGit repository is from someone else).
Automatically fix this before RS_CUA_INTERNAL_WRITE is called. It's useless having this as a configuration option.
* refactor: extract code to a new method
* Better refactoring of auto correction CUA
When we try to add a new online repository and we have a repository
whose package does not exist in abapGit we get a short dump caused
by assert in the method zif_abapgit_sap_package~read_parent of
the class zcl_abapgit_sap_pacakge.
This commit makes sure we skip such repositories because we believe it
does not make sense to prevent us from cloning in these cases.
Thank you Petr Benes <petr.benes@sap.com>!
https://github.com/larshp/abapGit/issues/1575
Deletion of PARA caused a popup in FM RS_PARAMETER_DELETE.
To avoid that, the logic of the FM had to be implemented directly in the delete method.
* Optimized git object handling
- Introduced secondary indices for ZIF_ABAPGIT_DEFINITIONS=>TY_OBJECTS_TT to allow fast access to git objects by SHA1 and TYPE
- Added a new column INDEX to ZIF_ABAPGIT_DEFINITIONS=>TY_OBJECT to allow reconstruction of the correct sort order of git objects when after processing in ZCL_ABAPGIT_GIT_PACK
- Optimized git object accesses in ZCL_ABAPGIT_GIT_PACK, ZCL_ABAPGIT_GIT_PORCELAIN and ZCL_ABAPGIT_MERGE by using the newly introduced indices
* Removed excess fields
Removed excess fields from secondary index definitions of ´ty_objects_tt´, since they are not required.
TADIR performance #1756
All usages of TADIR aligned to use the same structure.
DELFLAG added in the structure.
2 identical structure definitions deleted.
todo: test this PR works after abapmerge has run
* change merge and staging
always push to the top of the currently selected branch
* remove branch and sha1 from stage object #365
* REPO not longer part of GIT_PORCELAIN
SET_OBJECTS moved to private
* and remove fields from constructor
Change methods INITIALIZE + RESET_STATUS to private in ZCL_ABAPGIT_REPO_ONLINE
One external call of INITIALIZE changed to use REFRESH instead
Part of refactoring for issue #1757
* LOG: extra ADD_* methods
Methods ADD_ERROR, ADD_INFO, and ADD_WARNING added to log class
* refactor background to use log object
refactor background to use log object instead of WRITE
- Stage button in diff screen removed
+ Vimium like link hint navigation, enable in settings
* ecatt downport
* Performance optimizations
* SSFO fix jump to text module
* Vimium like link hint navigation
After this commit is applied, the link hint navigation can be used.
The feature can be activated and configured in the user settings.
Role model is the link hint navigation in the Google Chrome plugin
Vimium.
* refactoring: introduce KeyNavigation prototype
* refactoring: introduce LinkHints prototype
* Optimized ZCL_ABAPGIT_TADIR=>BUILD for better performance
- Using the optimizations in ZCL_ABAPGIT_FOLDER_LOGIC (PR #1723) and ZCL_ABAPGIT_SAP_PACKAGE (PR #1724) to optimize the TADIR build method, by first determining all relevant subpackages and then processing them in one go instead of having to recurse and read information from the DB separately.
- Note that the optimization can also be used without the changes in #1723 and #1724, but the effect will be less or worse and the coding requires adaptations.
* Fixes coding artifact of #1723
Removed a coding artifact that makes use of importing parameter ÌO_FOLDER_LOGIC`, which is no longer needed in the flat BUILD processing.
* Adapted for rework in #1724
After adapting PR #1724 to no longer use buffering, but instead select packages with a level-based selection, the buffering parameter in `ZCL_ABAPGIT_SAP_PACKAGE=>LIST_SUBPACKAGES` no longer exists and should not be used in this PR.
* Compressed IF/ELSE construct
* Removed whitespaces
* Fixed auto-merge issue
Removed a double variable declaration resulting from git auto-merge
* Added Buffering to ZCL_ABAPGIT_SAP_PACKAGE
- Added a buffering option to ZCL_ABAPGIT_SAP_PACKAGE=>LIST_SUBPACKAGES, which gives a performance increase in repos with a deep tree structure, because all relevant packages are read from the DB only once and then the determination of subpackages is performed on an internal buffer table.
* Used buffered SAP package information determination in file status processing
* Level-based Subpackage Selection
- Replaced buffered package access with level-based subpackage selection
* Minor fix for select statements to avoid warnings
* Added Buffering to ZCL_ABAPGIT_FOLDER_LOGIC
- Converted ZCL_ABAPGIT_FOLDER_LOGIC=>PACKAGE_TO_PATH and ZCL_ABAPGIT_FOLDER_LOGIC=>PATH_TO_PACKAGE to instance methods, so they can work with buffered data when constructiing path information. This gives a performance advantage in repos with a depp tree structure and multiple leaf packages
- Adapted all calling code to use an instance of ZCL_ABAPGIT_FOLDER_LOGIC instead of the previously available static methods
- Where applicaple PACKAGE_TO_PATH and PATH_TO_PACKAGE were called in an instance of ZCL_ABAPGIT_FOLDER_LOGIC, which was instanced outside of a processing loop and thus profited from the introduced buffering
* Fixed errors
* Removed obsolete coding artifacts
Removed an obsolete parameter, that accidentally got merged into the code when building the pull request
* Forwarded FOLDER_LOGIC instance to recursed calls
Forwarded ZCL_ABAPGIT_FOLDER_LOGIC instance to subsequent BUILD calls to make use of buffering, until the optimizations in #1725 are in place.
Background mode must be reconfigured after installing this version
New interface ZIF_ABAPGIT_BACKGROUND for implementing custom handlers
Background mode will now push deletions
* pretty print, trigger reordering of methods
* skip PGP signature
* change PARSE_COMMITS to static
change PARSE_COMMITS to static and add unit tests class
* add simple unit test and fix CI findings
After this commit is applied all calls of "SET PARAMETER 'EUK'"
are replaced with the call of objects_super->set_default_package.
The method uses the ABAP memory which is in this case more reliable.
* CHAR: fix package popup during pull
* Remove superfluous ABAP memory clearance
memory is already cleared in RS_CORR_INSERT
* Introduce objects_super set_default_package
Refactor set default package logic to super class
zcl_abapgit_objects_super method set_default_package.
Before this commit it wasn't possible to run code inspection
for offline repos. A dump occured.
With this commit it is possible to run code inspections
for offline repos, too.
Before this commit is applied BRANCH_LIST is called twice while
refreshing an online repo. This leads to two identical HTTP calls.
After this commit is applied BRANCH_LIST is only called once and
therefore only one HTTP request is sent.
* Remove local SHA1 from online repository
In this commit we remove the local SHA1 and all its references from
ZCL_ABAPGIT_REPO_ONLINE. SHA1 is also removed from repo persistency.
SHA1 insn't needed anymore. All where-used places were either migrated to
remote_SHA1 or removed.
* reintroduce logic after push
If the short text of the function group has changed in the remote repo,
it's currently not possible to pull that change.
With this commit the short text is pulled properly.
The data in table ICFAPPLCUST (Application Customizing Data) isn't
deleted by cl_icf_tree=>if_icf_tree~delete_node( ). Before this commit
is applied it's not possible to delete ICF nodes with data in that table.
With this commit we delete the data in the table. It's the same as
transaction SICF does.
Before this commit VCLS jump calls VIEWCLUSTER_MAINTENANCE_CALL
which opens inplace. But that's not compatible with abapGit UI
and nothing is visible.
And the semantics changed. The above mentioned FM call the view
cluster for data maintenance and not the development object.
To be aligned with abapGit logic now the transaction SE54 is called.
Unfortunately, we are versioning AVAS objects that can be instantiated
only in SAP systems but we use the repo also in sandbox Customer
systems.
Whenever I open the repository I get an exception of the type
cx_pak_invalid_data.
Without this commit I see the error message:
"AVAS error".
With this commit I see the error message:
"AVAS $GUID: invalid data: The functionality is not supported in
customer systems"
* delete checks: set transport request if needed
this ensures that the transport request is set when deleting objects.
E.g. uninstalling the repositoy or reset local.
* separate type for delete checks