Manuals

Zusammenführen

Wenn Zweige für verschiedene Entwicklungslinien verwendet werden, werden Sie an einem bestimmten Punkt die Änderungen, die Sie in einem Zweig gemacht haben, wieder mit dem Stamm zusammenführen wollen oder umgekehrt.

Es ist wichtig zu verstehen, wie Verzweigen und Zusammenführen in Subversion funktioniert, bevor Sie es benutzen. Es kann unter Umständen sehr komplex werden. Wir empfehlen Ihnen, das Kapitel Verzweigen und Zusammenführen des Subversion-Buchs zu lesen. Dieses Kapitel beschreibt ausführlich das Verzweigen und Zusammenführen und gibt auch einige Beispiele, wie man diese Werkzeuge am besten benutzt.

Der nächste wichtige Punkt ist, dass Zusammenführen immer in der Arbeitskopie stattfindet. Wenn Sie Änderungen in einem Zweig zusammenführen möchten, müssen Sie eine Arbeitskopie für diesen Zweig auschecken und den Assistenten mittels TortoiseSVNZusammenführen... in dieser Arbeitskopie aufrufen.

Es ist grundsätzlich eine gute Idee, Revisionen in einer unmodifizierten Arbeitskopie zusammenzuführen. Wenn Ihre Arbeitskopie Änderungen enthält, übertragen Sie diese zuerst. Falls nämlich das Zusammenführen nicht zu dem von Ihnen gewünschten Ergebnis führt und Sie die Änderungen Rückgängig machen, wird dieser Befehl alles verwerfen, inklusive Ihrer eigenen Änderungen.

Es gibt drei Anwendungsfälle für das Zusammenführen, die ein wenig unterschiedlich gehandhabt werden, wie weiter unten beschrieben. Die erste Seite des Assistenten fragt Sie nach der gewünschten Methode.

Einen Revisionsbereich zusammenführen

Diese Methode deckt den Fall ab, dass Sie Änderungen an einem Zweig (oder dem Stamm) vorgenommen haben und diese Änderungen in einen anderen Zweig übertragen wollen.

Damit weisen Sie Subversion an, folgendes zu tun: Berechne die Änderungen, die nötig sind, um von Revision X des Zweiges A zu Revision Y des Zweiges A zu gelangen und wende diese Änderungen auf meine Arbeitskopie (von Stamm oder Zweig B) an.

Wenn Sie den Revisionsbereich leer lassen, wird Subversion auf das interne Änderungsprotokoll zurückgreifen, um den korrekten Revisionsbereich zu ermitteln. Dies wird als Reintegrieren oder automatisches Zusammenführen bezeichnet.

Zusammenführen zweier Bäume

Dies ist ein allgemeinerer Fall des Wiedereingliederns eines Zweiges. Damit weisen Sie Subversion an, folgendes zu tun: Berechne die Änderungen, die nötig sind, um von der HEAD-Revision des Stammes zur HEAD-Revision des Zweiges zu gelangen und wende diese Änderungen auf meine Arbeitskopie (des Stammes) an. Das Ergebnis ist, dass der Stamm danach exakt wie der Zweig aussieht.

Falls Ihr Server oder das Projektarchiv die Protokollierung der Datenintegration nicht unterstützt, ist das die einzige Methode, mit der Sie einen Zweig in den Stamm zurück integrieren können. Ein anderer Anwendungsfall tritt auf, wenn Sie mit Herstellerzweigen arbeiten und die Änderungen aufgrund einer neuen Auslieferung in Ihrem Stamm zusammenführen müssen. Für weiterführende Informationen lesen Sie bitte das Kapitel Herstellerzweige im Subversion-Buch.

Einen Revisionsbereich zusammenführen

Abbildung 4.53. Der Assistent - Revisionsbereich wählen

Der Assistent - Revisionsbereich wählen


