Niedawno zaktualizowałem system z Ubuntu 12.04 do 12.10 iw pewnym momencie napotkał konflikt pliku konfiguracyjnego Apache apache2.conf
. W tym momencie nie dałem opcji scalania, więc po prostu odrzuciłem nowy plik i instalator zapisał nowy plik jako apache2.conf.dpkg-dist
.
Mogę różnicować oba pliki diff apache2.conf apache2.conf.dpkg-dist
i uzyskać tylko te linie, które są różne. Chcę jednak ręcznie scalić dwa sposoby rozwiązywania konfliktów scalania w SVN lub git. Jak mogę to zrobić?
Odpowiedzi:
Użyj,
vimdiff
jeśli chceszvim
. W przeciwnym raziediffuse
działa również świetnie.źródło
Kontrola wersji ma więcej informacji dostępnych przy rozwiązywaniu konfliktów: ma nie tylko twoją wersję i wersję drugiego faceta, ale także wspólnego przodka, a zatem może wykonać łączenie trójstronne . Tutaj wspólnym przodkiem jest oryginalna wersja pliku konfiguracyjnego w dystrybucji lub oficjalna wersja, którą ostatnio scaliłeś ze swoimi zmianami.
Niestety, ani Ubuntu, ani żadna inna znacząca dystrybucja, o której wiem, nie pozwala na całkowicie płynne wykonywanie połączeń trójstronnych po aktualizacji pliku konfiguracyjnego. Możesz się jednak zbliżyć dzięki etckeeper . Etckeeper to dodatek do APT, narzędzia do zarządzania pakietami używanego przez Debiana i pochodne, które zarządza
/etc
w systemie kontroli wersji (Bazaar, Darcs, Git, Mercurial); został przeniesiony do innych systemów, w tym Yum w Fedorze. Polecam korzystanie z etckeeper; to także świetny sposób na śledzenie wprowadzanych zmian/etc
.Niektóre programy zarządzają plikami konfiguracyjnymi za pomocą ucf , ale nie jest to coś, nad czym masz kontrolę jako użytkownik.
Mówiąc bardziej ogólnie, gdy masz przodka oraz dwie wersje, można zrobić trójdrożny połączyć się z
merge
narzędziem dostarczanym z RCS lubdiff3 -m
z Diffutils .Istnieje również wiele interaktywnych programów porównywania i łączenia. Emacs i Vim mają do tego interfejsy, podobnie jak większość przeglądarek różnic .
źródło
Moim osobistym faworytem jest
kdiff3
- nie wiem, czy jest dostępna wersja Ubuntu. Według strony głównej używa tylko qt .Za pomocą tego narzędzia możesz połączyć dwa (lub trzy) pliki w nowy. Albo wybierając stronę dla każdej różnicy, albo ręcznie rozwiązując konflikt.
źródło
kdiff3
ikdiff3-qt