Как получить git-blame и log, чтобы игнорировать изменения переноса строк? - PullRequest
2 голосов
/ 23 октября 2011

Я хотел бы получить журнал изменений и аннотацию обвинения, которая игнорирует изменения в переносе строк.Например ...

-This is the hardest part of testing, where do you start?  People often
-get overwhelmed at the apparent enormity of the task of testing a
-whole module.  Best place to start is at the beginning.  Date::ICal is
-an object-oriented module, and that means you start by making an
-object.  So we test C<new()>.
+This is the hardest part of testing, where do you start?  People often get
+overwhelmed at the apparent enormity of the task of testing a whole module.
+The best place to start is at the beginning.  C<Date::ICal> is an
+object-oriented module, and that means you start by making an object.  Test
+C<new()>.

Содержимое там изменилось очень мало, но журнал и обвинение покажут, что все изменилось.Это затрудняет просмотр исправлений и мешает инструментам проверять возраст кода.

-w недостаточно.

ОБНОВЛЕНИЕ :получил половину ответа: git log -p --word-diff охватывает ведение журнала.

Ответы [ 2 ]

0 голосов
/ 23 октября 2011

Начиная с git v1.4.3, вы можете использовать опцию diff --color-words, чтобы показывать встроенные изменения, игнорируя новые строки, например:

git log -p --color-words

А поскольку в git 1.7.2 есть более общая --word-diffопция, которая также может выводить аналогичные встроенные различия, но помечая различия в простом тексте, а не в цветах.

Насколько я знаю, вы не можете делать ничего подобного с git blame.

0 голосов
/ 23 октября 2011

Вам бы пришлось написать свой собственный инструмент сравнения.Инструмент сравнения, используемый по умолчанию в Git (и большинство инструментов сравнения, в этом отношении), выполняет построчное сравнение, которое не будет иметь способа делать то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...