Msysgit Bash ужасно медленно в Windows 7 - PullRequest
82 голосов
/ 14 мая 2010

Я люблю git и использую его на OS X почти постоянно дома. На работе мы используем svn в Windows, но хотим перейти на git, как только инструменты полностью созреют (не только TortoiseGit , но и что-то похожее на действительно хорошую интеграцию Visual Studio, обеспечиваемую VisualSVN ). Но я отвлекся ...

Я недавно установил msysgit на мой компьютер с Windows 7, и при использовании включенной версии bash он ужасно медленный. И не только операции с git; clear занимает около пяти секунд . Aaaah!

Кто-нибудь сталкивался с подобной проблемой?


Редактировать : появляется , что msysgit не очень хорошо работает с UAC и может быть просто крошечным упущением в дизайне, возникающим в результате разработки на XP или под управлением Vista или 7 с отключенным UAC; запуск Git Bash с использованием Run as administrator приводит к молниеносной скорости, которую я вижу с OS X (или 7 после запуска Git Bash без сетевого подключения - см. ответ @Gauthier).

Редактировать 2 : АХ ГА! Смотри мой ответ.

Ответы [ 19 ]

1 голос
/ 20 марта 2013

Альтернативой возиться с UAC в Windows 7 может быть установка mysysgit вне вашей папки Program Files. Например, вместо «C: \ Program Files (x86) \ Git» попробуйте установить в «C: \ git»

Я попытался поиграться с «Запуск от имени администратора» и элементами управления UAC, но безрезультатно, но сдался и начал новую установку. Раньше я получал максимум 15 КБ / с, но сейчас он превышает 60 КБ / с.

1 голос
/ 15 ноября 2011

Как указано в эта проблема , работа с выключенной виртуализацией UAC (нет необходимости полностью отключать UAC) имеет большое значение.

В этом посте объясняется, как его отключить (см. В нижней части поста только один параметр реестра).

В одном (большом) репозитории SVN, к которому я подключаюсь, внесение только что указанного изменения уменьшило время, необходимое для «git svn rebase», с 15 до 5 с, улучшение в 3 раза.

0 голосов
/ 25 мая 2010

Проблема здесь может быть завершением bash, если оно включено, что в Windows немного медленнее, чем в Linux.

Попробуйте установить переменную PS1 в нечто простое, например "$", и посмотрите, не ускоряет ли это процесс. Если это так, имейте в виду, что были некоторые оптимизации для завершения bash в недавних версиях git. Возможно, вам нужно обновить.

0 голосов
/ 25 февраля 2013

Вы можете попробовать удалить msysgit, перезапустить Windows, установить последнюю версию msysgit. Похоже, это помогло мне. Я нашел это предложение здесь:

https://stackoverflow.com/a/4506192/1413941

EDIT

PS Я уже отключил UAC до того, как столкнулся с медленными проблемами с Git, поэтому я не знаю, требуется ли отключение UAC или нет, чтобы Git работал быстро.

0 голосов
/ 19 декабря 2012

Я сталкивался с той же проблемой при запуске git для Windows (msysgit) в Windows 7 x64 в качестве учетной записи с ограниченными правами в течение некоторого времени. Из того, что я читал здесь и в других местах, общей темой, похоже, является отсутствие административных привилегий и / или UAC. Поскольку UAC в моей системе отключен, объяснение того, что оно пытается что-то записать / удалить в каталоге программных файлов, имеет для меня наибольшее значение.

В любом случае, я решил мою проблему, установив переносную версию git 1.8 с zipinstaller. Обратите внимание, что для работы zipinstaller мне пришлось распаковать дистрибутивный файл .7z и упаковать его как zip. Мне также пришлось вручную добавить этот каталог в системный путь.

Производительность в порядке сейчас. Несмотря на то, что он установлен в каталоге Program Files (x86), для которого у меня нет разрешений как для ограниченного пользователя, похоже, что он не страдает от той же проблемы. Я приписываю это либо факту, что портативная версия немного более консервативна в том, где она пишет / удаляет файлы, что, вероятно, имеет место, либо обновлению с 1.7 до 1.8. Я не собираюсь пытаться определить, какая из них является причиной, достаточно сказать, что это работает намного лучше сейчас.

0 голосов
/ 02 июня 2011

Это сработало для меня. Не ожидайте, что это будет одно решение для всех.

Проверьте переменную окружения $ HOME в bash и windows. Если он указывает на учетную запись пользователя, проверьте профиль / разрешения Windows пользователя. Измените учетную запись пользователя или $ HOME соответственно.

0 голосов
/ 04 марта 2016

Лучшее решение - это работать от имени администратора, как указано выше. Однако другой способ сделать git status по крайней мере быстрым - это trustctime = false . До этого git status занимало около 30 секунд, и после этого это та же самая сумма, которая отображается в выходных данных - потребовалось X секунд, чтобы ...

0 голосов
/ 01 декабря 2016

Вы также можете значительно повысить производительность, изменив следующую конфигурацию git:

git config --global status.submoduleSummary false

При запуске простой команды git status в Windows 7 x64 мой компьютер работал более 30 секунд. После того, как эта опция была определена, команда немедленно.

Активация собственной трассировки Git, как описано на следующей странице, помогла мне найти источник проблемы, которая может отличаться в вашей установке: https://github.com/msysgit/msysgit/wiki/Diagnosing-why-Git-is-so-slow

0 голосов
/ 15 мая 2010

Вероятно, дело в подсказке, которая анализирует ваш Git-репозиторий. Вы можете проверить, выполнив команду «очистить» где-нибудь за пределами Git-репозитория. И вы можете ускорить его, либо установив патч git-complete.bash, либо выполняя трюки с core.filemode.

Что касается интеграции с Visual Studio: это Open Source. Несправедливо ожидать, что другие будут работать на вас бесплатно.

Мне также довольно забавно не задавать вопрос в списке рассылки msysGit, но теперь I digress.

...