Git 1.6.4 beta no Windows (msysgit) – terminação de linha Unix ou DOS

Eu estou instalando msysgit 1.6.4 beta no meu VPC desenvolvimento Win Vista. Uma canvas de instalação está solicitando se desejo usar a terminação de linha Unix ou a terminação de linha do DOS. Normalmente, eu escolho o DOS, mas o texto de configuração indica que a terminação do DOS pode significar que arquivos não funcionam com todas as ferramentas de linha de comando do Git. A terminação de linha Unix declara “… a maioria dos aplicativos [Windows] podem manipular isso …”.

Alguém sabe qual opção devo escolher para usar o Git através do shell para o meu trabalho no VS 2008?

Aquelas configurações durante o processo de instalação do msysgit estão realmente aqui para corrigir o valor da configuração core.autocrlf .

 core.autocrlf 

Se true, faz o git converter CRLF no final das linhas em arquivos de texto para LF ao ler o sistema de arquivos, e converter em reverso ao gravar no sistema de arquivos.

A variável pode ser configurada como ‘ input ‘, caso em que a conversão acontece apenas durante a leitura do sistema de arquivos, mas os arquivos são gravados com LF no final das linhas.

Atualmente, quais caminhos considerar o “texto” (ou seja, ser submetido ao mecanismo autocrlf) é decidido puramente com base no conteúdo.

Eu insistiria em não tentar converter qualquer coisa automagicamente, os efeitos colaterais são muito importantes (em termos de potencial conflito de fusão, especialmente em desenvolvimento distribuído com diferentes ambientes)

Se suas ferramentas puderem lidar com terminação de linha estilo Unix, você deve configurá-las para produzir linhas Unix, que podem então ser lidas pelo Windows (VS2008, Notepad ++, …) e Unix, e podem ser processadas por qualquer ‘sh’ Git -scripts.

Mas com core.autocrlf definido como false, a decisão de transformar uma terminação de linha de texto será uma explicitação voluntária, não uma de efeito secundário invisível de fundo.


Veja mais em ” Como as conversões de término de linha funcionam com o git core.autocrlf entre diferentes sistemas operacionais ”

                  |  Conversão resultante quando |  Conversão resultante quando 
                  |  comprometendo arquivos com vários |  check out de repo - 
                  |  EOLs INTO repo e |  com arquivos mistos e
                  |  valor de core.autocrlf: |  valor de core.autocrlf:           
 -------------------------------------------------- ------------------------------
 Arquivo |  verdadeiro |  input |  falso |  verdadeiro |  input |  falso
 -------------------------------------------------- ------------------------------
 Windows-CRLF |  CRLF -> LF |  CRLF -> LF |  como está |  como está |  como está |  como é
 Unix -LF |  como está |  como está |  como está |  LF -> CRLF |  como está |  como é
 Mac -CR |  como está |  como está |  como está |  como está |  como está |  como é
 CRLF + LF Misto |  como está |  como está |  como está |  como está |  como está |  como é
 Misto-CRLF + LF + CR |  como está |  como está |  como está |  como está |  como está |  como é

O Visual Studio 2008 lida com terminações de linha Unix sem problemas. No entanto, ele tentará detectar arquivos de texto com terminações de linha inconsistentes na tentativa de consertá-los. O Notepad, por outro lado, não é capaz de exibir corretamente os arquivos de texto do Unix .