
* Docs: Add "Remote Settings" * Update ref-dot-abapgit.md * Delete repo_settings_remote.png * Add files via upload * Update link * Update link * Add "Repo Settings" to navigation * Update and rename ref-dot-abapgit.md to settings-dot-abapgit.md * Update settings-dot-abapgit.md * Create settings-local.md * Create settings-remote.md * Update settings-local.md * Update and rename other-background-mode.md to settings-background-mode.md * Update settings-background-mode.md * Update and rename ref-settings-stats.md to settings-stats.md * Update zcl_abapgit_gui_page_sett_remo.clas.abap * Update zcl_abapgit_gui_page_sett_locl.clas.abap * Update zcl_abapgit_gui_page_sett_bckg.clas.abap * Update zcl_abapgit_gui_page_sett_info.clas.abap * Update zcl_abapgit_gui_page_sett_repo.clas.abap * Update zcl_abapgit_gui_page_sett_bckg.clas.abap * Update zcl_abapgit_gui_page_sett_info.clas.abap * Update zcl_abapgit_gui_page_sett_locl.clas.abap * Update zcl_abapgit_gui_page_sett_remo.clas.abap * Update zcl_abapgit_gui_page_sett_repo.clas.abap Co-authored-by: Lars Hvam <larshp@hotmail.com>
4.3 KiB
title | category | order |
---|---|---|
Repository (.abapgit.xml) | repo settings | 10 |
**.abapgit.xml**
is a special abapGit file. It contains meta information of the abapGit project. The file must be located in the root folder of the git repository.
It is recommended to edit .abapgit.xml using "Repository Settings" in abapGit.
(In exceptional cases, you could edit the XML directly via "Utilities > Database Util"
.)
Example: abapGit's own .abapgit.xml
<?xml version="1.0" encoding="utf-8"?>
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DATA>
<MASTER_LANGUAGE>E</MASTER_LANGUAGE>
<STARTING_FOLDER>/src/</STARTING_FOLDER>
<FOLDER_LOGIC>PREFIX</FOLDER_LOGIC>
<IGNORE>
<item>/.travis.yml</item>
<item>/CONTRIBUTING.md</item>
<item>/LICENSE</item>
<item>/README.md</item>
<item>/package.json</item>
<item>/changelog.txt</item>
<item>/.gitignore</item>
<item>/CODE_OF_CONDUCT.md</item>
<item>/abaplint.json</item>
<item>/.eslintrc.yaml</item>
</IGNORE>
</DATA>
</asx:values>
</asx:abap>
Repository Settings
The following settings are stored in the repository and therefore valid for all users.
Main Language
The main language is the languages in which all texts belonging to repository objects will be created. It follows the SAP sy-langu
values. Note that this implies that all objects in a repository must have the same main language.
Translation Languages
There are currently two options available for including translations in a repository:
- Object-specific logic provided by the object serializer class
- Generic logic provided by abapGit framework (experimental, #4415)
If no translation languages are maintained in this setting, the first approach is used. If you maintain a list of translation languages (comma-separated, 2-letter ISO language codes), then these languages will be included in the serialization. See also Translations and i18n
Note: You can suppress translations with the local "Only Serialize Main Language" setting (see below).
Starting Folder
The Git repository folder that defines the root folder where deserialization starts.
Folder Logic
abapGit follows two folder logics: "Prefix" and "Full".
Prefix
A package name must contain its parent package name as a prefix. Examples:
Valid prefix:
- ZFOO
- ZFOO_BAR
- ZFOO_BAR_QUX
- ZFOO_BAR
will produce folder structure /bar/qux/
Invalid prefix:
- ZFOO
- ZBAR
The folder logic PREFIX allows to install a repository into a different parent package (in different systems). This can even be local packages ($*
), in which case no transport order is required.
Full
Any package name is accepted.
- ZSOMETHING
- ZHELLO
will produce folder structure /zsomething/zhello/
The folder logic FULL forces the installation of a repository into packages with exactly the same name. Note that this can be problematic for contributors who use a system where specific prefixes for the package names are to be used.
Ignore Files
Files which abapGit will not download to your ABAP system. Typically, this includes references to readme, changelog, and license files as well as repository configuration related to workflows like build or linting jobs.
Assuming that default starting folder /src/ is used, any files in root / or any other folder than the starting folder are ignored automatically. Therefore it will not be necessary to list files of the root folder into the ignore list (and as a consequence, the default ignore list is empty).
The ignore logic is based on "covers pattern" operator (not regex). A file is ignored, if path & file covers at least one of the patterns listed in this setting.
Example: /src/hr/zcl_confidential*
will ignore all classes in the /src/hr package that begin with zcl_confidential
.
Requirements
In this section, you can specify the minimum requirements that should be fulfilled to allow installation of the repository. Listed software components should exist in the target system and be at the given release or higher. If the target system matches the minimum release, then it must also be at the given patch level or higher.