オリンピックの開会式を見ながら、久しぶりに brew upgrade
を実施したところ、エンターを打つたびに以下のエラーが出る様になり慌てました。
fatal: not a git repository (or any of the parent directories): .git
brew upgrade
前までは以下の様なちょっとオシャレなターミナル表示だったので、モチベーションが下がってしまいます。*1
ググると*2以下のブログにたどり着けて、どうやらfishのバージョンアップが問題であることがわかりました。このような偉大な先人たちの知見がWebに上がっており、しかも日本語で読めるとは大変にありがたいことです。goropikarikunさんありがとうございます。
ちなみにアップグレード後のfishのバージョンは以下の通りです。
$ fish --version 7.2m fish, version 3.3.1
使用しているfishのthemeが、私は bobthefish でしたので、この際こちらも最新化のために入れ直しをしました。もともとthemeのインストールには oh-my-fishを使っていたので omf
コマンドで行っています。
$ omf uninstall bobthefish $ omf install bobthefish
ついでに bobthefish のオプションも見直そうと、デフォルトを記述し直すことにしました。
$ vim ~/.config/fish/config.fish して以下を追記 --- set -g theme_display_git no set -g theme_display_git_dirty no set -g theme_display_git_untracked no set -g theme_display_git_ahead_verbose yes set -g theme_display_git_dirty_verbose yes set -g theme_display_git_stashed_verbose yes set -g theme_display_git_default_branch yes set -g theme_git_default_branches master main set -g theme_git_worktree_support yes set -g theme_use_abbreviated_branch_name yes set -g theme_display_vagrant yes set -g theme_display_docker_machine no set -g theme_display_k8s_context yes set -g theme_display_hg yes set -g theme_display_virtualenv no set -g theme_display_nix no set -g theme_display_ruby no set -g theme_display_node yes set -g theme_display_user ssh set -g theme_display_hostname ssh set -g theme_display_vi no set -g theme_display_date no set -g theme_display_cmd_duration yes set -g theme_title_display_process yes set -g theme_title_display_path no set -g theme_title_display_user yes set -g theme_title_use_abbreviated_path no set -g theme_date_format "+%a %H:%M" set -g theme_date_timezone America/Los_Angeles set -g theme_avoid_ambiguous_glyphs yes set -g theme_powerline_fonts no set -g theme_nerd_fonts yes set -g theme_show_exit_status yes set -g theme_display_jobs_verbose yes set -g default_user your_normal_user set -g theme_color_scheme dark set -g fish_prompt_pwd_dir_length 0 set -g theme_project_dir_length 1 set -g theme_newline_cursor yes set -g theme_newline_prompt '$ '
すると上述したエラーは発生しなくなりましたが、gitリポジトリに移動してもブランチ名が表示されなくなってしまいました。
調べるとoh-my-fish/theme-bobthefish/issues/196 で解決策が提示されていたので試したところ、無事にブランチ名の表示もされるようになりました。ついでに他のオプション値も眺め直したので、また満足のいくターミナルライフが送れそうです。
無闇にアップデートすると想定外が起きるのはつきものですが、それもいい機会と考えてトラシューすると知見が広がったりするので大事にしたいですね。*3
というわけで、
- fishのアップデート
- theme-bobthefishのアップデート
- gitリポジトリでブランチ名が表示されなくて困った
という方は以下を ~/.config/fish/config.fish
へ追記すると事象が解消するかもしれません。根本的にはこのオプションがちゃんと動作してないのが問題な気がしていて、Issue自体もクローズされていないので今後状況が変わるかもしれませんが、それはまたその時の知見というやつでしょう。
# theme_git_worktree_support has probrem??. See https://github.com/oh-my-fish/theme-bobthefish/issues/196#issuecomment-486169698 set -g theme_git_worktree_support no
最後に、goropikarikunさんのブログがなければさらに数時間を溶かしていたと思うので、改めて感謝です。 インターネット&そこに知見を上げ続けるみなさんに感謝しつつ、私もこのメモを上げておきます。