CODESYS Git seamlessly integrates the use of the distributed version control system Git™ into the CODESYS development environment. The functionality of Git is directly available in CODESYS. A local Git installation is not required.
Git™ is a software for distributed version control. Version control is a class of systems responsible for managing changes to documents, programs, and other information stored in files. It involves logging changes to one or a series of files over time so that a specific version can be reverted to later. In software development, version control systems are also used where a team of developers work together on the managed files.
The main tasks of a version control system are:
Logging of changes: It can be traced at any time who made which changes and when.
Restoring old statuses of individual files: Accidental changes can be undone at any time.
Archiving the individual statuses of a project: All versions can be accessed at any time.
Coordination of shared access to files by several developers
Simultaneous development of several development branches of a project
Distributed version control does not use a central repository. Each developer working on the managed project has their own repository and can synchronize it with any other repository. Version history is also distributed. Changes can be tracked locally without having to connect to a server.
The project storage used by CODESYS is not suitable for use in a version control system. Therefore a special project storage was developed for CODESYS Git. The use of a text format (JSON) ensures the readability of the content of the stored files. In addition, there is a clear allocation between a CODESYS object within the CODESYS project and the storage location of the object’s data within the CODESYS Git project storage.
Since CODESYS Git optimally supports ensuring the consistency of CODESYS projects as well as the correct handling of dependencies between CODESYS objects, editing of the stored files outside CODESYS Git should be avoided. This applies in particular to typical Git workflows such as branching and merging.
CODESYS Git supports the use of Git hosting services such as GitHub and GitLab for storing Git repositories. Due to the special CODESYS Git project storage, editing the data using the tools offered by some Git hosting services is only possible to a very limited extent.
Requirements
Programming System
CODESYS Development System V3.5.19.30 or higher
Runtime System
-
Supported Platforms/ Devices
-
Additional Requirements
Subscription of the CODESYS Professional Developer Edition
In order to enable collaboration in Git, it is recommended to use a Git server.
For information on how to work with Git or how to install the required software, please refer to the IT specialist in your company.
Restrictions
None
Licensing
see CODESYS Professional Developer Edition
Required accessories
Optional: CODESYS Key
Detailed compatibility information
Version
Programming System Version
1.6.0.0
3.5.19.30 - most recent release
1.5.0.0
3.5.19.30 - most recent release
1.4.0.0
3.5.19.30 - most recent release
1.3.0.0
3.5.19.30 - most recent release
1.2.1.0
3.5.18.20 - most recent release
1.1.0.0
3.5.17.0 - most recent release
1.0.0.0
3.5.17.0 - most recent release
Support
Technical support is not included with this product. To obtain technical support, please purchase a CODESYS Support Ticket.
For general error messages or pre-sales inquiries, please use the "My Question" contact form directly, which can also be used without logging in. A list of alternative support resources can be found in the support section of the CODESYS Group website.
CODESYS Git 1.5.0.0 addresses important bug fixes and minor improvements.
New Features and Improvements
[GIT-1013] Update to the newest libgit2sharp version v0.30.0 (or newer)
[GIT-276] Branch view, Status view: Show difference between remote and local tracking branches
[GIT-872] Make error message from InterlockDecisions meaningful
[GIT-874] Don’t translate “ours” and “theirs” to improve legibility
[GIT-910] MergeViewer: Make “Apply” more robust
[GIT-1048] Provide the user with detailed server certificate information, if automatic verification failed
Major Bug-Fixes
[GIT-896] When opening a project with insufficient FS access rights, Git connection is lost
[GIT-1008] Git operations via scripting may fail because of missing license
[GIT-1011] Diff viewer cannot be opened in Git History view
[GIT-1025] Scripting API: Parameter description is missing
[GIT-1026] Exception after disconnecting project from git
[GIT-1027] Scripting: API documentation for git.pull is missing
[GIT-1028] Open history view throws an unhandled exception
[GIT-1102] Git repository connection sporadically lost when extracting project archive
[GIT-1105] Resolving conflicts impossible, if Git repository path contains whitespaces or special characters
[GIT-1110] All Git script driver functionalities, that cause a reload of the project require a VersionUpdateFlags parameter
[GIT-1115] Scripting: branch_set_upstream is named wrongly / provides wrong functionality
Minor Bug-Fixes
[GIT-901] Git status overlay continuously changes for renamed object
[GIT-906] Unhandled exception after removing remote
[GIT-1012] Diff cannot be opened in history because of exception “‘commitSha’ cannot be null or whitespace”
Compatibility Information
General
This version is compatible with CODESYS V3.5 SP19 Patch 3 and newer. However we recommend the latest version of CODESYS.
[GIT-1102] Git repository connection sporadically lost when extracting project archive
Projects which are stored under the same folder as those are created from TemporaryFileService and the temp folder from the windows user cannot be used with CODESYS Git
[GIT-1110] All Git script driver functionalities, that cause a reload of the project require a VersionUpdateFlags parameter
From now on, the following functions have an additional parameter “update_flags” of type “VersionUpdateFlags”: * GitScriptProject.branch_copy * GitScriptProject.checkout * GitScriptProject.discard_all_changes * GitScriptProject.merge * GitScriptProject.pull * GitScriptProject.resynchronize_project
The introduction of this parameter was necessary to avoid the “Project Environment” dialog in noUI mode. The parameter is optional, and its default value is “VersionUpdateFlags.NoUpdates”. To restore the previous behavior, calls of these functions have to set this parameter to “VersionUpdateFlags.Regular”.
[GIT-1115] Scripting: branch_set_upstream is named wrongly / provides wrong functionality
The git scripting functions “branch_set_upstream” are no longer supported, as they did provide logic of the git parameter “–set-upstream-to” instead of “–set-upstream”. There is a new set of functions called “branch_set_upstream_to” with the same signatures, which provides the same functionality and matches the behavior of “–set-upstream-to”. Currently, there is no scripting implementation of “–set-upstream”, but one can use “branch_track” as it provides the same functionality for the majority of use cases.
Known Limitations
[GIT-896] When opening a project with insufficient FS access rights, Git connection is lost
If a project connected to git is loaded by a user with fewer rights on the file system representation or the repository than the user who created the repository, the project may lose its git connection. As this issue is caused by the access rights of the single users on the file system, this issue cannot be solved by CODESYS Git.
Possible workarounds are: * restart CODESYS with user who created the git repository (recommended) * grant the necessary access rights to the current user and reload the project
Information from JIRA
To read up on implemented features and changes you can use your JIRA account. Please find some example filters below.
List of features and changes:
project = GIT AND fixVersion = 1.5.0.0
List of issues with compatibility information:
project = GIT AND fixVersion = 1.5.0.0 AND (text ~ COMPATIBILITY_INFORMATION OR text ~ KNOWN_LIMITATIONS)
GIT-129: Implement script driver for CODESYS Git GIT-492: Take care of the “init.defaultBranch” Git setting as the name of the Git default branch GIT-753: Update to most recent version libgit2sharp v0.27.2 (including libgit2 v1.6.4) GIT-944: In case of failed probing, give the user the opportunity to change the saved credentials GIT-980: Adding the user name and user email to the dialog of the “Git Merge Branch” and “Git Pull” commands
Bug fixes
GIT-818: Change remote name leads to an unhandled exception GIT-824: It is not possible to navigate to the source code in a dependent library while the project is under Git version control GIT-841: Missing option to cancel the “Choose Git Repository Location” dialog GIT-862: Connection to a Git repository gets losts when creating a project archive without Git GIT-889: “Git Fetch” command does not load all tags GIT-900: Project marked as dirty that is not managed by Git loses the marker when the creation of a project archive is canceled GIT-918: NullReferenceException occurs when switching to the Git Status and Staging view after merging a branch GIT-943: Merge fails because of duplicate object / ObjectGuids in the working tree GIT-947: Project security settings are not saved in Git
GIT-877: Created the possibility for device manufacturers which use their own licensing mechanisms for the engineering environment to integrate the CODESYS Professional Developer Edition into their systems. The following packages are required for proper functionality. If not using CODESYS Installer the user must install them manually.
CODESYS License Provider (ID “CODESYS.LicenseProvider”) or OEM equivalent
CODESYS License Provider Enabler (ID “CODESYS.LicenseProviderEnabler”)
CODESYS Licensing Support (ID “CODESYS.Licensing.Support”)