Subversion: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Roth (Diskussion | Beiträge)
Roth (Diskussion | Beiträge)
Zeile 115: Zeile 115:


=== Conflicts ===  
=== Conflicts ===  
[[Image:TortoiseSVN_commit_failed.png|thumb|right|300px|[[Subversion#TortoiseSVN|TortoiseSVN]] Dialog: Commit schlägt fehl, da <code>foo.cpp</code> in neuerer Revision vorliegt]]
Konflikte treten auf, wenn eine geänderte Datei committed wird, die in der Zwischenzeit in einer neueren Revision im Projekt-Archiv vorliegt. Konflikte bemerkt man entweder beim Committen <code>svn: Out of date</code> oder nach einem Update an der Markierung der Datei mit einem <code>C</code>.
Konflikte treten auf, wenn eine geänderte Datei committed wird, die in der Zwischenzeit in einer neueren Revision im Projekt-Archiv vorliegt. Konflikte bemerkt man entweder beim Committen <code>svn: Out of date</code> oder nach einem Update an der Markierung der Datei mit einem <code>C</code>.


Zeile 144: Zeile 146:


==== Das beste aus Beiden Versionen behalten ====
==== Das beste aus Beiden Versionen behalten ====
[[Image:TortoiseMerge.png|thumb|right|300px|[[Subversion#TortoiseSVN|TortoiseSVN]] Merge tool]]
Hier muss man die datei <code>foo.cpp</code> öffnen und alle Markierten Stellen von Hand bearbeiten, so dass am Ende das gewünschte übrig bleibt. Nach dem Speichern teilt man SVN mittels
Hier muss man die datei <code>foo.cpp</code> öffnen und alle Markierten Stellen von Hand bearbeiten, so dass am Ende das gewünschte übrig bleibt. Nach dem Speichern teilt man SVN mittels
<code>svn resolve foo.cpp</code> mit das nun alles in Ordnung ist. SVN kümmert sich (löscht) die verbleibenden Dateien und man kann jetzt committen. Um sich den Prozess der Bearbeitung zu erleichtern gibt es auch eine ganze reihe Tools und Plugins für fast alle gängigen Editoren.
<code>svn resolve foo.cpp</code> mit das nun alles in Ordnung ist. SVN kümmert sich (löscht) die verbleibenden Dateien und man kann jetzt committen. Um sich den Prozess der Bearbeitung zu erleichtern gibt es auch eine ganze reihe Tools und Plugins für fast alle gängigen Editoren.
[[Subversion#TortoiseSVN|TortoiseSVN]] bietet einen Merge-Editor an. Diesen startet man für eine conflicted Datei mittels Rechtsklick auf diese wählt dann ''"Edit conflicts"'' dies öffnet den Editor (siehe rechts). Hier ist die obere linke Hälfte die aktuelle Revision im Projekt-Archiv (Mit "Theirs" betitelt). Die rechte Hälfte (mit "Mine" betitelt) öffnet die <code>foo.cpp.mine</code> datei. In Orange ist jeweils die Differenz markiert (die Zeile dient zur Orientierung wie sie vor dem Konflikt war). Im unteren Editor kann man nun unter jeder orangen Zeile entscheiden, welchen Teil man übernehmen möchte. Mit Rechtsklick auf die Zeile wählt man für jede Differenz <code>Use text block from "theirs"</code> für den Code aus der aktuellen Revision im Projekt-Archiv oder <code>Use text block from "mine"</code> um den Code aus meinen Änderungen zu benutzen. Man kann auch direkt etwas komplett anderes direkt in die Zeilen Schreiben.
Ist man mit der Bearbeitung fertig, klickt man oben links aus "Save". Jetzt sollte man schauen, ob die Datei auch wirklich so ist wie man sie möchte und ob das Projekt noch kompiliert etc. Dann kann man die Datei mit ''Rechtsklick -> TurtoiseSVN -> Resolve'' (Dies ist auch in der Taskleiste im MergeEditor möglich) als "resolved" markieren und committen.


=== History ===  
=== History ===  
Abgerufen von „https://sopranium.de/Subversion