Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Versionskontrolle mit Git und SVN

Konfliktbehebung

Testen Sie unsere 2019 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Subversion verfügt über verschiedene Befehle, um Konflikte bei der Bereitstellung einer neuen Version zu beheben. Dabei übernimmt das Versionskontrollsystem sämtliche Änderungen aller Benutzer.

Transkript

Wenn viele Leute an einem Projekt arbeiten, kann es oft zu Konflikten kommen. Wie Sie mit solchen Konflikten umgehen, lernen Sie in diesem Video. Wenn nun eine andere Person mit Ihnen am gleichen Projekt arbeitet, kann diese Änderungen hochladen. Um nun diese Änderungen auch bei Ihnen lokal im Arbeitsordner zu haben, ist es notwendig, die Änderungen herunterzuladen. Dies funktioniert mit dem Befehl svn update. Im moment befinde ich mich also nun bei Revision 4. In der Zwischenzeit hat mein Kollege Revision 5 allerdings hochgeladen. Um mir nun die aktuellste Version, Revision 5 zu besorgen, gehe ich in die Kommandozeile. Von dort aus kann nun mit dem Befehl svn update die neueste Revision heruntergeladen werden. Mein Stand ist also nun Revision 5, und die Datei README.txt wurde hinzugefügt. Um den gleichen Vorgang nun auch mit TortoiseSVN durchzuführen, kann man durch einfachen Rechtsklick und SVN Update die entsprechende aktuelle Revision herunterladen. Allerdings verläuft der Prozess des Updates nicht immer fehlerfrei, denn arbeiten ich und mein Kollege an denselben Dateien, muss nun eine Konfliktbehebung stattfinden. Sollten wir also an den gleichen Stellen in den gleichen Dateien arbeiten, muss nun von mir, der zuletzt das Update herunterlädt, die Konfliktbehebung stattfinden. Dies funktioniert mit Hilfe des svn resolved Befehl. An dieser Stelle habe ich nun also Änderungen an den README Dateien vorgenommen. Mein Kollege hat an anderer Stelle auch Änderungen an den README Dateien vorgenommen. Er hat allerdings diese Änderungen nun bereits bereitgestellt. Wenn ich mich nun also in der Kommandozeile befinde, und mit dem Befehl svn commit eine neue Version bereitstellen möchte, bestätige ich dies mit Enter und dementsprechend wird mir nun angezeigt, dass das Übertragen fehlschlug, da die Datei bereits zu alt ist und eine neuere Version vorliegt. Aus diesem Grund muss nun mit svn update die neue Version heruntergeladen werden. An der Stelle tritt nun ein Konflikt in Datei README.txt auf. Ich kann mir nun verschiedene Sachen anzeigen lassen. Mit mc sehe ich nun die eigene Seite des Konflikts. Mit dem Befehl mc bestätige ich nun die eigene Seite des Konflikts und kann dann mit einem Commit dementsprechend die Änderungen in das Repository übernehmen. Nun wurde die README.txt meines Kollegens überschrieben. Die verschiedenen Option oben hätten mir auch andere Möglichkeiten der Zusammenführung geboten. Hätte ich nun an der Stelle den Befehl p ausgewählt, hätte ich nun zu späterer Zeit mit dem Befehl svn resolved die Datei als aufgelöst markieren müssen. Wenn ich an der Stelle den selben Vorgang nun mit der grafischen Oberfläche durchführe, also zunächst den Commit an der Stelle bestätige, sehe ich, dass die README.txt dementsprechend nicht aktuell ist, bestätige mit OK. Nun bietet mir die grafische Oberfläche automatisch an, ein Update herunterzuladen. Ich bestätige dies und an der Stelle wurde festgestellt, dass es einen Konflikt gibt. Ich bestätige nun mit OK und sehe wiederum, dass es aktuell hier einen Konflikt gibt. Durch bestätigung des Rechtsklicks kann ich nun, wie in der Kommandozeile, verschiedene Optionen auswählen. Entweder ich wähle meine Version oder die Version der anderen oder ich markiere den Konflikt grundsätzlich als gelöst. Mit dem Edit conflicts Befehl sehe ich nun, die Änderungen im Einzelnen. In der Revision vom Repository, wurde das Smiley auf traurig verändert und in meiner Version hat das Smiley nun einen Bart bekommen. Da dieser Konflikt nun nicht automatisch auflösbar ist, müsste ich mich an der Stelle dafür entscheiden, wie ich diesen Konflikt lösen möchte. Ich lösche nun also die konfliktäre Zeile, entscheide mich doch noch für den Bart, speichere und markiere die Datei nun als gelöst. Nun kann ich dieses Fenster schließen und die neue Revision übertragen. Sollten in der Zwischenzeit viele verschiedene Änderungen duchgeführt worden sein, hilft mir beispielsweise auch der Befehl svn blame dabei festzustellen, wer für welche der Änderungen verantwortlich ist. Wenn ich also nun den Befehl svn blame ausführe für beispielsweise die README datei, dann sehe ich, dass in Revision 7 von trainer diese Veränderungen vorgenommen wurden. Da die Datei nur eine Zeile hat und genau diese Zeile zuletzt in Revision 7 angepasst wurde, ist dementsprechend auch nur diese Zeile sichtbar. Wenn ich den gleichen Vorgang nun mit der grafischen Oberfläche durchführe, in dem Fall für den Index zum Beispiel, geht dies über TortoiseSVN und den Befehl Blame. An der Stelle kann ich noch spezifizieren, seit welcher Revision und bis zu welcher Revision ich die Veränderungen sehen möchte. HEAD revision steht dafür immer für die aktuellste. Ich bestätige nun mit OK und sehe, für jede der Zeilen in dieser Datei wann und von wem diese Revision vorgenommen wurde. Diese Datei wurde zuletzt in Revision 2 angepasst und dementsprechend ist der gesamte Inhalt zuletzt in Revision 2 verändert worden. In diesem Video haben Sie nun also gelernt, was ein Konflikt im Versionskontrollsystem ausmacht und welche Möglichkeiten der Behebung Sie haben.

Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:18.09.2014

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!