Mit iffTeX können Sie Ihre LaTeX-Dokumente wie Paper, Poster, etc. gemeinsam bearbeiten. Da viele Benutzer des Online-LaTeX-Editors ihre Arbeit auch offline fortsetzen möchten, freuen wir uns Ihnen mitteilen zu können, dass dies nun mit einer sehr oft nachgefragten Funktion möglich ist: einer GitLab-Integration.
Mit dieser Funktion können Sie Ihr iffTeX-Konto mit Ihrem GitLab-Konto unter iffGit oder juGit verknüpfen und ein iffTeX-Projekt mit einem GitLab-Repository synchronisieren. Dies vereint die Vorteile des kollaborativen Echtzeit-Online-Editors mit der leistungsstarken Versionskontrolle von Git und der Möglichkeit, offline zu arbeiten, während Änderungen einfach mit Git und GitLab zusammengeführt werden können.
Dieser Workflow zeigt, wie Sie Ihre Konten verknüpfen und mit der Synchronisierung von Projekten beginnen können.
iffTeX GitLab Workflow
Accounts Verknüpfen
iffTeX für die Verwendung des GitLab Accounts authorisieren
Importieren und Exportieren von Projekten
Importieren eines GitLab Repositorys
Exportieren eines Projekts zu GitLab
Änderungen Synchronisieren
Änderungen aus GitLab abrufen
Änderungen zu GitLab synschronisieren
Projekt Synchronisation
Das Synchronisieren von GitLab-Projekten erfolgt in mehreren Schritten:
- Ein neuer Git commit mit der aktuellen Version des Projekts in iffTeX wird in einem separaten branch erstellt. Dieser branch basiert auf dem commit der letzten Synchronisation (oder des Imports/Exports).
- Es wird ein merge request des Synchronisations-Branches in den master branch erstellt.
- Enthält der merge request keine Konflikte, wird er gemerged und der Synchronisations-Branch entfernt. Abdernfalls wird iffTeX dem Anwender eine Meldung zeigen und auffordern den Konflikt manuell in GitLab (oder Git) zu beheben.
- Der aktualisierte master branch wird von GitLab abgerufen und die Änderungen auf die Dateien in iffTeX angewendet. Wenn Schritt 3 aufgrund von Konflikten fehlgeschlagen ist wird das Abrufen der Änderungen erst nach der Bestätigung des Nuzters über ein manuelles Beseitigen der Konflikte durchgeführt.
Diese Schritte können beispielsweise die folgenden commits erzeugen:
In diesem Beispiel hat die erste Synchronisation nur Aktualisierungen aus iffTeX eingespielt und die zweite Änderungen aus iffTeX und GitLab kombiniert. Diese kombinierten Änderungen werden danach auf die Dateien in iffTeX angewendet.
Die Synchronisation kann von jedem eingeloggten Nuzter in iffTeX der Schreibrechte auf das Projekt hat gestartet werden. Der verknüpfte GitLab Account des Nutzers benötigt dazu die Berechtigung im GitLab Repository commits zu erstellen und in master mergen zu können.
Projekt Synchronisation
Das Synchronisieren von GitLab-Projekten erfolgt in mehreren Schritten:
- Ein neuer Git commit mit der aktuellen Version des Projekts in iffTeX wird in einem separaten branch erstellt. Dieser branch basiert auf dem commit der letzten Synchronisation (oder des Imports/Exports).
- Es wird ein merge request des Synchronisations-Branches in den master branch erstellt.
- Enthält der merge request keine Konflikte, wird er gemerged und der Synchronisations-Branch entfernt. Abdernfalls wird iffTeX dem Anwender eine Meldung zeigen und auffordern den Konflikt manuell in GitLab (oder Git) zu beheben.
- Der aktualisierte master branch wird von GitLab abgerufen und die Änderungen auf die Dateien in iffTeX angewendet. Wenn Schritt 3 aufgrund von Konflikten fehlgeschlagen ist wird das Abrufen der Änderungen erst nach der Bestätigung des Nuzters über ein manuelles Beseitigen der Konflikte durchgeführt.
Diese Schritte können beispielsweise die folgenden commits erzeugen:
In diesem Beispiel hat die erste Synchronisation nur Aktualisierungen aus iffTeX eingespielt und die zweite Änderungen aus iffTeX und GitLab kombiniert. Diese kombinierten Änderungen werden danach auf die Dateien in iffTeX angewendet.
Die Synchronisation kann von jedem eingeloggten Nuzter in iffTeX der Schreibrechte auf das Projekt hat gestartet werden. Der verknüpfte GitLab Account des Nutzers benötigt dazu die Berechtigung im GitLab Repository commits zu erstellen und in master mergen zu können.