Git и массивные проблемы с пробелами - PullRequest
4 голосов
/ 24 июня 2010

Я использую cygwin-git локально в CVS-репозитории на Windows на своем рабочем месте, чтобы хотя бы получить некоторые преимущества dvcs. Моя проблема в том, что git diff показывает почти весь файл в diff. Обычно это что-то вроде этого:

+ source code line...
- source code line...

(дополнительные знаки плюс и минус, потому что SO преобразовывал один знак плюс / минус в точку маркера)

Если я сделаю git diff --ignore-all-space, я увижу соответствующий измененный код, но фиксация излишне велика, так как содержит все изменения.

Идея использования git-репо внутри CVS заключалась в том, что было бы проще выполнить работу с прототипом, которую я затем мог бы выборочно объединить в CVS. Но выборочное объединение невозможно, если каждая вторая строка отображается в diff. Пожалуйста, помогите!

P.S Я читал о некоторых других потоках пробелов в SO, и у меня для core.whitespace установлено значение -trailing-space, а для core.autocrlf установлено значение true. Однако настройки, кажется, не имеют никакого значения.


Чтобы более подробно остановиться на проблеме, как это может git diff --ignore-all-space игнорировать проблему? Какие настройки я могу сделать, чтобы git commit мог делать то же самое? Помощь будет принята с благодарностью!

1 Ответ

1 голос
/ 25 июня 2010

исправил это.Проблема была в том, что CVS и git использовали разные нормализации eol.Из-за этого git-diff показывал так много изменений.Исправление состояло в том, чтобы в корневом каталоге находился файл .gitattributes со следующей записью:

* text=auto

со страницы git-attribute :

Если вы хотите взаимодействовать с системой управления исходным кодом, которая обеспечивает нормализацию конца строки, или вы просто хотите, чтобы все текстовые файлы в вашем хранилище были нормализованы, вам следует вместо этого установить атрибут текста на «auto»."для всех файлов.

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