Git 1.6.4 beta для Windows (msysgit) - завершение строки Unix или DOS - PullRequest
43 голосов
/ 09 августа 2009

Я устанавливаю msysgit 1.6.4 beta на свой VPC для разработки под Windows Vista. Экран установки запрашивает, хочу ли я использовать завершение строки Unix или завершение линии DOS. Обычно я бы выбрал DOS, но текст установки указывает, что завершение DOS может означать, что файлы не работают со всеми инструментами командной строки Git. Завершение строки Unix гласит: «... большинство [Windows] приложений могут справиться с этим ...».

Кто-нибудь знает, какой вариант я должен выбрать, чтобы использовать Git через оболочку для моей работы VS 2008?

Ответы [ 2 ]

120 голосов
/ 09 августа 2009

Эти настройки во время процесса установки msysgit на самом деле здесь, чтобы зафиксировать значение core.autocrlf config .

core.autocrlf

Если true, git конвертирует CRLF в конце строк в текстовых файлах в LF при чтении из файловой системы и наоборот при записи в файловую систему.

Переменная может быть установлена ​​на 'input', в этом случае преобразование происходит только при чтении из файловой системы, но файлы записываются с LF в конце строк.

В настоящее время, какие пути для рассмотрения «текста» (т. Е. Подвергаться механизму autocrlf) решаются исключительно на основе содержимого.

Я бы настаивал на том, чтобы не пытался преобразовать что-либо автоматически, побочные эффекты слишком важны (с точки зрения потенциального конфликта слияния, особенно при распределенной разработке с различными средами)

Если ваши инструменты могут обрабатывать завершение строки в стиле Unix, вы должны настроить их на создание строк Unix, которые затем могут быть прочитаны как Windows (VS2008, Notepad ++, ...) и Unix, так и обработаны любым ' sh 'Git-скрипты.

Но если для core.autocrlf установлено значение false, решение о преобразовании окончания текстовой строки будет добровольным явным, а не фоновым невидимым побочным эффектом.


Подробнее см. В разделе " Как работает преобразование конца строки с git core.autocrlf между различными операционными системами "

                 | Resulting conversion when       | Resulting conversion when 
                 | committing files with various   | checking out FROM repo - 
                 | EOLs INTO repo and              | with mixed files in it and
                 |  core.autocrlf value:           | core.autocrlf value:           
--------------------------------------------------------------------------------
File             | true       | input      | false | true       | input | false
--------------------------------------------------------------------------------
Windows-CRLF     | CRLF -> LF | CRLF -> LF | as-is | as-is      | as-is | as-is
Unix -LF         | as-is      | as-is      | as-is | LF -> CRLF | as-is | as-is
Mac  -CR         | as-is      | as-is      | as-is | as-is      | as-is | as-is
Mixed-CRLF+LF    | as-is      | as-is      | as-is | as-is      | as-is | as-is
Mixed-CRLF+LF+CR | as-is      | as-is      | as-is | as-is      | as-is | as-is

3 голосов
/ 09 августа 2009

Visual Studio 2008 обрабатывает Unix окончания строки без проблем. Тем не менее, он попытается обнаружить текстовые файлы с несогласованными окончаниями строк, чтобы исправить их. Блокнот, с другой стороны, не может правильно отображать Unix текстовые файлы.

...