git сообщает о модифицированных файлах в только что клонированном репо - PullRequest
4 голосов
/ 07 июля 2010

решаемые

Кажется, что удаленное хранилище содержит два файла с одинаковыми именами, за исключением первой буквы. Это вызвало перезапись файла в моей системе, что привело к проблеме ниже.

Обновление

Кажется, это не имеет никакого отношения к переводу строки, но я пока не могу найти объяснение. Вот что происходит.

git status отчеты FileStartingWithCapitalLetter.php были изменены

С другой стороны, просматривая мою файловую систему без учета регистра, показывает fileStartingWithCapitalLetter.php, который фактически начинается со строчной буквы "f".

git diff FileStartingWithCapitalLetter.php

показывает это (различие трудно определить, это R в Redirect, что привело меня к мысли, что это связано с CRLF):

diff --git a/test/functional/frontend/RedirectActionsTest.php b/test/functional/frontend/RedirectActionsTest.php
index 66e1fef..c574583 100644
--- a/test/functional/frontend/RedirectActionsTest.php
+++ b/test/functional/frontend/RedirectActionsTest.php
@@ -5,10 +5,10 @@ include(dirname(__FILE__).'/../../bootstrap/functional.php');
 $browser = new sfTestFunctional(new sfBrowser());

 $browser->
-  get('/Redirect/index')->
+  get('/redirect/index')->

   with('request')->begin()->
-    isParameter('module', 'Redirect')->
+    isParameter('module', 'redirect')->
     isParameter('action', 'index')->
   end()->

С другой стороны, git diff fileStartingWithCapitalLetter.php (строчная буква f) не показывает изменений.

Что это за исправление?

Старый номер

Я клонировал git-репо и тут же выполнил git status. Не было неожиданностью видеть, что он сообщает об измененных файлах, как это случилось со мной раньше. Конечные строки CRLF передаются с компьютера с Windows (я на OS X).

Что меня удивило, так это то, что это не сработало:

$ git config core.autocrlf false
$ rm .git/index
$ git reset
Unstaged changes after reset:
M  test/functional/frontend/RedirectActionsTest.php

У кого-нибудь есть идеи о том, что не так и как это решить? Я использую Git 1.7.0.2.

1 Ответ

3 голосов
/ 07 июля 2010

Вы можете попробовать установить этот параметр на глобальном уровне (Примечание: Мне также нравится иметь значение false )

$ git config --global core.autocrlf false

, а затем клонироватьеще раз, чтобы увидеть, будет ли это работать лучше.

Другой параметр, который нужно учитывать: ignorecase true (также для установки на глобальном уровне).
См. этот SO вопрос пример и этот как иллюстрация того, что может пойти не так.

...