2009-02-26 6 views
5

Ich bin neu in SVN. Nach der Arbeit auf einem Zweig für einen Tag oder so, habe ich versucht, Änderungen aus dem Stamm mit dem Zweig zusammenführen:SVN markiert ganze Dateien als widersprüchlich

svn merge svn://server/trunk 

Das Problem ist, dass, wenn SVN eine widersprüchliche Datei trifft, ist es nicht in der Lage ist, Zeile für Zeile Änderungen zu erkennen und markiert die gesamte Linie als Konflikt. Ich experimentierte mit mehreren anderen SVN-Clients und versuchte auch, die Endzeilen- und Leerraumoptionen ohne Fortschritt umzuschalten. Was mache ich falsch? Ich denke, das ist der einfachste mögliche Zusammenführungsfall, also würde ich erwarten, dass dies mit den meisten Standard-Subversion-Einstellungen, jedem Client und in jeder beliebigen SVN-Version funktioniert. Ist es ein bekannter Anfänger Fang?

Auftraggeber: 1.5.5 (SlikSVN: tag/[email protected]) WIN32

Server: 1.4.6 (r28521), Windows

bearbeiten

Auf der Grundlage der Vorschläge In den Kommentaren und Antworten unten, habe ich mehr Untersuchung:

  1. Die problematischen Dateien sind UTF8.

  2. Sie haben keine SVN-Eigenschaften.

  3. Der Befehl "svn diff" identifiziert die Unterschiede korrekt.

+0

Windows? Linux? Schildkröte? –

+0

Danke, dass du mich darauf hingewiesen hast. Ich habe den Beitrag bearbeitet. –

+0

Welche Art von Datei ist das? Hat es irgendwelche svn: Requisiten gesetzt? Was zeigt ein svn diff, wenn Sie Ihre Branchenversion mit der Stammversion vergleichen? –

Antwort

5

Wir hatten dieses Problem kürzlich und stellten fest, dass es ein Problem bei der Verwendung eines 1.4.x-Servers und eines 1.5.x-Clients war. Subversion 1.5 führte ein intelligenteres Zusammenführen ein, aber Sie müssen den Server und den Client mit 1.5 ausführen, um dies zu nutzen.

Wir fanden, dass die Angabe des Bereichs der Revisionsnummern, die wir zusammenführen wollten, die erwarteten Ergebnisse lieferte.

0

Haben Sie versucht mit TortoiseSVN? Es wird mit ToroiseMerge geliefert, was ich auch für eine ordentliche Verschmelzung halte.

+0

Ich habe es versucht, aber mit dem gleichen Ergebnis. Ich war auch verwirrt über die Schnittstelle und so entschied ich mich für den kleinsten gemeinsamen Nenner: einen Befehlszeilenclient. Ich werde es noch einmal versuchen und ein Update bereitstellen. –

0

Ich habe nicht SVN eine Tonne verwendet, und ich habe es nur durch die Eclipse-Plug-in verwendet, aber es könnte einige Szenarien geben, in denen Sie einfach sagen müssen, welchen Fall zu verwenden (Ihre lokale vs. die Remote-Datei). Das Zusammenführen einer Reihe von disjunkten ausgehenden und eingehenden Änderungen ist normalerweise kein Problem, aber wenn eine Zeile mit bestimmten Arten von Änderungen in Konflikt steht (in der Eclipse markiert sie die gesamte Zeile/den Block als rot), müssen Sie vielleicht nur das eine oder das andere akzeptieren es wird wahrscheinlich nicht von selbst weiter verschmelzen.

0

Überprüfen Sie die Eigenschaft svn: mime-type in Ihren Dateien. Wenn eine solche Eigenschaft gesetzt ist und ihr Wert nicht mit 'text /' beginnt, behandelt Subversion diese Dateien als binär und nicht als Text.

Wenn Ihre Dateien in utf-16 codiert sind, behandelt Subversion diese Dateien standardmäßig auch als Binärdateien.

+0

Die problematischen Dateien haben keine SVN-Eigenschaften, aber sie scheinen in UTF8 zu sein. Zählt es? –

+0

utf8 ist kein Problem. – Stefan

2

Ich habe Marks Antwort gewählt. Dies ist nur um zusammenzufassen und mehr Details zur Verfügung zu stellen. Mein Problem wird durch die Tatsache verursacht, dass wir SVN 1.4 verwenden, das die fortgeschritteneren 1.5 merging Eigenschaften nicht unterstützt.Wie durch die gewählte Antwort angegeben ist, fand ich, dass ich das folgende Format des SVN verwenden Befehl fusionieren (falls ich meinen Zweig wechselt von Stamm propagieren will):

svn merge svn://dpr/branches/[email protected] svn://dpr/[email protected] 

Ich denke, dass meine Verwirrung verursacht durch die Tatsache, dass das SVN-Buch und die Clients, die ich verwendete, stillschweigend davon ausgingen, dass ich bereits 1.5 und die Beispiele und die Standard-Merging-Methoden die neuen Features verwendeten. Um fair zu sein, erwähnt die Einführung in den Abschnitt "Grundlegende Zusammenführung" in den SVN-Büchern (was ich erst bemerkt habe, als ich das Problem gelöst habe).

+0

Das SVN-Buch hat auch in unserem Fall für Verwirrung gesorgt !! – Mark

Verwandte Themen