Im Feld Von: geben Sie die URL des Zweiges an, der die Änderungen enthält, die Sie mit der Arbeitskopie zusammenführen möchten. Sie können auch auf ... klicken, um den gewünschten Zweig zu finden. Wenn Sie bereits Änderungen aus diesem Zweig zusammengeführt haben, finden Sie den Namen in der Liste der bereits benutzten URLs.

Wenn sie von einem umbenannten oder gelöschten Zweig zusammenführen möchten, müssen Sie zu einer Revision zurückgehen, in der dieser Zweig noch existierte. In diesem Fall müssen Sie die entsprechende Revision als fixe Revision im Bereich der zusammenzuführenden Revisionen angeben (siehe unten). Andernfalls wird das Zusammenführen fehlschlagen, wenn der Pfad in der HEAD-Revision nicht gefunden wird.

Geben Sie den zusammenzuführenden Revisionsbereich in das Feld Revisionsbereich ein. Das kann eine einzelne Revision, eine durch Kommata getrennte Liste von Revisionen, ein durch Bindestrich getrennter Revisionsbereich oder eine Kombination aus allem sein.

Wenn Sie eine fixe Revision für das Zusammenführen benötigen, geben Sie diese am Ende der Revisionen an, z. B.5-7,10@3. In diesem Beispiel werden die Revisionen 6,5,7 und 10 zusammengeführt, wobei 3 die fixe Revision darstellt.

Wichtig

Es gibt einen wichtigen Unterschied in der Spezifikation von Revisionsbereichen, wie sie in TortoiseSVN und im Kommandozeilenclient verwendet werden. Am einfachsten stellt man sich das als einen Zaun mit Pfählen und Brettern dazwischen vor.

Mit dem Kommandozeilenclient legt man die Revisionen der zusammenzuführenden Bereiche als Zaunpfähle fest, die die Punkte davor und danach festlegen.

Mit TortoiseSVN legen Sie die zusammenzuführenden Änderungen als Zaunbretter fest. Der Grund dafür wird deutlich, wenn Sie den Log-Dialog verwenden, um die Revisionen festzulegen, in dem jede Revision als ein Satz von Änderungen erscheint.

Wenn Sie Revisionen in Blöcken zusammenführen, würde die Methode im Subversion-Buch sie zunächst 100-200 und danach 200-300 zusammenführen lassen. Mit TortoiseSVN sind es zunächst 100-200 und dann 201-300.

Dieser Unterschied hat zu hitzigen Diskussionen auf der Mailingliste geführt. Wir räumen ein, dass es einen Unterschied zum Kommandozeilenclient gibt, aber wir sind davon überzeugt, dass die von uns implementierte Methode für die Mehrzahl der GUI-Anwender einfacher zu verstehen ist.

Der einfachste Weg, um den Revisionsbereich zu wählen, ist ein Klick auf Zeige Log. Dies zeigt Ihnen die letzten Änderungen inklusive der Logmeldungen an. Wenn Sie nur die Änderungen einer einzelnen Revision benötigen, wählen Sie die gewünschte Revision. Wenn Sie einen Revisionsbereich benötigen, wählen Sie diesen mit gedrückter Umschalt-Taste aus. Klicken Sie auf OK und die Liste der zusammenzuführenden Revisionsnummern wird für Sie ausgefüllt.

Wenn Sie bereits übertragene Änderungen rückgängig machen wollen, erreichen Sie das, indem Sie den gewünschten Revisionsbereich Rückwärts zusammenführen. Dadurch werden die Änderungen dieses Revisionsbereichs aus Ihrer Arbeitskopie entfernt.

Wenn Sie bereits Änderungen aus diesem Zweig zusammengeführt haben, so haben Sie hoffentlich auch in der Logmeldung notiert, welche Revisionen das waren. In diesem Fall können Sie einfach mit Hilfe der Zeige Log Schaltfläche nachschauen. Verwenden Sie die Endrevision des letzten Zusammenführens als Startrevision der geplanten Aktion. Wenn Sie zum Beispiel zuletzt die Revisionen 37 bis 39 mit Ihrer Arbeitskopie zusammengeführt haben, sollte die Startrevision für die aktuelle Aktion 40 sein.

