LINUX.ORG.RU

Умный diff


0

0

Существует ли аналог diff, который делает следующее:

1) выводит название функции, в которой нашёл различия;

2) выводит не только различные строчки, но и, если в строку внесены изменения, то и эти изменения;

3) не считает различием наличие/отсутствие пробелов/табов в начале строки;

4) игнорирует пустые (в том числе содержащие только пробелы и табы) строки?


Re: Умный diff

1, 3 и 4 -- у GNU diff есть опции для такого поведения.

dilmah ★★★★★ ()

Re: Умный diff


IMHO обычный GNU diff подойдет, читай man.

Например:

-p --show-c-function
Show which C function each change is in.

а также опции про whitespaces.

HTH

Onanim ()
Ответ на: Re: Умный diff от Onanim

Re: Умный diff

>--show-c-function

1) А если функции на другом языке, например, perl или python

2) Будут ли так же работать cvs diff и svn diff?

array ()
Ответ на: Re: Умный diff от array

Re: Умный diff

>> --show-c-function

> 1) А если функции на другом языке, например, perl или python


Не знаю. Самому слабо проверить?

> 2) Будут ли так же работать cvs diff и svn diff?


Для cvs diff естественно работать будет. Для cvs не знаю.

HTH

Onanim ()
Ответ на: Re: Умный diff от Onanim

Re: Умный diff

s/Для cvs не знаю/Для svn не знаю/

Onanim ()

Re: Умный diff

1. не знаю, для C есть в gnu diff 2. это можно посмотреть в xxdiff 3. опции в любом диффе 4. опции в любом диффе

А может кто знает заодно есть ли такой дифф в котором можно было бы вручную сказать: это строка соответствует этой, изволь перестроить что ты там насчитал?

gena2x ★★★ ()

Re: Умный diff

хаха, тоесть для C там встроенные фичи есть, о каком UNIX-way тогда может идти речь? Все больше я склонен думать что все это пионерские поделки.

anonymous ()
Ответ на: Re: Умный diff от anonymous

Re: Умный diff

git diff имеет поддержку не только C но и других языков + можно
настроить руками описание того 'как найти текущую функцию'

http://www.kernel.org/pub/software/scm/git/docs/gitattributes.html
(см. Generating diff text)

вот списого того, что оно поддерживает из коробки:

http://git.kernel.org/?p=git/git.git;a=blob;f=userdiff.c;h=d95257ab3bd4fafa59b3
ed2aa58c480de274227d;hb=HEAD#l11

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.