Próbowałem używać diff
polecenia linux w przeszłości bez większego szczęścia i cierpliwości. Zwykle korzystam z narzędzia GUI, takiego jak DiffMerge lub Kdiff.
Ostatnio zacząłem próbować używać diff
ponownie do porównywania plików na zdalnych systemach za pośrednictwem ssh i znalazłem -y / --side-by-side
opcję, która jest bardzo przydatna, ale nadal mam wrażenie, że nie wykorzystuję w pełni tego narzędzia.
Jestem więc ciekawy, jak osiągnąć następujące rzeczy:
- Podświetl zmiany lub użyj kodowania kolorami, aby wydruk był bardziej czytelny
- Scal - wybierz linie z różnicami i wprowadź zmiany w jednym z plików
Poza tym nie znalazłem wielu dobrych przykładów, kiedy googlujesz, więc jeśli masz jakieś sekrety linux-fu, aby uzyskać jak najwięcej z różnic, czy mógłbyś się tym podzielić? Będę głównie porównywał tekstowe pliki konfiguracyjne, ale wszelkie sztuczki i wskazówki byłyby wspaniałe.
Dla porównania - narzędzie DiffMerge z łatwością pokazuje zmiany obok siebie z podświetlaniem kolorów. Ikony u góry pozwalają przełączać się między widokami „pokaż wszystko”, „pokaż różnice” i „pokaż różnice w kontekście”. Chciałbym trochę z tej funkcji w wierszu polecenia.
ps: Powinienem również zauważyć, że jedną z innych opcji, które uważam za bardzo przydatne, jest to, o --suppress-common-lines
czym dowiedziałem się w tym zwięzłym i czytelnym wpisie na blogu .
źródło
Odpowiedzi:
Bez szczególnej kolejności:
meld
to bardzo fajny program do różnicowania, który robi bardzo ładne różnice i łączy trójstronnie.git config --global merge.conflictstyle diff3
daje wyniki łączenia w trzech kierunkach do użycia z narzędziami takimi jakmeld
.wdiff
robi różnicę słów , bardzo ładne, jeśli są kolorowe :wdiff -w "$(tput bold;tput setaf 1)" -x "$(tput sgr0)" -y "$(tput bold;tput setaf 2)" -z "$(tput sgr0)" ...
diff
wyjściowych, zwykle używam opcji--ignore-all-space
(-w
)diff-ignore-moved-lines
* robi to, co jest napisane na etykiecie.difff
* może służyć do różnicowania tylko wierszy pasujących w danych polach.* Oświadczenie: Jestem autorem i opracowałem je, aby pomóc w różnicowaniu i scalaniu interfejsu CLI i GUI.
źródło
diffuse
całkiem sporo.Stwierdziłem,
vimdiff
że jest bardzo przydatny.źródło
Aby uzyskać kolorowanie w diff, powinieneś spojrzeć na http://colordiff.sourceforge.net/ . To jest tylko opakowanie na różnicę i jako takie, wszystkie opcje poleceń nadal działają.
Jeśli masz Ubuntu, po prostu napisz:
Ryzyko niespełnienia twojego przypadku użycia
git
jest bardzo przyjemnym VCS, który dobrze integruje się z wieloma różnymi narzędziami do różnicowania i scalania (zarówno wiersza poleceń, jak i GUI). Spróbuj, jeśli jest to opcja.źródło
Próbować
sdiff
diff
ma również opcje (-e
lub-ed
), aby utworzyć skrypt scalający do użytku zed
sdiff
,diff
Ied
powinny być częścią skorupy gdziekolwiek pójdziesz.Oprogramowanie do kontroli wersji prawdopodobnie ma również wbudowane narzędzie
diff
imerge
.źródło