Neuere Versionen von Subversion protokollieren die bisher durchgeführten Datenintegrationen mit. Deshalb müssen Sie sich nicht merken, welche Revisionen Sie bereits zusammengeführt haben. Wenn Sie den Revisionsbereich leer lassen, werden alle bisher noch nicht integrierten Revisionen ausgewählt. Lesen Sie in „Verfolgung der Datenintegration“, wie das funktioniert.

Wenn die zusammengeführten Revisionen aufgezeichnet wurden, zeigt der Log-Dialog bereits zusammengeführte Revisionen und Revisionen, die vor dem gemeinsamen Vorfahren liegen, d. h., bevor der Zweig angelegt wurde, ausgegraut an. Die Option Nicht zusammenführbare Revisionen ausblenden erlaubt Ihnen, diese Revisionen vollständig herauszufiltern, sodass Sie nur die Revisionen sehen, die zusammengeführt werden können.

Wenn außer Ihnen noch andere Personen Daten in das Projektarchiv übertragen, seien Sie vorsichtig bei der Verwendung der HEAD-Revision. Diese entspricht eventuell nicht der Revision, die Sie erwarten, weil seit Ihrer letzten Aktualisierung jemand anderes Daten übertragen haben könnte.

Wenn Sie den Revisionsbereich leer lassen oder die Option Alle Revisionen markiert haben, wird Subversion alle bisher noch nicht zusammengeführten Revisionen verwenden. Dies wird als Reintegrieren bzw. automatisches Zusammenführen bezeichnet.

Um einen Zweig wieder eingliedern zu können, müssen einige Bedingungen erfüllt sein. Zunächst muss der Server die Verfolgung der Datenintegration unterstützen. Die Tiefe der Arbeitskopie muss unendlich sein (keine spärliche Arbeitskopie) und sie darf weder lokale Änderungen noch Objekte auf einer anderen URL oder einer anderen Revision als HEAD enthalten. Alle Änderungen am Stamm während der Entwicklung des Zweiges müssen in den Zweig übertragen worden sein (oder als übertragen markiert worden sein). Der Bereich der zusammenzuführenden Revisionen wird dann automatisch berechnet.

Klicken Sie auf Weiter und gehen Sie zu „Optionen beim Zusammenführen“.

Zusammenführen zweier Bäume

Abbildung 4.54. Der Assistent - Zusammenführen von Bäumen

Der Assistent - Zusammenführen von Bäumen


Um mit dieser Methode einen Funktionszweig mit dem Stamm zusammenzuführen, müssen Sie den Assistenten aus einer Arbeitskopie des Stamms starten.

Im Von:-Feld geben Sie die URL des Stammes (trunk) an. Dies mag Ihnen jetzt vielleicht falsch vorkommen, aber bedenken Sie, dass der Stamm der Ausgangspunkt ist, von dem aus Sie die Änderungen des Funktionszweiges zusammenführen möchten. Sie können auch auf ... klicken, um die URL besser zu finden.

Im Bis:-Feld geben Sie die vollständige URL des Zweiges an.

Sowohl im Feld Von Revision als auch im Feld Bis Revision geben Sie die letzte Revision an, in der die beiden Zweige synchron waren. Wenn Sie sicher sind, dass niemand anders seit Ihrer letzten Synchronisation eine Übertragung gemacht hat, können Sie in beiden Feldern die HEAD-Revision angeben. Falls jedoch in der Zwischenzeit die Möglichkeit einer Übertragung besteht, geben Sie die letzte Revision Ihrer Synchronisation an.

Sie können auch auf Zeige Log klicken, um die Revision zu wählen.

Optionen beim Zusammenführen

Auf dieser Seite des Assistenten können Sie weitere Optionen angeben, bevor Sie das Zusammenführen starten. In den meisten Fällen können Sie die Standardeinstellungen verwenden.

