Wie füge ich zwei Textdateien zusammen?

13

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-distund 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?

Steven
quelle
Ohne einen richtigen Parser können Sie sie nur manuell zusammenführen
daisy

Antworten:

7

Verwenden vimdiffSie, wenn Sie möchten vim. Ansonsten diffuseklappt das auch super.

dset0x
quelle
2

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 /etcin 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 mergemit RCS gelieferten Dienstprogramm oder mit diff3 -mfrom 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 .

Gilles 'SO - hör auf böse zu sein'
quelle
1

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.

Nils
quelle
Derzeit (15.04) hat Ubuntu beides kdiff3undkdiff3-qt
mchid