CODESYS Git integriert die Verwendung des verteilten Versionsverwaltungssystems Git™ nahtlos in die CODESYS-Entwicklungsumgebung. Die Funktionen von Git stehen direkt in CODESYS zur Verfügung. Eine lokale Git-Installation ist nicht erforderlich.
Git™ ist eine Software zur verteilten Versionsverwaltung. Unter Versionsverwaltung versteht man eine Klasse von Systemen, die für das Management von Änderungen an Dokumenten, Progammen und anderen in Dateien gespeicherten Informationen zuständig sind. Dabei werden die Änderungen an einer oder einer Reihe von Dateien über die Zeit hinweg protokolliert, sodass später auf eine bestimmte Version zurückgegriffen werden kann. In der Softwareentwicklung finden Versionsverwaltungen auch dort Verwendung, wo ein Team von Entwicklern gemeinsam an den verwalteten Dateien arbeitet.
Die Hauptaufgaben einer Versionsverwaltung sind:
Protokollierung der Änderungen: Es kann jederzeit nachvollzogen werden, wer wann welche Änderungen vorgenommen hat.
Wiederherstellung von alten Ständen einzelner Dateien: Versehentliche Änderungen können jederzeit wieder rückgängig gemacht werden.
Archivierung der einzelnen Stände eines Projektes: Es ist jederzeit möglich, auf alle Versionen zuzugreifen.
Koordinierung des gemeinsamen Zugriffs von mehreren Entwicklern auf die Dateien
Gleichzeitige Entwicklung mehrerer Entwicklungszweige eines Projektes
Eine verteilte Versionsverwaltung verwendet kein zentrales Repository. Jeder Entwickler, der an dem verwalteten Projekt arbeitet, hat sein eigenes Repository und kann dieses mit jedem beliebigen anderen Repository abgleichen. Die Versionsgeschichte ist ebenso verteilt. Änderungen können lokal verfolgt werden, ohne eine Verbindung zu einem Server aufbauen zu müssen.
Die von CODESYS verwendete Projektablage ist nicht zur Verwendung in einem Versionsverwaltungssystem geeignet. Aus diesem Grund wurde für CODESYS Git eine spezielle Projektablage entwickelt. Durch die Verwendung eines Textformates (JSON) wird die Lesbarkeit des Inhaltes der abgelegten Dateien gewährleistet. Darüber hinaus besteht eine klare Zuordnung zwischen einem CODESYS Objekte innerhalb des CODESYS Projektes zum Ablageort der Daten des Objektes innerhalb der CODESYS Git Projektablage.
Da CODESYS Git die Sicherstellung der Konsistenz der CODESYS Projekte sowie die korrekte Behandlung von Abhängigkeiten zwischen CODESYS Objekten optimal unterstützt, sollte auf die Bearbeitung der abgelegten Dateien außerhalb von CODESYS Git verzichtet werden. Dies gilt insbesondere für die in Git typischen Arbeitsabläufe wie Branching und Merging.
CODESYS Git unterstützt die Verwendung von Git Hosting Diensten wie GitHub und GitLab zur Ablage von Git Repositories. Aufgrund der besonderen CODESYS Git Projektablage ist die Bearbeitung der Daten mittels der von einigen Git Hosting Diensten abgebotenen Werkzeugen nur sehr eingeschränkt möglich.
Requirements
Programmiersystem
CODESYS Development System V3.5.19.30 oder höher
Laufzeitsystem
-
Unterstützte Plattformen/ Geräte
-
Zusätzliche Anforderungen
Abonnement der CODESYS Professional Developer Edition
Um die Zusammenarbeit in Git zu ermöglichen, empfiehlt sich die Verwendung eines Git-Servers.
Für Informationen zur Arbeit mit Git oder zur Installation der benötigten Software wenden Sie sich bitte an den IT-Spezialisten in Ihrem Unternehmen.
Einschränkungen
Keine
Lizenzierung
siehe CODESYS Professional Developer Edition
Erforderliches Zubehör
Optional: CODESYS Key
Detaillierte Kompatibilitäts-Information
Version
Programmiersystem
1.6.0.0
3.5.19.30 - Neuestes Release
1.5.0.0
3.5.19.30 - Neuestes Release
1.4.0.0
3.5.19.30 - Neuestes Release
1.3.0.0
3.5.19.30 - Neuestes Release
1.2.1.0
3.5.18.20 - Neuestes Release
1.1.0.0
3.5.17.0 - Neuestes Release
1.0.0.0
3.5.17.0 - Neuestes Release
Support
Technischer Support ist bei diesem Produkt nicht enthalten. Um technischen Support zu erhalten, erwerben Sie bitte ein CODESYS Support Ticket.
Für allgemeine Fehlermeldungen oder Vertriebs-Anfragen vor dem Kauf verwenden Sie bitte direkt das Kontaktformular "Meine Frage", das auch ohne Login genutzt werden kann. Eine Liste mit alternativen Support-Ressourcen finden Sie im Support-Bereich der CODESYS Group-Webseite.
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”)