Sie können die Tiefe für das Zusammenführen festlegen, das heißt, wie weit das Zusammenführen in Ihre Arbeitskopie herabsteigen soll. Die Tiefendefinitionen sind in „Rekursionstiefe“ beschrieben. Die Vorgabe ist Arbeitskopie, was den aktuell eingestellten Wert verwendet und meistens korrekt sein wird.

Meistens möchten Sie, dass die Historie der Dateien berücksichtigt wird, sodass Änderungen relativ zu einem gemeinsamen Vorgänger zusammengeführt werden. Manchmal möchten Sie aber auch Dateien zusammenführen, zwischen denen eine Beziehung besteht - allerdings nicht in Ihrem Projektarchiv. Sie haben zum Beispiel Versionen 1 und 2 einer externen Bibliothek in zwei verschiedene Verzeichnisse importiert. Obwohl zwischen diesen ein logischer Zusammenhang besteht, weiß Subversion nichts davon, weil es nur die separat importierten Dateibäume sieht. Wenn Sie versuchen, die Unterschiede zwischen den beiden Versionen zusammenzuführen, sehen Sie ein vollständiges Entfernen gefolgt von einem vollständigen Hinzufügen. Damit Subversion nur pfadbasierte Differenzen anstelle von vergangenheitsbasierten Differenzen erzeugt, wählen Sie die Option Vorfahren ignorieren. Weitere Informationen zu diesem Thema finden Sie im Subversion-Buch in Die Abstammung berücksichtigen oder ignorieren.

Sie können festlegen, wie Änderungen an Zeilenumbrüchen und Leerzeichen behandelt werden sollen. Diese Optionen sind in „Zeilenende- und Leerzeichenoptionen“ beschrieben. Die Vorgabe ist, dass alle Zeilenenden- und Leerzeichenänderungen als echte zusammenzuführende Änderungen behandelt werden.

Die Option Zusammenführen erzwingen dient dazu, Baumkonflikte zu vermeiden, wenn durch ein eingehendes Löschen eine veränderte oder nicht versionierte lokale Datei betroffen ist. Wenn dadurch die Datei gelöscht wird, kann sie nicht im Ursprungszustand wiederhergestellt werden, weshalb die Option standardmäßig deaktiviert ist.

Wenn Sie Ihre Datenintegrationsschritte verfolgen und eine Revision als zusammengeführt markieren wollen, ohne die Daten wirklich zusammenzuführen, aktivieren Sie die Option Zusammenführen nur aufzeichnen. Es gibt mehrere Gründe, dies zu tun. Zum Beispiel könnten die zusammenzuführenden Änderungen zu komplex für den Algorithmus sein, sodass Sie die Daten von Hand integrieren und die Revisionen als zusammengeführt markieren, damit die Änderungsverfolgung darüber informiert ist. Oder Sie möchten verhindern, dass eine bestimmte Revision zusammengeführt werden kann. Clients, die die Verfolgung der Datenintegration bereits beherrschen, werden diese Revision dann überspringen.

Nun, da alles vorbereitet ist, müssen Sie nur noch auf Zusammenführen klicken. Wenn Sie eine Vorschau der Ergebnisse wünschen, können Sie einen Trockenlauf durchführen, der das Zusammenführen lediglich simuliert und die Arbeitskopie nicht verändert. Eine Liste der veränderten Dateien und der eventuell resultierenden Konflikte wird angezeigt. Da die Protokollierung der Datenintegration das Zusammenführen weiter verkompliziert, gibt es kein sicheres Verfahren, im Vorhinein festzustellen, wo Konflikte auftreten. Dadurch kann es vorkommen, dass beim Trockenlauf als konfliktbehaftet markierte Dateien sich in Wirklichkeit problemlos zusammenführen lassen.

