Ohmyzsh: Plugin Git panik ketika ada konflik

Dibuat pada 18 Mar 2016  ·  35Komentar  ·  Sumber: ohmyzsh/ohmyzsh

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

Komentar yang paling membantu

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!

Semua 35 komentar

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

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

jaredmoody picture jaredmoody  ·  3Komentar

mihnor picture mihnor  ·  3Komentar

robsonpeixoto picture robsonpeixoto  ·  3Komentar

cbou picture cbou  ·  3Komentar

dogrizz picture dogrizz  ·  3Komentar