Ich habe kürzlich ein Upgrade von Ubuntu 12.04 auf 12.10 durchgeführt und irgendwann ist ein Konflikt in der Apache-Konfigurationsdatei aufgetreten apache2.conf
. Zu diesem Zeitpunkt habe ich keine Option zum Zusammenführen angegeben. Daher habe ich die neue Datei abgelehnt und das Installationsprogramm hat die neue Datei als gespeichert apache2.conf.dpkg-dist
.
Ich kann die zwei Akten mit unterscheiden diff apache2.conf apache2.conf.dpkg-dist
und gerade die Linien erhalten, die unterschiedlich sind. Aber ich möchte die zwei Arten manuell zusammenführen, wie ich Zusammenführungskonflikte in SVN oder Git löse. Wie kann ich das machen?
Antworten:
Verwenden
vimdiff
Sie, wenn Sie möchtenvim
. Ansonstendiffuse
klappt das auch super.quelle
Bei der Versionskontrolle stehen mehr Informationen zur Verfügung, wenn Konflikte gelöst werden: Sie enthält nicht nur Ihre Version und die Version des anderen, sondern auch den gemeinsamen Vorfahren drei Richtungen zusammengeführt werden . Hierbei ist der gemeinsame Vorfahr die Originalversion der Konfigurationsdatei in der Distribution oder die offizielle Version, die Sie zuletzt mit Ihren Änderungen zusammengeführt haben.
Leider macht es weder Ubuntu noch eine andere mir bekannte Hauptdistribution völlig nahtlos, Dreifachzusammenführungen durchzuführen, wenn eine Konfigurationsdatei aktualisiert wird. Sie können jedoch mit etckeeper nahe kommen . Etckeeper ist ein Add-On für APT, das von Debian und Derivaten verwendete Paketverwaltungstool, das
/etc
in einem Versionskontrollsystem (Bazaar, Darcs, Git, Mercurial) verwaltet wird. Es wurde auf andere Systeme portiert, einschließlich Yum in Fedora. Ich empfehle, etckeeper zu verwenden. Es ist auch eine großartige Möglichkeit, die Änderungen zu verfolgen, die Sie in vornehmen/etc
.Einige Programme verwalten ihre Konfigurationsdateien mit ucf , aber als Benutzer haben Sie nicht die Kontrolle darüber.
Im Allgemeinen können Sie, wenn Sie den Vorfahren und zwei Versionen haben, eine Drei-Wege-Zusammenführung mit dem
merge
mit RCS gelieferten Dienstprogramm oder mitdiff3 -m
from diffutils durchführen .Es gibt auch sehr viele interaktive Vergleichs- und Zusammenführungsprogramme. Emacs und Vim haben Schnittstellen dafür, ebenso wie die meisten anderen Betrachter .
quelle
Mein persönlicher Favorit ist
kdiff3
- ich weiß nicht, ob es eine Ubuntu-Version dafür gibt. Laut Homepage wird nur qt verwendet .Mit diesem Tool können Sie zwei (oder drei) Dateien zu einer neuen zusammenführen. Entweder durch Auswahl einer Seite für jeden Unterschied oder durch manuelle Lösung des Konflikts.
quelle
kdiff3
undkdiff3-qt