2009-06-30 12 views
11

Jedes Mal, wenn ein Problem auftritt, wie ein Merge-Konflikt oder etwas Ähnliches, verlangsamt es mich wirklich.Umgang mit Konflikten in SVN mit Tortoise?

Kann mir jemand erklären, wie man Konflikte erzwingen kann?

Zum Beispiel hat ein Kumpel von mir eine Änderung an einer Datei im Repository vorgenommen und festgeschrieben. Während er das tat, hatte ich diese Datei bereits umbenannt und viele Bearbeitungen an meiner Arbeitskopie vorgenommen.

Als ich zum Commit ging, bekomme ich offensichtlich den Konflikt Fehler. Die von ihm bearbeitete Datei existiert nicht mehr auf meiner Arbeitskopie. Wie kann ich SVN sagen, dass es einfach aufhören soll, über den Konflikt zu weinen und es zwingen muss, meine Arbeitskopie zu akzeptieren (dh die Hauptversion mit meiner Arbeitskopie zu überschreiben).

+0

ich ein Video gefunden, wo die Lösung von Konflikten mit Tortoise SVN erklärt https://www.youtube.com/watch?v=ZmARaN5eb3U – Zlelik

Antwort

0

Der beste Weg, dies zu verhindern, ist das Aktualisieren vor dem Commit.

+0

Nun, es passiert ist und die Aktualisierung oder don Committing arbeite nicht, bis es gelöst ist. – KingNestor

+3

Um tatsächlich zu aktualisieren. –

+0

Können wir sein Commit etwas zurücksetzen? – KingNestor

5

Hier ist, wie ich es tat:

  1. Rechtsklick auf den Ordner Solutions, klicken Sie TortoiseSVN -> Protokoll anzeigen.
  2. Rechts die Revision klicken Sie zurücksetzen wollen, wählen Sie „Revert Änderungen dieser Revision“
  3. Recht vor, die in Konflikt Ordner klicken, wählen Sie „gelöst“.
  4. Commit Ihre Lösung
  5. Profit
+1

Und Ihr Kumpel macht das gleiche mit Ihrem Commit, um seine Arbeitskopie zu beheben? ;-) Ich würde vorschlagen, mit Ihrem Kumpel zu sprechen, kleine logische Änderungen zu begehen und häufig zu aktualisieren. –

+0

Was ist, wenn ich Änderungen und Committed vorgenommen habe und der andere Benutzer Änderungen vorgenommen hat und möchte, dass diese Änderung mit dem, was ich begangen habe, zusammengeführt wird? Ich habe damit einen kleinen Rückschlag. – SearchForKnowledge

8

Wenn Sie Ihre Arbeits aktualisieren kopieren können Sie mit der rechten Maustaste in der Protokollliste und wählen, wie Sie den Konflikt zu lösen:

  • Entschlossenheit mit einem Editor/TortoiseMerge (oder welches Merge-Tool Sie auch konfiguriert haben)
  • Auflösung mit "theirs", dh die Version im Repository
  • Auflösung mit "meins", dh Sie r Version der Datei.

Dies funktioniert auch beim Löschen von Dateien richtig - das heißt Sie Notwendigkeit die Datei mit dem SVN zu löschen, wenn Sie tatsächlich wollen sie aus dem Repository löschen. Wenn Sie die Datei aus Gründen der Bequemlichkeit entfernt haben, möchten Sie möglicherweise svn revert es vor der Aktualisierung als eine Datei fehlt aus der Arbeitskopie ist eine modifizierte Datei auch (nicht überraschend).

Um es zusammenzufassen: Sie kann nicht sagen Svn zu "aufhören zu weinen" und einfach mit Ihrer Arbeitskopie zu überschreiben. Das ist eine gute Sache. Sie müssen den Konflikt lösen (was einfach bedeuten könnte, dass der aktuelle Status überschrieben wird), die betroffenen Dateien als aufgelöst markieren (svn resolved) und dann das Ergebnis festschreiben.

0

Ich würde sagen: Der beste Weg, dies zu verhindern, ist Update, bevor Sie ... MODIFY die Datei. Sobald Sie mit Ihren Änderungen fertig sind, werden Sie sie verlieren, wenn Sie vor dem Festschreiben aktualisieren!

0

Hier ist es: Wenn Sie in zwei Fensteransicht sind, können Sie nur die Datei im rechten Fensterbereich (Mine) bearbeiten. Um Änderungen, die in der linken Datei (Theirs) vorgenommen wurden, zu übernehmen, klicken Sie mit der rechten Maustaste auf die geänderten Zeilen und wählen Sie Kontextmenü → Textblock aus 'ihres' verwenden. Dann werden die Änderungen aus der linken Datei zur richtigen Datei hinzugefügt.

Manchmal möchten Sie eigentlich beide Textblöcke, und das Kontextmenü bietet Ihnen auch Kontextmenü → Verwenden Sie beide Textblöcke (dieser zuerst) und Kontextmenü → Verwenden Sie beide Textblöcke (dieser eine letzte).

Wenn Sie sich in der Ansicht mit drei Fenstern befinden (manchmal als Zusammenführungsansicht bezeichnet), können Sie die Datei nur in der Ansicht von unten (Zusammengeführt) bearbeiten. Wie in zwei Fensteransichten können Sie mit der rechten Maustaste auf Konfliktlinien klicken und entweder Kontextmenü → Textblock verwenden aus ihrem oder Kontextmenü → Textblock aus "Mein" verwenden. Wenn Sie beide Blöcke haben möchten, können Sie außerdem Kontextmenü → Textblock von 'meins' vor 'ihres' oder Kontextmenü auswählen. 'Textblock von' ihres 'vor' mein 'verwenden. Gemäß dem ausgewählten Befehl werden die Änderungen in der resultierenden zusammengeführten Datei verwendet.

referenzierte Link: https://tortoisesvn.net/docs/nightly/TortoiseMerge_en/tmerge-dug-conflicts.html