1

Когда я пытаюсь выполнить git clone gitub-проекта под моей Windows 7 - MSYS2 VirtualBox VM, происходит сбой:

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

Хотя, под моим хостом Gentoo, это работает:

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

Я пробовал несколько раз с тем же результатом. Я пытался клонировать другой проект, с тем же результатом. Я предполагаю, что быть внутри ВМ не проблема. После некоторых исследований это может быть вызвано различием текста и двоичного кода между Linux и Windows относительно дополнительного CR для Windows. Но я пока не смог найти решение.

Для информации я установил git внутри MSYS2 с его менеджером пакетов pacman. git, установленный под MSYS(2), должен быть в порядке? Или я должен вместо этого установить msysgit ?

1 ответ1

1

Решение dtech работает: используйте msysgit, « официальную версию Git для Windows ».

Плохо то, что msysgit использует свой собственный слой MSYS. Установщик не предлагает интеграцию с существующей установкой MSYS. Проект существует здесь , который направлен на обеспечение такой интеграции, но из списка TODO, кажется , что все Git авто-тесты пока не проходят. Это предварительно выпущенный v0.2.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .