Subversion: Unterschied zwischen den Versionen

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


=== Conflicts ===  
=== Conflicts ===  
tbc
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>.
 
Öffnet man die Datei sieht man die Konflikt behafteten Stellen:
 
<<<<<<< .mine
Das habe ich geschrieben
=======
Das steht in der letzten Revision im Projekt-Archiv (Hier Revision 42)
>>>>>>> .r42
 
Nach dem <code>svn update</code> sieht man jetzt 4 Versionen der betroffenen Datei <code>foo.cpp</code>
 
foo.cpp      -> Die Datei mit den Markierungen wie oben.
foo.cpp.mine -> Die Datei mit nur meinen Änderungen.
foo.cpp.r41  -> Die Datei vor meinen Änderungen. (Also Revision 41 der Datei).
foo.cpp.r42  -> Die Datei mit nur den Änderungen aus dem Projekt-archiv. (Also Revision 42 der Datei).
 
Jetzt kann mann sich entscheiden
==== Letzte Revision im Projektarchiv verwenden ====
Hier werden meine Änderungen verworfen und die Letzte Revision aus dem Projekt-Archiv verwendet.
<code>svn resolve --accept theirs-full foo.cpp</code>.
==== Meine Änderungen verwenden und die Änderungen an der Letzten Revision wegschmeißen ====
Eine Möglichkeit wäre: Man löscht die Datei <code>foo.cpp</code> nennt <code>foo.cpp.mine</code> in <code>foo.cpp</code> um. Jetzt muss man SVN mitteilen, dass der Konflikt behoben ist indem man <code>svn resolve foo.cpp</code> ausführt. SVN kümmert sich um die <code>foo.cpp.r<id></code> dateien. Das ganze geht auch mit einem Befehl: <code>svn resolve --accept mine-full foo.cpp</code>
==== Das beste aus Beiden Versionen behalten ====
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.


=== History ===  
=== History ===