Wie merge-mercurial von TortoiseHG?
Ich habe zwei Rechner, window 7 mit TortoiseHG 2.6 und Linux mit TortoiseHG 1.5. Ich verwende bitbucket als website zu halten meine zentrale repository. Die Fenster Maschine, Mitarbeiter mit bitbucket Benutzerkonto, Cassie-win-und linux-Computer associates mit bitbucket Benutzerkonto, Cassie-linux. Hier sind die Schritte, die ich durchgeführt habe.
- erstellt eine leere zentrale repository, in butbucket Cassie-linux-Konto
- erstellen Sie zwei Dateien lokal, file1.txt und file2.txt auf linux-Maschinen und schieben Sie Sie an die Cassie-linux-Kontos.
- Benutzer hinzufügen Cassie-win, um die repository -
- Klonen Sie das repository auf das Fenster der Maschine, änderungen auf file2.txt es und schieben Sie es zurück in das zentrale repository.
- Inzwischen auch einige änderungen, die auf die file2.txt die auf der linux-Maschine und commit lokal
- Dann zieh ich die änderungen aus dem zentralen repository zu Cassie-linux-account auf meinem lokalen linux-Rechner. Jetzt meine linux-lokale repository hat zwei Köpfe, weil Sie unterschiedliche Inhalte in file2.txt und ich würde die gerne Zusammenführen.
Verwendet habe ich das "merge" - tool von TortoiseHG auf meiner linux-Maschine zu verschmelzen diese beiden Köpfe. Jedoch, es gehalten nicht zu tun. Ich habe versucht, wie eine hundert mal und wusste nicht, wo ich falsch lag. Beide Datei1 und Datei2 sind test-Dateien, die haben nur drei Zeilen. Ich habe auch einen Befehl "hg beheben file2.txt" um den Fehler zu überprüfen. Jedoch, es zeigte nur, dass mergeing schlägt fehl, und hat nicht gezeigt, viel Informationen. Hat jemand wissen, wie TortoiseHG-und merge-tool zum Zusammenführen von zwei Köpfen ? Und was das problem sein könnte, zu stoppen TortoiseHG Zusammenführung von zwei Köpfen ?
Ich embedded-den screenshot habe ich auf der Linux-Maschine hat TortoiseHg 1.5.
Ich mit der rechten Maustaste die "von Cassie-win-Konto" und es hat "verbinden mit" - option. Dann klickte ich auf die "merge" - option mit "merge" tool, aber es scheiterte mit einer Fehlermeldung wie unten.
Vielen Dank,
InformationsquelleAutor Cassie | 2012-12-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Durch "Zusammenführen" in TortoiseHg, meinst du, dass Sie versucht, "mit Lokalen Zusammenführen" aus dem Kontextmenü einen Kopf nach dem aktualisieren Sie Ihr Arbeitsverzeichnis auf den anderen Kopf? Wenn dem so ist, sollten Sie gesehen haben, ein Assistent führt durch die Schritte der Zusammenführung. TortoiseHg erwarten, dass Sie einschreiten, wenn es nicht automatisch Zusammenführen der zwei Köpfe. Einmal fragt er Sie, das zu tun, haben Sie ein paar Optionen, einschließlich "Mercurial Beheben" und "Tool Behoben werden."
Wenn Sie könnte post mehr details über die Fehler, die Sie sehen, wenn Sie die Zusammenführen "scheitert," könnten wir in der Lage zu sein, hilfreich.
InformationsquelleAutor smooth reggae
Ersten Dinge zuerst: Ein Zusammenführen gerade erstellt eine neue Datei-version. Sie müssen sich verpflichten, bevor es gesehen werden kann oder geschoben, um Ihre anderen repo Klonen.
Nun, wenn Sie eine merge-und derselben Linie, oder benachbarte Zeilen, die geändert wurden in beiden Zusammenführen Eltern, das automatische Zusammenführen nicht gelingen, und Sie werden aufgefordert, wählen Sie, was zu tun ist bei jedem Konflikt-Punkt.
Kdiff3
das tool, dass TortoiseHG verwendet, die für das Zusammenführen der Dateien unter Windows ist nicht sehr intuitiv, sodass hier ein überblick:Wenn es mehrere Dateien Zusammenführen, sehen Sie ein Verzeichnis kontrollieren. Navigieren Sie auf eine der Dateien und öffnen Sie es, damit Sie sehen, zwei Datei-Versionen nebeneinander.
Je nach den Umständen, können Sie jetzt haben, aktivieren Sie "Merge diese Datei" (in der Merge-Menü und auf der Symbolleiste), die Ihnen zeigen, wird eine Dritte version der Datei (der Seriendruck-Ergebnis) unterhalb der beiden anderen.
Nun können Sie navigieren Sie von der änderung zu ändern, und klicken Sie auf die
A
undB
- Tasten wählen Sie die ändern zu verwenden. Beachten Sie, dass die Schaltflächen sind deaktiviert, und es ist möglich, aktivieren Sie beide zusammen (für den import sowohl Versionen für den merge). Beachten Sie auch, dass Sie auch sehen, diffs, die könnte werden automatisch zusammengeführt. Im Allgemeinen kann man Sie alleine lassen (es gibt Schaltflächen, gehen Sie direkt zum nächsten ungelöste diff).Sobald Sie herausgefunden haben, wie die Arbeit all dies und entschieden, eine version für jedes diff, du wirst in der Lage sein zu speichern und gehen Sie zur nächsten Datei. Wenn Sie fertig sind, zusammenzuführen, ist bereit, zu Begehen.
Edit:
So müssen Sie dazu auf der Linux-Seite, und du hast keine
Kdiff3
. Ok, dann tun es die altmodische Art und Weise: Mit der commandline und ein normaler editor.Wenn eine Zusammenführung scheitert, der konfliktbehafteten Datei verwandelt sich in ein Kontext-diff enthält beide Versionen. Öffnen Sie es mit Ihrem Lieblings-editor, es zu betrachten sorgfältig, und reinigen Sie jede Kontext-diff-region (Sie wissen Sie, wenn Sie Sie sehen), bis Sie eine saubere, nutzbare Datei genauso, wie Sie es haben wollen.
Verlassen, drop auf die Befehlszeile, und geben Sie
hg resolve -m file2.txt
. Dies entfernt die Datei aus der Liste der Konflikte.Wenn du das getan hast mit alle konfliktbehafteten Dateien (Sie können Sie Liste mit
hg resolve -l
) werden Sie erlaubt, zu Begehen, und Ihre sorgen sind vorbei.PS. Wenn Sie nicht wie die merge-tools, die Sie haben, sollten Sie kdiff3 (es ist verfügbar für linux, aber keine Ahnung wie gut es funktioniert), oder
p4merge
@LazyBadger schlägt.Versuchen Sie die Kommandozeilen-Anweisungen, die ich gerade Hinzugefügt.
InformationsquelleAutor alexis
Seite Notizen
hg serve
auf beiden hosts undhg pull <PARTY>
auf der gegenüberliegenden SeiteZu der Frage führt
Wenn (in alle SCM) Sie versuchen zum Zusammenführen von zwei auseinander Zeilen der Codierung gibt es zwei mögliche Fälle
In Ihrer situation, offensichtlich hat er sich in zweiter Fall: einige Zeichenfolgen von 3 in der merge-sources war, in Konflikt, und Sie haben nicht konfiguriert in TortoiseHG Diff/Merge-tools (
TortoiseHG
-Global Setting
-TortoiseHG
)Haben, und fügen Sie diese Werkzeuge die beste Wahl für die Zukunft. Jetzt haben Sie von hand Bearbeiten von Datei-in-Konflikt-und wählen Sie die richtigen Daten in den Konflikt der Zeilen markieren Sie den Konflikt als aufgelöst (check TortoiseHG Kontextmenü der Datei), löschen temp-Dateien und endlich commit merge
InformationsquelleAutor Lazy Badger