Definition und Zweck:
Versionsverwaltung (auch Versionskontrolle, Quellcodeverwaltung, engl. Version Control oder Source Code Management – SCM) ist ein System, das die Verwaltung und Nachverfolgung von Änderungen an Softwarecode, Dokumenten oder anderen Projektdaten über deren gesamten Lebenszyklus hinweg ermöglicht. Jede Änderung wird als neue „Version“ gespeichert, sodass man jederzeit auf frühere Zustände zurückgreifen kann.
Das Hauptziel der Versionsverwaltung ist es, die Zusammenarbeit in Entwicklungsteams zu erleichtern, die Nachvollziehbarkeit von Änderungen zu gewährleisten, Fehler zu identifizieren und die Wartbarkeit und Qualität der Software zu verbessern.
Typische Systeme (Auszug):
- Git: Das heute am weitesten verbreitete dezentrale Versionsverwaltungssystem.
- SVN (Subversion): Ein älteres, zentralisiertes Versionsverwaltungssystem.
- TFS (Team Foundation Server) / Azure DevOps Server: Microsofts Lösung.
Relevanz in der Automatisierungstechnik:
Versionsverwaltung ist in der industriellen Automatisierung von entscheidender Bedeutung für die Entwicklung und Wartung von SPS-Programmen, HMI-Projekten und anderen Automatisierungssoftware, die oft über Jahrzehnte in Betrieb bleiben:
- Nachvollziehbarkeit: Wer hat wann was am SPS-Programm oder HMI-Projekt geändert? Warum wurde es geändert?
- Fehlerbehebung: Bei Fehlern kann man auf frühere, stabil laufende Versionen zurückgreifen oder Änderungen vergleichen, um die Ursache zu finden.
- Teamarbeit: Ermöglicht mehreren Programmierern, gleichzeitig an demselben Projekt zu arbeiten, ohne sich gegenseitig zu überschreiben.
- Qualitätssicherung: Ein wichtiger Bestandteil der Softwarequalität.
- Compliance: In regulierten Industrien (z.B. Pharma) ist die lückenlose Dokumentation von Änderungen oft gesetzlich vorgeschrieben.
- Rollback: Die Möglichkeit, bei fehlerhaften Updates auf eine vorherige Version zurückzuspringen.
- Backup: Dient als eine Form des Backups der Softwarestände.
Moderne SPS-Engineering-Tools (z.B. Siemens TIA Portal mit Teamcenter Integration, Beckhoff TwinCAT mit Git-Integration, CODESYS mit Git) integrieren Versionsverwaltungssysteme, um den Prozess zu vereinfachen.
→ Siehe auch: Git, Backup/Restore, Softwarequalität, Patch Management, Deployment, Change Control

