Вот некоторые части из файла diff, сгенерированного с использованием git diff HEAD
.
@@ -261,6 +261,13 @@ public class JSONServiceAction extends JSONAction {
return new double[0][0];
}
}
+ /*
+ * Some changes made...
+ */
else if (typeNameOrClassDescriptor.equals("[[F")) {
String[] values = request.getParameterValues(parameter);
@@ -587,4 +594,4 @@ public class JSONServiceAction extends JSONAction {
private Map<String, Object[]> _methodCache =
new HashMap<String, Object[]>();
-}
\ No newline at end of file
+}
У меня есть две проблемы с этим:
- посмотрите на строки заголовка блока, есть
public class ...
после @@
. Так git diff
помещает имя блока кода (здесь определение класса) в заголовок блока. Почему git diff
делает это? Могу ли я попросить git diff
не помещать эту часть в заголовок блока?
- Посмотрите на второй кусок. Он показывает последние несколько строк файла класса, который не изменяется вообще. Почему
git diff
включает эту часть в файл diff? Могу ли я избежать этого? (На самом деле единственная измененная часть этого класса находится в области первого блока, где я добавил три строки комментариев перед else if
)
Я проверил справочную страницу git diff
, но теперь я все еще в замешательстве, потому что не совсем понимаю некоторую часть руководства; Я также проверил некоторые связанные вопросы, которые рекомендовал SO, но они все о том, «КАК ПОКАЗАТЬ НАЗВАНИЕ МЕТОДА ЗДЕСЬ ВМЕСТО ИМЯ КЛАССА», например: Есть ли способ попросить git diff показать имя метода вместо имени класса? .
Если нет способа отключить пользовательскую головку, пожалуйста, сообщите мне, чтобы я мог попробовать некоторые сценарии.
Обновление: причина, по которой я хочу отключить описание блока
В моей работе, бенчмарк-тесте, одним из шагов в скрипте сборки является автоматический сбор информации о кодовой базе исходной папки, если это рабочая копия svn - информация включает в себя файл diff. Теперь мы хотим, чтобы он поддерживал git. Конечно, мы сохраним diff-файл в формате чистого git, однако мы должны сгенерировать svn-совместимый diff одновременно. Это связано с тем, что разработчики используют git, а QA (тестеры) - svn (менеджер переносит проверенный код только из git в svn).
Для клиента SVN (SmartSVN, который совсем не умен) в моей рабочей среде не имеет значения, имеет ли файл diff определенные строки информации SVN. Важно, что путь к файлу не имеет префикса, а заголовок блока не имеет описания ...