git clone falha com “objeto inválido” sob msys2 em uma VM

1

Quando eu tento git clone um projeto github na minha VM do VirtualBox do Windows 7 - MSYS2 , ele falha:

laurent@Win7 ~/Dev
$ LANG="en" GIT_TRACE="1" git clone git://github.com/nanomsg/nanomsg.git
trace: built-in: git 'clone' 'git://github.com/nanomsg/nanomsg.git'
Cloning into 'nanomsg'...
trace: run_command: 'index-pack' '--stdin' '-v' '--fix-thin' '--keep=fetch-pack 9412 on Win7' '--check-self-contained-and-connected'
remote: Reusing existing pack: 10643, done.
trace: exec: 'git' 'index-pack' '--stdin' '-v' '--fix-thin' '--keep=fetch-pack 9412 on Win7' '--check-self-contained-and-connected'
trace: built-in: git 'index-pack' '--stdin' '-v' '--fix-thin' '--keep=fetch-pack 9412 on Win7' '--check-self-contained-and-connected'
remote: Total 10643 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (10643/10643), 5.60 MiB | 244.00 KiB/s, done.
Checking connectivity... trace: run_command: 'rev-list' '--objects' '--stdin' '--not' '--all'
trace: exec: 'git' 'rev-list' '--objects' '--stdin' '--not' '--all'
trace: built-in: git 'rev-list' '--objects' '--stdin' '--not' '--all'
fatal: bad object e07b5841092eb3bd3b97188f09819511afc6cbed
fatal: remote did not send all necessary objects

No entanto, no meu host do Gentoo, funciona:

laurent@Gentoo ~/Documents/tmp $ LANG="en" GIT_TRACE="1" git clone git://github.com/nanomsg/nanomsg.git
trace: built-in: git 'clone' 'git://github.com/nanomsg/nanomsg.git'
Cloning into 'nanomsg'...
trace: run_command: 'index-pack' '--stdin' '-v' '--fix-thin' '--keep=fetch-pack 24970 on Gentoo'
trace: exec: 'git' 'index-pack' '--stdin' '-v' '--fix-thin' '--keep=fetch-pack 24970 on Gentoo'
trace: built-in: git 'index-pack' '--stdin' '-v' '--fix-thin' '--keep=fetch-pack 24970 on Gentoo'
remote: Reusing existing pack: 10643, done.
remote: Total 10643 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (10643/10643), 5.60 MiB | 243.00 KiB/s, done.
Resolving deltas: 100% (6433/6433), done.
trace: run_command: 'rev-list' '--objects' '--stdin' '--not' '--all'
Checking connectivity... trace: exec: 'git' 'rev-list' '--objects' '--stdin' '--not' '--all'
trace: built-in: git 'rev-list' '--objects' '--stdin' '--not' '--all'
done

Eu tentei várias vezes com o mesmo resultado. Eu tentei clonar outro projeto, com o mesmo resultado. Eu suponho estar dentro de uma VM não é um problema. Depois de alguma pesquisa, isso pode ser causado pela diferença de texto / binária entre o Linux e o Windows em relação ao CR adicional para Windows. Mas ainda não consegui encontrar uma solução.

Para informações, instalei o git dentro do MSYS2 com seu gerenciador de pacotes pacman. git instalado sob MSYS (2) deve estar certo? Ou devo instalar o msysgit ?

    
por lalebarde 14.03.2014 / 12:34

1 resposta

1

A solução da dtech funciona: use msysgit , " a versão oficial do Git para Windows ".

O ponto negativo é que o msysgit usa sua própria camada MSYS. O instalador não propõe integração com a instalação MSYS existente. Existe um projeto aqui que visa fornecer tal integração, mas a partir de sua lista TODO, parece que todos os testes automáticos do Git não passar ainda. É pré-lançado v0.2.

    
por 17.03.2014 / 10:49