Commit Graph

120 Commits

Author SHA1 Message Date
Alexander Tsybulsky
17eac7b6c3
Strip XML details user exit (#4599)
* exit draft

* call exit

* linter fix

* PRE_CALCULATE_REPO_STATUS docs

* settings UI

* wire status calculation and repo settings

* uppercase

* diff rendering fix

* adjust docs

* adjust docs

* Remove settings

* more docs adjustments

* pass repo meta data into the exit

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-03-06 09:35:35 +01:00
yellappam
09353951eb
Group unsupported object type messages (#4589)
* Group unsupported messages per object type

When number of unsupported objects increase in a package, user needs to scroll through the long list of messages. This change groups messages per object type reducing the number of messages. Also, the filtering before serialization is good in terms of effective work process utilization( in parallel mode ).

* Replace LINE_EXISTS with READ TABLE

* Cache the supported object types

* Show object name 

If there is only one object name for the unsupported object type, show the name.

* Spelling: "object(s)" to "objects"

Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-03-03 05:36:21 +01:00
Marc Bernard
7e0b75d2a8
Deserialize: Commit changes before activation (#4509)
* 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>
2021-02-14 09:29:50 +01:00
Marc Bernard
73576ee60e
Improve error messages (#4472)
* Improve error messages

Pass T100 messages to UI/log

* T100 errors

* APACK

* OO

* DEVC

* DRUL

* DTDC

* SRVB

* OBJS

* Program

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-02-03 16:31:55 +01:00
Marc Bernard
0cd25ce331
SICF: Fix regression (#4481)
Removed code is part of `adjust_objects` already (https://github.com/abapGit/abapGit/pull/4426)
2021-02-02 07:31:17 +01:00
JustACasual
bcbc3d527d
I18N: LXE Translations (#4415)
* Issue 2424

https://github.com/abapGit/abapGit/issues/2424

* Issue 2424

https://github.com/abapGit/abapGit/issues/2424

* Update src/objects/zcl_abapgit_object_fugr.clas.abap

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* Fixing LINT issues

* Fixing LINT issues

* TABL, default ROWORCOLST on deserialize (#4430) (#4)

* 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>

Co-authored-by: DerGuteWolf <DerGuteWolf@users.noreply.github.com>
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* Centralize LXE functionality

* Fix FUGR LXE

* delete issue reference comments

* Delete issue reference comments

* Remove Aliases for LXE types

* Review Changes

* Copy from #4452

Integrate changes from #4452 into #4415

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: DerGuteWolf <DerGuteWolf@users.noreply.github.com>
Co-authored-by: Sebastian Koitka <sebastian.koitka@dematic.com>
Co-authored-by: Marc Bernard <marc@marcbernardtools.com>
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
2021-01-31 10:36:28 +01:00
Marc Bernard
c48c030a0c
Fix status calculation on package move (#4447)
* 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>
2021-01-25 13:55:21 +01:00
Marc Bernard
40efc567f6
Automatic creation of top repository package (#4431)
* 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>
2021-01-23 10:11:54 +01:00
Marc Bernard
cd3b29aac1
NSPC: Add support for namespaces (#4426)
* 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>
2021-01-23 10:05:58 +01:00
Marc Bernard
7d4773ca23
NSPC: Add warning if namespace does not exist (#4420)
* 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>
2021-01-18 17:55:34 +01:00
Marc Bernard
a824eef662
Prevent staging of duplicate files (#4403)
* 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>
2021-01-17 09:28:54 +01:00
Lars Hvam
db6db7cf79
remove more unused variables (#4413) 2021-01-15 17:22:51 +01:00
Lars Hvam
690da4e51f
delete some unused variables (#4411)
* delete some unused variables

* bdef, remove unused vars

* remove some more
2021-01-15 08:31:01 +01:00
Marc Bernard
9ef3f1ee7e
Uninstall ENQU before TABL (#4412)
Lock objects must be uninstalled before corresponding tables
2021-01-15 08:27:48 +01:00
Marc Bernard
231d0c01e6
Fix ignore logic for local files (#4407)
Closes #4405

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-01-13 08:16:04 +01:00
Lars Hvam
889d062e1c
data, basic serialization (#4369)
* data

* refactor ZCL_ABAPGIT_SERIALIZE

* upd

* serializing

* cleanup

* fix

* fix

* rename
2021-01-09 10:50:58 +01:00
Marc Bernard
6b23aaa0fd
Reduce memory consumption during deserialize (#4389)
* Reduce memory consumption during deserialize 

Fix issue with namespace objects

https://github.com/abapGit/abapGit/pull/4357

* Unit test
2021-01-08 11:57:47 +01:00
Marc Bernard
6dfa4eee17
Reduce memory consumption during deserialize (#4357)
* 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>
2020-12-30 08:59:41 +01:00
Marc Bernard
e7d7723bd5
Raise error if package is not part of package hierarchy (#4331)
* 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>
2020-12-28 13:26:45 +01:00
Marc Bernard
46e2dd827b
Package Structure - Part 4 (#4305)
* Package Structure - Part 4

$ABAPGIT_OBJECTS_CORE:

ZCL_ABAPGIT_DEPENDENCIES
ZCL_ABAPGIT_FILE_STATUS
ZCL_ABAPGIT_FOLDER_LOGIC
ZCL_ABAPGIT_OBJECTS
ZCL_ABAPGIT_OBJECTS_ACTIVATION
ZCL_ABAPGIT_OBJECTS_FILES
ZCL_ABAPGIT_SERIALIZE
ZCL_ABAPGIT_TADIR
ZIF_ABAPGIT_COMPARATOR
ZIF_ABAPGIT_OBJECT
ZIF_ABAPGIT_OBJECTS
ZIF_ABAPGIT_TADIR
ZCL_ABAPGIT_SKIP_OBJECTS

$ABAPGIT_OBJECTS_TEXTS:

ZIF_ABAPGIT_LANG_DEFINITIONS

#4253

* ZIF_ABAPGIT_LANG_DEFINITIONS

* Sync

* Sync

* Sync

* Sync

* Move objects

* Sync

* always upload build artifact

* Move type to interface

* Types

* Add package

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2020-12-11 07:50:10 +01:00