2013-05-22 9 views
6

Mit der Merge Funktionalität in SVN (über TortoiseSVN) seit ein paar Monaten habe ich das Gefühl, dass SVN viel zu oft berichtet, dass ein Konflikt auftritt.Ist es möglich, TortoiseSVN Merge-Algorithmus mit einem "besseren" zu ersetzen?

Also ich suche nach einer Möglichkeit, (Tortoise) SVN öfter Konflikte automatisch ohne meine Benutzerinteraktion zu lösen.

Ich bin mir dessen bewusst similar questions und die Tatsache, dass Sie die Diff-Viewer ersetzen kann und Merge-Tool mit Externen:

enter image description here

Von meinem Verständnis diese Werkzeuge Ketten zu spät; Sie werden von SVN/TortoiseSVN aufgerufen, wenn der interne Algorithmus bereits einen nicht lösbaren Konflikt erkannt hat.

Also meine Fragen sind:

  • meine Annahme des Verhaltens ist (interne Merge-Algorithmus, externe Merge-Tools) korrekt?
  • Gibt es eine Möglichkeit, den internen Merge-Algorithmus durch (z. B. kostenpflichtige) Tools zu verbessern?

(Ich verwende VisualSVN Server und V1.7-Repositories, falls das zählt)

+3

werden Sie meinen Vorschlag nicht mögen, aber die einzige Möglichkeit, 'svn' Merge-Algorithmus zu verbessern, ist' git' statt – mvp

+0

@mvp Ja, wahrscheinlich richtig ;-) –

Antwort

1

Erstens sein nichts mit Schildkröten zu tun - das ist nur eine extrem nette GUI auf dem System SVN.

Nun, vielleicht haben Sie viele Zusammenführungen, die wirklich menschliche Aufmerksamkeit brauchen. Wenn das der Fall ist, wird es nicht hilfreich sein, zu etwas wie Git oder Mercurial zu wechseln - keiner von ihnen kann sagen, was Sie wirklich gemeint haben, genau wie SVN es nicht sagen kann.

Sie können den Weg SVN does its merge algorithm durch Lesen der Dokumentation auschecken. FYI v1.8 hat ein paar Verbesserungen, die dazu führen sollten, dass es viel weniger manuelle Entscheidungen gibt, wenn man Reintegrations-Merges macht - es macht es jetzt einfach automatisch, also wenn du den Special Feature-Branch-Stil gemacht hast, merge und mache es falsch, dann wird es sich nicht mehr beschweren. Sie arbeiten jetzt daran, die letzten 2 Versionen zusammenzuführen, und verbessern sie nicht nur kontinuierlich mit der Mergeinfo, sondern auch mit Funktionen wie Verschieben, damit eine Datei nicht neu oder gelöscht wird, wodurch Baumkonflikt-Typ-Zusammenführungen reduziert werden.

1

Es ist schwierig, auf den Kontext zu spekulieren, aber Konflikte gefunden werden, ist unwahrscheinlich, etwas mit TortoiseSVN insbesondere zu tun und mehr nur mit svn zu tun. Wie mvp sagt, git wäre besser (heh), aber haben Sie sich das --reintegrate Flag für die Zusammenführung angesehen? Ich bin mir nicht sicher, wie man es direkt von TortoiseSVN verwenden könnte, aber es hat sich als sehr nützlich erwiesen, Konflikte zu reduzieren.

bearbeitenView the 'advanced merging' tutorial here

+1

Vielen Dank! In der Zwischenzeit sind wir auf SVN 1.8 sowohl Server als auch Clients, es scheint, dass sie ziemlich viel [vereinfachtes Zusammenführen] getan haben (http://subversion.apache.org/docs/release-notes/1.8.html#auto-reintegrate). Ich warte ab und sehe, wie sich das in zukünftigen Merges verhält ... –

+1

Ja, das ist definitiv eine andere Sache, neuere SVN-Revisionen scheinen besser mit Merges im Allgemeinen zurecht zu kommen (besonders 'merginfo's' finde ich) und nur mit einem'.Svn' Datei ist ein Bonus :) –