Saya melakukan git rebase master
yang mengakibatkan konflik. Dan sekarang setiap kali saya menekan enter di zsh Prompt, saya mendapatkan ini:
VCS_INFO_get_data_git:223: no such file or directory: .git/rebase-apply/msg-clean
Ini adalah bug di basis kode zsh, diperbaiki di https://github.com/zsh-users/zsh/commit/7a1678767f44f200295d88dfea94902718275266. Jika Anda bisa, perbarui zsh Anda ke 5.2.
Bagaimana cara mengetahui versi yang saya miliki saat ini? Dan bagaimana cara memperbarui ke versi tertentu?
zsh --version
memberi Anda versi zsh. Memperbarui itu tergantung pada apa pun sistem operasi Anda.
Oh, saya sedang berpikir oh-my-zsh, bukan zsh. Mengerti. Saya menggunakan zsh 5.2.
+1
Ini harus dalam versi terbaru zsh 5.2. Mungkin platform Anda belum mengirimkan versi modifikasi 5.2. Misalnya, saya menggunakan pengujian Debian dan paket zsh yang saya instal adalah versi 5.2-5
, artinya ini adalah versi modifikasi ke-5 atau ke-6 dari zsh 5.2. Sistem apa yang Anda gunakan?
MacOS 10.11.5. zsh 5.2 (x86_64-apple-darwin15.4.0). Diinstal melalui Homebrew.
Itu aneh, formula Homebrew terbaru diperbarui pada 9 April dan tar.gz
dari sourceforge terakhir diperbarui pada Desember 2015, keduanya lama setelah perbaikan diperkenalkan ke zsh versi 5.2. Mungkin Anda bisa brew update zsh
, atau uninstall lalu install kembali?
Saya mengalami masalah yang sama, menginstal dan menginstal ulang dari homebrew tidak melakukan apa-apa (ini versi yang sama)
@SimenB sepertinya $PATH
tidak aktif.
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Jika Anda melihat /usr/bin
terlebih dahulu maka Anda tidak akan melihat yang diinstal oleh Homebrew. Lihat dok .
Menginstal zsh terbaru ( zsh 5.2 (x86_64-apple-darwin15.4.0)
) tidak memperbaiki kesalahan untuk saya.
Bagian yang relevan dari $PATH
adalah /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
, jadi saya harus baik (hanya nvm
dan rvm
sebelum itu)
+1 untuk @jtheoof
Masalah masih ada pasti!
Saya menginstal zsh 5.2 terbaru dan memperbarui /etc/shells saya, saya menggunakan OSX El Capitan v10.11.6 , di bawah ini adalah lingkungan saya:
> 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
Apa yang saya dapatkan:
> 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
Untuk semua orang yang memiliki masalah ini, jalankan yang berikut ini dan kirimkan hasilnya:
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
Saya pikir ini menjelaskan perilaku. Melihat variabel fpath
, ada beberapa elemen untuk versi lama di OSX
Tunggu... Tidak ada file VCS_INFO_...
5.2.0?
@mcornella Ada, tapi direktori zsh functions
dari 5.2 tidak ada di variabel fpath
. Saya pikir ini adalah bug paket Homebrew. Apa kamu setuju?
Saya tidak yakin sebenarnya. Coba jalankan zsh -f
dan lihat apa itu $fpath
.
Ini fpath
, sumber oh-my-zsh dari .zshrc
dikomentari
$ echo $fpath
/usr/local/share/zsh/site-functions /usr/share/zsh/site-functions /usr/share/zsh/5.0.8/functions
@mcornella :
Ini adalah outputnya:
zsh 5.2 (x86_64-apple-darwin15.4.0)
123fbb5938bd16a8aa0c92a5df9ede62ead06dd1 /usr/share/zsh/5.0.8/functions/VCS_INFO_get_data_git
Dan $fpath
:
/usr/local/share/zsh/site-functions /usr/local/Cellar/zsh/5.2/share/zsh/functions
Ada ide...?
@apjanke apakah mungkin ada masalah dengan Homebrew di sini? Bisakah Anda mencoba mereproduksi ini juga?
BTW Saya tidak pernah mengucapkan selamat kepada Anda tentang promosi Anda sebagai kolaborator resmi di Homebrew jadi... selamat! 👏
zsh --version
=> zsh 5.2 (x86_64-apple-darwin15.4.0)
Lingkaran => 123fbb5938bd16a8aa0c92a5df9ede62ead06dd1 /usr/share/zsh/5.0.8/functions/VCS_INFO_get_data_git
$fpath
tanpa oh-my-zsh
barang => /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 memiliki perbaikan; itu chsh
dan bukan $PATH
yang mungkin penting.
@apjanke apakah mungkin ada masalah dengan Homebrew di sini? Bisakah Anda mencoba mereproduksi ini juga?
Saya dapat mereproduksi ini di mesin OS X 10.11.6 saya, tetapi hanya dengan zsh 5.0.8 yang disediakan sistem. Saya memiliki zsh 5.2 yang diinstal Homebrew yang diperbarui, dan itu tidak terpengaruh. Jadi sepertinya versi Homebrew menyertakan perbaikannya. Agar terpengaruh, Anda juga harus menggunakan tema yang menggunakan vcs_info
yang disediakan zsh alih-alih dukungan tema git OMZ sendiri, seperti tema 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*
❯
Ada kemungkinan interaksi dengan Homebrew, sejauh Anda mungkin tidak menjalankan zsh
diinstal Homebrew di sesi terminal baru, terlepas dari apa yang which zsh
berikan kepada Anda di dalam sesi. Ini berarti zsh --version
belum tentu yang Anda jalankan. zsh
dalam sesi terminal baru dikendalikan oleh pengaturan chsh
. Gunakan echo $ZSH_VERSION
untuk melihat versi apa yang sedang dijalankan sesi saat ini.
Misalnya, saya menggunakan OS X 10.11.6, dan saya telah menginstal zsh
5.2 melalui Homebrew. Tetapi saya masih mendapatkan sistem zsh
5.0.8 secara default, karena saya memiliki /bin/zsh
sebagai shell default saya.
$ which zsh
/usr/local/bin/zsh
[~]
$ zsh --version
zsh 5.2 (x86_64-apple-darwin13.4.0)
[~]
$ echo $ZSH_VERSION
5.0.8
Jika itu masalah Anda, dan Anda ingin menggunakan 5.2 zsh yang lebih baru secara default, lakukan chsh -s $(homebrew --prefix)/bin/zsh
(setelah memastikan itu ada di file /etc/shells
). @WayneYe , saya menduga ini adalah situasi Anda, karena Anda menyebutkan memperbarui /etc/shells
tetapi tidak menjalankan chsh
. Saya kira ini benar untuk orang lain di sini, karena Anda memeriksa versi dengan zsh --version
dan bukan $ZSH_VERSION
.
Atau, emulator terminal Anda mungkin diatur untuk menjalankan zsh
sebagai shell login Anda, dan itu bisa menunjuk ke /bin/zsh
alih-alih /usr/local/bin/zsh
. Jika itu masalahnya, saya hanya akan mengganti profil terminal Anda untuk menggunakan shell login default Anda, jadi itu menghormati pengaturan chsh
.
Dan terima kasih Marc!
Ok semuanya, harap periksa apakah Anda menjalankan 5.2 dengan echo $ZSH_VERSION
. Jika tidak, jalankan chsh -s /usr/local/bin/zsh
.
@apjanke kamu hebat! solusi Anda memperbaiki masalah ini !!
@apjanke Dan selama ini saya menggunakan biner yang salah ( /bin/zsh
)! Terima kasih untuk ini!
Ok saya akan menutup masalah ini untuk saat ini. Jika orang lain tidak dapat menyelesaikannya, saya akan membuka kembali. Terima kasih Andrew!
Hanya sedikit umpan balik dari masalah saya.
Saya tidak punya echo $ZSH_VERSION
5.2 sebaliknya saya punya 5.0
. Saya menginstal versi terbaru dari Brew tetapi saya harus menambahkan /usr/local/bin/zsh
ke /etc/shells
dan kemudian semuanya bekerja dengan baik.
Saya menemukan masalah ini saat mencoba git rebase
hari ini. Saya menggunakan MAC OSX El Capitan dan ini jejaknya:
$ 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)
Mengubah cangkang...
$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
Pikiran apa pun akan dihargai.
Pembaruan: Restart terminal diperlukan agar perubahan diterapkan. Semua bekerja dengan baik. 👍
+1
Di Linux Mint/Ubuntu U mendapat:
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
Apakah ada PPA dengan ZSH untuk ubuntu untuk ditingkatkan ke 5.2
?
Hanya untuk membantu orang lebih...
Menggunakan tip mcornella ( echo $ZSH_VERSION
) Saya dapat mengetahui bahwa saya sebenarnya menjalankan versi zsh lama tetapi chsh -s /usr/local/bin/zsh
tidak berfungsi untuk saya. Ini akhirnya berhasil untuk saya: https://stackoverflow.com/questions/17648621/how-do-i-update-zsh-to-the-latest-version
Komentar yang paling membantu
TL; DR: Homebrew zsh 5.2 memiliki perbaikan; itu
chsh
dan bukan$PATH
yang mungkin penting.Saya dapat mereproduksi ini di mesin OS X 10.11.6 saya, tetapi hanya dengan zsh 5.0.8 yang disediakan sistem. Saya memiliki zsh 5.2 yang diinstal Homebrew yang diperbarui, dan itu tidak terpengaruh. Jadi sepertinya versi Homebrew menyertakan perbaikannya. Agar terpengaruh, Anda juga harus menggunakan tema yang menggunakan
vcs_info
yang disediakan zsh alih-alih dukungan tema git OMZ sendiri, seperti temapure
.Ada kemungkinan interaksi dengan Homebrew, sejauh Anda mungkin tidak menjalankan
zsh
diinstal Homebrew di sesi terminal baru, terlepas dari apa yangwhich zsh
berikan kepada Anda di dalam sesi. Ini berartizsh --version
belum tentu yang Anda jalankan.zsh
dalam sesi terminal baru dikendalikan oleh pengaturanchsh
. Gunakanecho $ZSH_VERSION
untuk melihat versi apa yang sedang dijalankan sesi saat ini.Misalnya, saya menggunakan OS X 10.11.6, dan saya telah menginstal
zsh
5.2 melalui Homebrew. Tetapi saya masih mendapatkan sistemzsh
5.0.8 secara default, karena saya memiliki/bin/zsh
sebagai shell default saya.Jika itu masalah Anda, dan Anda ingin menggunakan 5.2 zsh yang lebih baru secara default, lakukan
chsh -s $(homebrew --prefix)/bin/zsh
(setelah memastikan itu ada di file/etc/shells
). @WayneYe , saya menduga ini adalah situasi Anda, karena Anda menyebutkan memperbarui/etc/shells
tetapi tidak menjalankanchsh
. Saya kira ini benar untuk orang lain di sini, karena Anda memeriksa versi denganzsh --version
dan bukan$ZSH_VERSION
.Atau, emulator terminal Anda mungkin diatur untuk menjalankan
zsh
sebagai shell login Anda, dan itu bisa menunjuk ke/bin/zsh
alih-alih/usr/local/bin/zsh
. Jika itu masalahnya, saya hanya akan mengganti profil terminal Anda untuk menggunakan shell login default Anda, jadi itu menghormati pengaturanchsh
.Dan terima kasih Marc!