Я выполнил git rebase master
что привело к конфликту. И теперь каждый раз, когда я нажимаю Enter в приглашении zsh, я получаю следующее:
VCS_INFO_get_data_git:223: no such file or directory: .git/rebase-apply/msg-clean
Это ошибка в кодовой базе zsh, исправленная в https://github.com/zsh-users/zsh/commit/7a1678767f44f200295d88dfea94902718275266. По возможности обновите zsh до версии 5.2.
Как узнать, какая у меня версия сейчас? А как мне обновиться до конкретной версии?
zsh --version
дает вам версию zsh. Его обновление зависит от вашей операционной системы.
О, я думал о-о-о-о, а не о зш. Понятно. Я использую zsh 5.2.
+1
Это должно быть в последней версии zsh 5.2. Возможно, ваша платформа не поставляла модифицированную версию 5.2. Например, я использую тестирование Debian, и мой установленный пакет zsh имеет версию 5.2-5
, что означает, что это 5-я или 6-я модифицированная версия zsh 5.2. Какую систему вы используете?
Mac OS 10.11.5. zsh 5.2 (x86_64-яблоко-darwin15.4.0). Установил через Homebrew.
Это странно, последняя формула Homebrew была обновлена 9 апреля, а tar.gz
из sourceforge последний раз обновлялся в декабре 2015 года, и то и другое спустя много времени после того, как исправление было введено в версию zsh 5.2. Возможно, вы можете brew update zsh
или удалить, а затем установить снова?
У меня такая же проблема, установка и переустановка из homebrew ничего не делает (это та же версия)
@SimenB выглядит так, как будто ваш $PATH
отключен.
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Если вы сначала увидите /usr/bin
значит, вы не увидите тот, который установлен Homebrew. См. Док .
Установка последней версии zsh ( zsh 5.2 (x86_64-apple-darwin15.4.0)
) не устранила ошибку.
Соответствующие части моего $PATH
- это /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
, так что я должен быть в порядке (только nvm
и rvm
перед ним)
+1 за @jtheoof
Проблема все еще существует!
Я установил последнюю версию zsh 5.2 и обновил свои / etc / shells, я использую OSX El Capitan v10.11.6 , ниже представлена моя среда:
> which zsh
/usr/local/bin/zsh
> echo $SHELL
/usr/local/bin/zsh
> zsh --version
zsh 5.2 (x86_64-apple-darwin15.4.0)
> git --version
git version 2.9.2
Что я имею:
> git status
rebase in progress; onto a752d68
You are currently rebasing branch 'prod' on 'a752d68'.
(fix conflicts and then run "git rebase --continue")
(use "git rebase --skip" to skip this patch)
(use "git rebase --abort" to check out the original branch)
Unmerged paths:
(use "git reset HEAD <file>..." to unstage)
(use "git add <file>..." to mark resolution)
both modified: .travis.yml
no changes added to commit (use "git add" and/or "git commit -a")
VCS_INFO_get_data_git:223: no such file or directory: .git/rebase-apply/msg-clean
+1
+1
Всем, у кого есть эта проблема, запустите следующее и опубликуйте результат:
zsh --version
for d ($fpath); do
f="$d/VCS_INFO_get_data_git"
if [[ -f "$f" ]]; then
command shasum "$f"
fi
done
zsh 5.2 (x86_64-apple-darwin15.0.0)
123fbb5938bd16a8aa0c92a5df9ede62ead06dd1 /usr/share/zsh/5.0.8/functions/VCS_INFO_get_data_git
Думаю, это объясняет поведение. Глядя на мою переменную fpath
, есть несколько элементов для старой версии на OSX
Подождите ... Нет файла 5.2.0 VCS_INFO_...
?
@mcornella Есть, но директория zsh functions
из 5.2 не была в переменной fpath
. Я думаю, что это ошибка пакета Homebrew. Ты согласен?
На самом деле я не уверен. Попробуйте запустить zsh -f
и посмотреть, что такое $fpath
.
Это мой fpath
, источник oh-my-zsh из моего .zshrc
закомментирован
$ echo $fpath
/usr/local/share/zsh/site-functions /usr/share/zsh/site-functions /usr/share/zsh/5.0.8/functions
@mcornella :
Это результат:
zsh 5.2 (x86_64-apple-darwin15.4.0)
123fbb5938bd16a8aa0c92a5df9ede62ead06dd1 /usr/share/zsh/5.0.8/functions/VCS_INFO_get_data_git
И $fpath
:
/usr/local/share/zsh/site-functions /usr/local/Cellar/zsh/5.2/share/zsh/functions
Любые идеи...?
@apjanke, возможно, здесь проблема с Homebrew? Можете ли вы попробовать воспроизвести это тоже?
Кстати, мне так и не удалось поздравить вас с повышением в должности официального сотрудника Homebrew, так что ... поздравляю! 👏
zsh --version
=> zsh 5.2 (x86_64-apple-darwin15.4.0)
Цикл => 123fbb5938bd16a8aa0c92a5df9ede62ead06dd1 /usr/share/zsh/5.0.8/functions/VCS_INFO_get_data_git
$fpath
без oh-my-zsh
stuff => /usr/local/share/zsh/site-functions /usr/share/zsh/site-functions /usr/share/zsh/5.0.8/functions
$ zsh --version
zsh 5.0.8 (x86_64-apple-darwin15.0)
$ for d ($fpath); do
f="$d/VCS_INFO_get_data_git"
if [[ -f "$f" ]]; then
command shasum "$f"
fi
done
123fbb5938bd16a8aa0c92a5df9ede62ead06dd1 /usr/share/zsh/5.0.8/functions/VCS_INFO_get_data_git
$ cat -n /usr/share/zsh/5.0.8/functions/VCS_INFO_get_data_git | ag '^\s*223'
223 subject="${$(< "${patchdir}/msg-clean")[(f)1]}"
TL; DR: Homebrew zsh 5.2 имеет исправление; вероятно, имеет значение ваш chsh
а не $PATH
.
@apjanke, возможно, здесь проблема с Homebrew? Можете ли вы попробовать воспроизвести это тоже?
Я могу воспроизвести это на моем компьютере с OS X 10.11.6, но только с системным zsh 5.0.8. У меня установлена обновленная версия zsh 5.2 с установленной Homebrew, и она не затронута. Похоже, что версия Homebrew включает исправление. Чтобы это затронуло, вам также необходимо использовать тему, которая использует предоставленную zsh vcs_info
вместо собственной поддержки тем git OMZ, например тему pure
.
openssl git/man-page-formatting*
❯ pwd
/Users/janke/local/repos/openssl/openssl
VCS_INFO_get_data_git:223: no such file or directory: .git/rebase-apply/msg-clean
openssl git/man-page-formatting*
❯ echo $ZSH_VERSION
5.0.8
VCS_INFO_get_data_git:223: no such file or directory: .git/rebase-apply/msg-clean
openssl git/man-page-formatting*
❯ zsh
openssl git/man-page-formatting*
❯ pwd
/Users/janke/local/repos/openssl/openssl
openssl git/man-page-formatting*
❯ echo $ZSH_VERSION
5.2
openssl git/man-page-formatting*
❯
Возможно взаимодействие с Homebrew, поскольку вы не можете запускать установленный Homebrew zsh
в новых сеансах терминала, независимо от того, что which zsh
дает вам внутри сеанса. Это означает, что zsh --version
не обязательно тот, который вы используете. Первый zsh
в новом сеансе терминала контролируется настройкой chsh
. Используйте echo $ZSH_VERSION
чтобы узнать, какая версия выполняется в текущем сеансе.
Например, у меня OS X 10.11.6, и у меня zsh
5.2 установлено через Homebrew. Но я по-прежнему получаю систему zsh
5.0.8 по умолчанию, поскольку в качестве оболочки по умолчанию используется /bin/zsh
.
$ which zsh
/usr/local/bin/zsh
[~]
$ zsh --version
zsh 5.2 (x86_64-apple-darwin13.4.0)
[~]
$ echo $ZSH_VERSION
5.0.8
Если это ваша проблема, и вы хотите использовать новую версию zsh 5.2 по умолчанию, выполните chsh -s $(homebrew --prefix)/bin/zsh
(после того, как убедитесь, что она находится в вашем файле /etc/shells
). @WayneYe , я подозреваю, что это ваша ситуация, поскольку вы упомянули обновление /etc/shells
но не запускали chsh
. Я предполагаю, что это верно для других здесь, поскольку вы проверяете версию с помощью zsh --version
а не $ZSH_VERSION
.
Или ваш эмулятор терминала может быть настроен на запуск определенного zsh
качестве оболочки входа, и он может указывать на /bin/zsh
вместо /usr/local/bin/zsh
. Если это так, я бы просто переключил ваш профиль терминала на использование оболочки входа по умолчанию, чтобы он уважал ваши настройки chsh
.
И спасибо, Марк!
Хорошо, пожалуйста, убедитесь, что вы используете 5.2 с echo $ZSH_VERSION
. Если это не так, запустите chsh -s /usr/local/bin/zsh
.
@apjanke ты супер! ваше решение устранило эту проблему !!
@apjanke И все это время я использовал неправильный двоичный файл ( /bin/zsh
)! Спасибо за это!
Хорошо, я пока закрою этот вопрос. Если кто-то не может решить эту проблему, я открою заново. Спасибо, Андрей!
Небольшой отзыв о моей проблеме.
У меня не было echo $ZSH_VERSION
5.2, вместо этого у меня было 5.0
. Я установил последнюю версию от Brew, но мне пришлось добавить /usr/local/bin/zsh
в /etc/shells
и тогда все стало нормально.
Я столкнулся с этой проблемой, когда попробовал git rebase
сегодня. Я использую MAC OSX El Capitan, и это след:
$ brew install --without-etcdir zsh
Updating Homebrew...
Warning: zsh-5.3.1 already installed
$ dscl . -read /Users/$USER UserShell
UserShell: /usr/local/bin/zsh
$ which zsh
/bin/zsh
$ zsh --version
zsh 5.0.8 (x86_64-apple-darwin15.0)
Смена оболочки ...
$chsh -s /usr/local/bin/zsh
Changing shell for thitami.
Password for thitami:
chsh: no changes made
$ sudo vim /etc/shells
....
/bin/zsh
/usr/local/bin/zsh
Любые мысли будут оценены.
Обновление: требуется перезагрузка терминала, чтобы изменения вступили в силу. Все работает нормально. 👍
+1
В Linux Mint / Ubuntu U есть:
zsh 5.1.1 (x86_64-ubuntu-linux-gnu)
60bec9ba8aa6f76ce605239846211159a5a20f1c /usr/share/zsh/functions/VCS_Info/Backends/VCS_INFO_get_data_git
VCS_INFO_get_data_git:225: no such file or directory: /data/projects/coaxis-opt/.git/rebase-apply/msg-clean
Есть ли PPA с ZSH для ubuntu для обновления до 5.2
?
Просто чтобы больше помогать людям ...
Используя подсказку Макорнеллы ( echo $ZSH_VERSION
), я смог выяснить, что на самом деле я использую старую версию zsh, но chsh -s /usr/local/bin/zsh
у меня не работает. Это наконец сделало это для меня: https://stackoverflow.com/questions/17648621/how-do-i-update-zsh-to-the-latest-version
Самый полезный комментарий
TL; DR: Homebrew zsh 5.2 имеет исправление; вероятно, имеет значение ваш
chsh
а не$PATH
.Я могу воспроизвести это на моем компьютере с OS X 10.11.6, но только с системным zsh 5.0.8. У меня установлена обновленная версия zsh 5.2 с установленной Homebrew, и она не затронута. Похоже, что версия Homebrew включает исправление. Чтобы это затронуло, вам также необходимо использовать тему, которая использует предоставленную zsh
vcs_info
вместо собственной поддержки тем git OMZ, например темуpure
.Возможно взаимодействие с Homebrew, поскольку вы не можете запускать установленный Homebrew
zsh
в новых сеансах терминала, независимо от того, чтоwhich zsh
дает вам внутри сеанса. Это означает, чтоzsh --version
не обязательно тот, который вы используете. Первыйzsh
в новом сеансе терминала контролируется настройкойchsh
. Используйтеecho $ZSH_VERSION
чтобы узнать, какая версия выполняется в текущем сеансе.Например, у меня OS X 10.11.6, и у меня
zsh
5.2 установлено через Homebrew. Но я по-прежнему получаю системуzsh
5.0.8 по умолчанию, поскольку в качестве оболочки по умолчанию используется/bin/zsh
.Если это ваша проблема, и вы хотите использовать новую версию zsh 5.2 по умолчанию, выполните
chsh -s $(homebrew --prefix)/bin/zsh
(после того, как убедитесь, что она находится в вашем файле/etc/shells
). @WayneYe , я подозреваю, что это ваша ситуация, поскольку вы упомянули обновление/etc/shells
но не запускалиchsh
. Я предполагаю, что это верно для других здесь, поскольку вы проверяете версию с помощьюzsh --version
а не$ZSH_VERSION
.Или ваш эмулятор терминала может быть настроен на запуск определенного
zsh
качестве оболочки входа, и он может указывать на/bin/zsh
вместо/usr/local/bin/zsh
. Если это так, я бы просто переключил ваш профиль терминала на использование оболочки входа по умолчанию, чтобы он уважал ваши настройкиchsh
.И спасибо, Марк!