@ -71,3 +71,24 @@ Je größer ein Coding Projekt, desto wichtiger ist es, das Projekt zu protokoll
### Wiederholung
### Wiederholung
Bei zentralem SCM wird die Historie auf einem Server/Netzwerk gespeichert. Dadurch sind die Dateien abgesichert. Alle Entwickler sehen alle commits und es ist erkennbar, wer an welcher Datei gerade arbeitet. Offline arbeiten sowie paralleles Arbeiten an einer Datei ist jedoch nicht möglich (locking). Im Gegenzug hat bei dem verteilten SCM jeder Entwickler seine eigene Version des Repositories. Dieses funktioniert ohne (permanente) Netzwerkverbindung und dient als implizietes Backup. Das Repository aller Entwickler ist also nicht synchron, wodurch Konflikte bei merges häufig auftreten.
Bei zentralem SCM wird die Historie auf einem Server/Netzwerk gespeichert. Dadurch sind die Dateien abgesichert. Alle Entwickler sehen alle commits und es ist erkennbar, wer an welcher Datei gerade arbeitet. Offline arbeiten sowie paralleles Arbeiten an einer Datei ist jedoch nicht möglich (locking). Im Gegenzug hat bei dem verteilten SCM jeder Entwickler seine eigene Version des Repositories. Dieses funktioniert ohne (permanente) Netzwerkverbindung und dient als implizietes Backup. Das Repository aller Entwickler ist also nicht synchron, wodurch Konflikte bei merges häufig auftreten.
Continuous Integration Systems erleichtern die Zusammenarbeit mehrerer Entwickler. Das CI System führt einzelne Änderungen am Source Code automatisiert und formatiert zusammen, organisiert Abhängigkeiten, führt automatisierte Tests aus, übersetzt den Quelltext in das Zielformat und stellt eine neue Version des fertigen Profukts bereit.
### Wiederholung
Da die Prozesse eines CI Systems vollkommen automatisiert und ohne menschlichen Eingriff ablaufen, kann man nicht direkt auf Fehler reagieren. Zum Beispiel sind kompilierbare Programme nicht immer auch ausführbar. Automatisierte Tests erkennen Fehler zur Laufzeit und dokumentieren gewünschtes Verhalten des Programms. Jedoch können nur bereits bekannte Fehler entdeckt werden.