Der Fortschrittsdialog zeigt nun jeden Schritt des Zusammenführens mit den betroffenen Revisionen an. Eventuell wird hier eine Revision mehr als von Ihnen erwartet angezeigt. So wird zum Beispiel, wenn Sie die Revision 123 zusammenführen, im Fortschrittsdialog Zusammenführen von Revisionen 122 bis 123 angezeigt. Das Zusammenführen ist mit dem Vergleichen verwandt. Der Prozess erzeugt eine Liste von Änderungen zwischen zwei Punkten im Projektarchiv und wendet diese Änderungen auf Ihre Arbeitskopie an. Der Fortschrittsdialog zeigt lediglich den Start- und Endpunkt der Differenzbildung an.

Ergebnisse des Zusammenführens betrachten

Das Zusammenführen ist nun beendet. Es ist eine gute Idee, wenn Sie sich das Ergebnis anschauen und prüfen, ob es Ihren Erwartungen entspricht. Datenintegration ist normalerweise eine komplizierte Sache. Konflikte können auftreten, wenn der Zweig sich zu weit vom Stamm entfernt hat.

Tipp

Jedes Mal, wenn Revisionen zu einer Arbeitskopie zusammengeführt werden, erzeugt TortoiseSVN von allen zusammengeführten Revisionen eine Logmeldung. Diese Meldungen können über die Schaltfläche Letzte Meldungen im Übertragen-Dialog abgerufen werden.

Um die erzeugte Meldung anzupassen, setzen Sie die entsprechenden Eigenschaften auf Ihre Arbeitskopie. Siehe „Vorlage für Zusammenführen-Log“

Bei Subversion-Clients vor Version 1.5 müssen Informationen über zusammengeführte Revisionen von Hand protokolliert werden. Wenn Sie die Änderungen überprüft haben und diese nun übertragen möchten, beachten Sie, dass die Logmeldung dieser Übertragung immer die bereits zusammengeführten Revisionsnummern enthalten sollte. Wenn Sie später erneut Revisionen zusammenführen möchten/müssen, werden Sie froh sein zu wissen, was alles Sie bereits zusammengeführt haben und was nicht. Denn wenn Sie eine Revision ein weiteres Mal zusammenführen, würde dies zwingend zu einem Konflikt führen. Für genauere Informationen lesen Sie bitte Best Practices for Merging im Subversion-Buch.

Wenn Ihr Server und alle Clients unter Subversion 1.5 oder neuer laufen, wird die Protokollierung der Datenintegration sämtliche zusammengeführten Revisionen aufzeichnen und verhindern, dass eine Revision mehr als einmal integriert wird. Das vereinfacht Ihre Arbeit ungemein, da sie nun jedes Mal den gesamten Revisionsbereich wählen können und sichergestellt ist, dass nur neue Revisionen wirklich zusammengeführt werden.

Das Verwalten von Zweigen ist wichtig. Wenn Sie Ihren Zweig stets mit dem Stamm synchron halten wollen, stellen Sie sicher, dass Sie Änderungen häufig zusammenführen, damit Stamm und Zweig nicht zu weit auseinanderdriften. Wie bereits erklärt, sollten Sie wiederholtes Zusammenführen der gleichen Änderungen vermeiden.

Tipp

Wenn Sie gerade einen Funktionszweig in den Stamm integriert haben, enthält der Stamm nun sämtliche neuen Funktionen. Der Zweig ist nun überflüssig und kann deshalb gelöscht werden.

Wichtig

Subversion kann keine Datei mit einem Ordner zusammenführen und umgekehrt - nur Ordner mit Ordnern und Dateien mit Dateien können zusammengeführt werden. Wenn Sie auf eine Datei klicken, um den Zusammenführen-Dialog zu öffnen, müssen Sie eine URL zu einer Datei angeben. Wenn Sie auf einen Ordner klicken, um den Zusammenführen-Dialog zu öffnen, müssen Sie für den Vorgang eine URL zu einem Ordner angeben.

Verfolgung der Datenintegration

