Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The following section provides information on how Git is used to handle different system export scenarios when Git is used as a remote target.

How Git is working in our product

Git is a distributed version control system, more about Git can be read here. Usage Engine The Platform only supports connecting to a remote repository that is accessible with an HTTP/HTTPS URL and a Token. When the File System Profile of type Git is saved, a clone of the Repository is created in a directory in the Platform pod. This directory is $MZHOME/gitrepos by default. It can be changed by setting the property mz.git.basePath to some other path accessible from the Platform. Each File System Profile will have its own directory with its own clone of the corresponding repository.

...

This means that even if just a few configurations have been updated a full export of what was in the target folder from before needs to be made in order not to lose files in the repository version.

...

So, if the local repository is updated before an export (events described above) i.e. the local repository has the same status as the remote the system will not detect any conflict, and the system will overwrite the content in the target folder.

...

Recommendations for the structuring of configuration

The structure of the folders in the Git repository is not decided by the system. Several developers working in parallell parallel on the same deployment calls for structured configuration in order to avoid too many merge conflicts. The recommendation therefore is to have a separate folder in the Git repository for each use case.

Export Scenarios

When exporting configurations to Git multiple scenarios can happen because the remote repository is updated by another System or person. Different scenarios are described below.

Update in a different directory

When there has have been updates to any other target folder in the same repository the export will be successful.

...

Updated configurations in the same export folder, no conflict

When there has been updates in the remote repository to Configurations on other places than current System have modified in the same export folder the System Export will fail. The System Exporter will perform an Import of the Configurations that was changed on remote. They will be imported with a suffix named _merge. The action needed by you now is:

...

When the actions mention above is performed a new export can be executed.

...

Update same configuration in the same Git Directory

When there has been updates in the remote repository to the same Configurations as the current System have modified in the same target folder the System Export will fail. The System Exporter will perform an Import of the conflicting Configurations. They will be imported with a suffix named _conflict. The action needed by you now is:

...

When the actions mention above is performed a new export can be executed.

...

Configuration added, removed or renamed on Git in same Git Directory

The scenarios when configurations is added and removed or renamed will look the same during an export. Configurations that are added in the same export folder by any other system will be imported with the suffix of _added. Actions need by you is:

...