External Sync / How to... / Konflikte beheben / Gleichzeitige Änderungen an einer Vorlage / Identische Änderungen
Gleichzeitige Änderung an einer Vorlage, identische Änderungen
Inhaltsverzeichnis |
In diesem Szenario wird die Vorgehensweise illustriert, wenn die gleichzeitige Arbeit an einer Vorlage durch mehrere Entwickler zu identischen Änderungen an den jeweils lokalen Arbeitsversionen der Vorlage führt.
Bei identischen Änderungen in derselben Datei entsteht kein Konflikt beim Überführen des Projektinhalts in das Git-Repository, da Textdateien mit identischem Inhalt als gleich angesehen werden, unabhängig von Bearbeiter, Bearbeitungszeit oder anderen Metadaten.
Ausgangssituation
Im FirstSpirit-Projekt existiert eine Seitenvorlage page_text, dessen Ausgabekanaldefinition „HTML“ folgenden Text enthält:
Zeile 1
Zeile 2
Zeile 3
Zeile 4
Zeile 5
Diese Seitenvorlage ist in den Projektinstanzen beider Entwickler im gleichen Stand vorhanden.
Auftreten des Konfliktfalls
Entwickler A
- Modifikation eines FirstSpirit-Elements
Entwickler A ändert den Inhalt des Ausgabekanals in der Seitenvorlage page_text:
Zeile 1
Zeile 2
Zeile 3 verändert
Zeile 4
Zeile 5 - Export der Änderungen ins Dateisystem
Entwickler A exportiert per fs-cli den Projektstand ins lokale Dateisystem (Git-Repository)
fs-cli -p DevProject -sd "D:\Git\DevProject" export templatestore - Änderungen ins Git-Repository überführen
Entwickler A überträgt die Änderungen ins GIT-Repository
git commit -a -m "changed page_text"
git push
Entwickler B
- Modifikation eines FirstSpirit-Elements
Entwickler B verändert den Inhalt des Ausgabekanals an derselben Textstelle, die auch Entwickler A verändert hat, und fügt denselben Inhalt wie Entwickler A ein:
Zeile 1
Zeile 2
Zeile 3 verändert
Zeile 4
Zeile 5 - Export der Änderungen ins Dateisystem
Entwickler B exportiert per fs-cli den Projektstand ins lokale Dateisystem
fs-cli -p DevProject -sd "D:\Git\DevProject" export templatestore - Änderungen ins Git-Repository überführen
Entwickler B überträgt die Änderungen ins Git-Repository
git commit -a -m "export page_text"
git push
Konfliktlösung
Der Push der Änderungen, die Entwickler B gemacht hat, führt nicht zu einem Konflikt, da diese Änderung an der Seitenvorlage identisch ist mit der, die Entwickler A zuvor ins Repository eingecheckt hat. Für Git bedeutet dies, dass beide Dateien gleich sind.
Weiteres Vorgehen
Sowohl Entwickler A als auch Entwickler B müssen zu diesem Zeitpunkt keine weiteren Schritte vornehmen. Beide Entwickler können nun wie gewohnt mit der verteilten Entwicklung weiterverfahren werden.
Sowohl im lokalen Projekt von Entwickler A als auch im Projekt von Entwickler B ist nun die Seitenvorlage page_text in der identischen Version der Ausgabekanaldefinition vorhanden
Zeile 1
Zeile 2
Zeile 3 verändert
Zeile 4
Zeile 5