Mit Subversion 1.5 wurden Möglichkeiten zur Verfolgung der Datenintegration eingeführt. Wenn Sie Änderungen von einem Baum in einem anderen zusammenführen, werden die entsprechenden Revisionsnummern gespeichert. Diese Information kann für weitere Zwecke herangezogen werden.

  • Sie können vermeiden, dass eine Revision mehrfach integriert wird. Sobald eine Revision als bereits zusammengeführt markiert ist, werden zukünftige Datenintegrationen diese Revision überspringen.

  • Wenn Sie einen Zweig in den Stamm zurück integrieren, kann Ihnen der Log-Dialog die Übertragungen des Zweiges im Log des Stamms anzeigen und Ihnen damit die Verfolgung der Änderungen vereinfachen.

  • Wenn Sie den Log-Dialog aus dem Zusammenführen-Dialog heraus aufrufen, werden bereits zusammengeführte Revisionen in grau angezeigt.

  • Wenn Sie die Annotierungen für eine Datei anzeigen, können Sie sich den Originalautor der Änderungen anstelle des Autors, der die Änderungen zusammengeführt hat, anzeigen lassen.

  • Sie können Revisionen als nicht zusammenführbar markieren, indem Sie diese in die Liste der bereits zusammengeführten Revisionen aufnehmen, ohne das Zusammenführen tatsächlich anzustoßen.

Die zusammengeführten Revisionen und Pfade werden durch den Subversion-Client beim Zusammenführen in der Eigenschaft svn:mergeinfo abgespeichert. Sobald die Änderungen übertragen wurden, speichert der Server sie in einer Datenbank. Wenn jetzt Logdaten, Annotierungen oder Zusammenführen angefordert werden, kann der Server entsprechend reagieren. Damit das System korrekt arbeitet, müssen Sie sicherstellen, dass der Server, das Projektarchiv und alle Clients aktualisiert werden. Ältere Clients füllen die svn:mergeinfo nicht aus und ältere Server beantworten die Anfragen neuerer Clients nicht.

Lesen Sie mehr über die Verfolgung der Datenintegration in Subversions Merge tracking documentation.

Behandlung von Konflikten nach dem Zusammenführen

Wichtig

Die Texte in den Konfliktdialogen werden durch die SVN-Bibliotheken zur Verfügung gestellt und sind deswegen unter Umständen (noch) nicht übersetzt. Tut uns leid!

Zusammenführen geht nicht immer glatt. Manchmal gibt es einen Konflikt, der aufgelöst werden muss. TortoiseSVN hilft Ihnen mit dem Konfliktdialog bei diesem Vorgang.

Abbildung 4.55. Der Zusammenführen-Konfliktdialog

Der Zusammenführen-Konfliktdialog


Es ist wahrscheinlich, dass einige der Änderungen reibungslos zusammengeführt wurden, während andere lokale Änderungen mit Änderungen in Konflikt stehen, die bereits im Projektarchiv festgeschrieben wurden. Alle Änderungen, die zusammengeführt werden können, werden zusammengeführt. Das Dialogfeld "Konflikt zusammenführen" bietet Ihnen verschiedene Möglichkeiten, mit den konfliktbehafteten Zeilen umzugehen.

Für normale Konflikte, die vom Inhalt der Datei oder ihrer Eigenschaften ausgelöst werden, zeigt der Dialog Schaltflächen, die es erlauben zu wählen, welche der konfliktbehafteten Teile behalten oder verworfen werden sollen.

Aufschieben

Den Konflikt jetzt nicht auflösen. Mit dem Zusammenführen fortfahren und anschließend die Konflikte bearbeiten.

Basis übernehmen

Lässt die Datei im Originalzustand, ohne Ihre Änderungen und ohne die Änderungen aus dem Projektarchiv.

Eingehend übernehmen

Verwirft Ihre lokalen Änderungen und übernimmt die Datei aus dem Projektarchiv.

Eingehend verwerfen

Verwirft alle Änderungen aus dem Projektarchiv und behält Ihre lokalen Änderungen bei.

Eingehend für Konflikte übernehmen

Verwirft ihre lokalen Änderungen, wo sie mit den eingehenden Änderungen kollidieren. Behält alle konfliktfreien lokalen Änderungen bei.

Konflikte verwerfen

Verwirft alle eingehenden Änderungen, die mit ihren lokalen Änderungen kollidieren. Behält alle konfliktfreien eingehenden Änderungen bei.

Als aufgelöst markieren

Markiert die Konflikte als aufgelöst. Diese Schaltfläche ist deaktiviert, bis sie mit der Schaltfläche Bearbeiten die Konflikte manuell aufgelöst und gespeichert haben. Sobald die Änderungen gespeichert sind, wird die Schaltfläche aktiviert.

Bearbeiten

Startet den Zusammenführungseditor, damit Sie die Konflikte manuell auflösen können. Vergessen Sie nicht, die Datei zu speichern, damit die Schaltfläche Als gelöst markieren aktiviert wird.

Wenn es einen Baumkonflikt gibt, siehe „Baumkonflikte“ bezüglich der verschiedenen Arten von Baumkonflikten und wie und warum sie auftreten können.

Um Baumkonflikte nach dem Zusammenführen aufzulösen, wird ein Dialog mit verschiedenen Optionen zum Lösen des Konflikts angezeigt.

Abbildung 4.56. Der Dialog zum Zusammenführen von Baumkonflikten

Der Dialog zum Zusammenführen von Baumkonflikten


Weil es unterschiedliche Möglichkeiten gibt, Baumkonflikte zu lösen, zeigt der Dialog abhängig vom konkreten Konflikt unterschiedliche Schaltflächen. Der Text der Schaltflächen und Tooltipps erklärt, was die jeweilige Schaltfläche tut, um den Konflikt zu lösen. Wenn Sie unsicher sind, brechen Sie entweder den Dialog ab oder Sie benutzen die Schaltfläche später, um den Konflikt später zu lösen.

Wartung des Funktionszweiges

Wenn Sie eine neue Funktion in einem separaten Zweig entwickeln, ist es eine gute Idee, sich rechtzeitig eine Richtlinie zu überlegen, wie diese Funktion in die Hauptentwicklungslinie zurückintegriert wird. Wenn gleichzeitig in trunk weiter entwickelt wird, können die Unterschiede mit der Zeit bedeutend werden und die Rückintegration zu einem Alptraum machen.

Falls die Funktion relativ einfach ist und keine längere Zeit in Anspruch nehmen wird, können Sie den einfachen Ansatz wählen und auf dem Zweig solange separat entwickeln, bis die Funktion komplett ist und dann zurück integrieren. Im Assistenten wäre dies eine einfache Einen Revisionsbereich zusammenführen-Aktion, mit dem Revisionsbereich des Zweiges als Parameter.

Wenn die Entwicklung länger dauern wird und Sie Änderungen in trunk berücksichtigen müssen, sollten Sie den Zweig synchron halten. Das bedeutet, dass Sie periodisch Änderungen an trunk in den Zweig integrieren, sodass der Zweig alle Änderungen an trunk plus die neue Funktion enthält. Beim Synchronisationsvorgang verwenden Sie Einen Revisionsbereich zusammenführen. Sobald die Funktion komplett ist, können Sie die Änderungen entweder per Einen Zweig wieder eingliedern oder Zwei verschiedene Bäume zurück integrieren.

Eine andere (schnelle) Methode, um Änderungen vom Stamm in den Entwicklerzweig zu übertragen, ist TortoiseSVNAlles zusammenführen... aus dem erweiterten Kontextmenü. Halten Sie die Umschalt-Taste gedrückt, während Sie einen Rechtsklick auf die Datei machen.

Abbildung 4.57. Der Alles-Zusammenführen-Dialog

Der Alles-Zusammenführen-Dialog


Dieser Dialog ist sehr einfach. Sie müssen lediglich die in „Optionen beim Zusammenführen“ beschriebenen Optionen einstellen. Der Rest wird mit Hilfe der protokollierten Integration automatisch von TortoiseSVN erledigt.

TortoiseSVN homepage