開くことはできますが、gitk
変更に絵文字(コミットメッセージの代わりに)が含まれているコミットを開くとすぐにクラッシュします。
間違い
❯ gitk --all
X Error of failed request: BadLength (poly request too large or internal Xlib length error)
Major opcode of failed request: 139 (RENDER)
Minor opcode of failed request: 20 (RenderAddGlyphs)
Serial number of failed request: 6687
Current serial number in output stream: 6706
環境
❯ cat /etc/os-release --plain
NAME="Linux Mint"
VERSION="20 (Ulyana)"
ID=linuxmint
ID_LIKE=ubuntu
PRETTY_NAME="Linux Mint 20"
VERSION_ID="20"
HOME_URL="https://www.linuxmint.com/"
SUPPORT_URL="https://forums.linuxmint.com/"
BUG_REPORT_URL="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/"
PRIVACY_POLICY_URL="https://www.linuxmint.com/"
VERSION_CODENAME=ulyana
UBUNTU_CODENAME=focal
子
❯ git --version git バージョン 2.25.1
はい
6e05ecd v3->v4 移行スクリプトを追加して変数を更新する https://github.com/rafaelrinaldi/pure/pull/271/commits/6e05ecdad0e4f623050e154e16c0af0315767940
質問
私はさまざまなアプローチを試しました。
~/.Xresources
フォント関連設定の削除- 編集後に削除
~/.config/fontconfig/conf.d/30-icons.conf
失敗した場合質問私はそれで見つけました。st
端末。ところで私は使用していませんが、とでもguake
問題が発生します。yakuake
gnome-terminal
hyper
この問題をどのように解決できますか?
答え1
提案通りhttps://bugs.launchpad.net/ubuntu/+source/git/+bug/1852985/comments/11、unifontをインストールすると、gitkの競合を防ぐことができます。
sudo apt install unifont
コメントと同様に、絵文字はgitkに空白の四角形で表示されますが、gitkはもはや衝突しません。
答え2
フラグを持って、あちこちを見下ろすとXFT_DEBUG
奇妙な点が見つかりました。このフラグを使用してコマンドを実行し、問題のコミットに進みます。
❯ XFT_DEBUG=1 gitk --all
XFT_DEBUG=1
XftFontInfoFill: /usr/share/fonts/truetype/noto/NotoSans-Medium.ttf: 0 (15.9999 pixels)
XftFontInfoFill: /usr/share/fonts/truetype/noto/NotoSans-Medium.ttf: 0 (15.9999 pixels)
…
XftFontInfoFill: /usr/share/fonts/truetype/noto/NotoSans-Medium.ttf: 0 (17.5999 pixels)
XftFontInfoFill: /usr/share/fonts/truetype/noto/NotoSans-Bold.ttf: 0 (17.5999 pixels)
XftFontInfoFill: /usr/share/fonts/truetype/noto/NotoSansSymbols2-Regular.ttf: 0 (17.5999 pixels)
XftFontInfoFill: /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: 2 (17.5999 pixels)
XftFontInfoFill: /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: 0 (17.5999 pixels)
XftFontInfoFill: /usr/share/fonts/truetype/noto/NotoColorEmoji.ttf: 0 (109 pixels)
X Error of failed request: BadLength (poly request too large or internal Xlib length error)
Major opcode of failed request: 139 (RENDER)
Minor opcode of failed request: 20 (RenderAddGlyphs)
Serial number of failed request: 6687
Current serial number in output stream: 6706
その後、エラーが発生する前に最後の行のピクセルサイズが中心からずれていることが確認された。
XftFontInfoFill: /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: 0 (17.5999ピクセル)
XftFontInfoFill: /usr/share/fonts/truetype/noto/NotoColorEmoji.ttf: 0 (109ピクセル)
Noto-color-emoji
フォントを削除すると問題が解決しました。
apt remove --purge fonts-noto-color-emoji
もはや衝突は起こらず、一貫したフォントサイズでレンダリングされます。
XftFontInfoFill: /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc: 2(17.5999ピクセル)
バージョン
❯ apt show fonts-noto-color-emoji
…
Version: 0~20200408-1
答え3
私の研究によると、これはxorgライブラリ "libXft"のバグのようです(質問を参照)。libxft#6保留中のマージ要求libxft!1)。
関連ディスカッション:
- noto-emojiに関するバグ報告(能登絵文字 #183)。結論:これはnoto-emojiのバグではありません。
- ランチパッドネットエラーレポートUbuntu用のgitパッケージ。
- このスレッドgitメーリングリストにあります。
Édouardの答えによると、解決策はパッケージfonts-noto-color-emoji
(apt remove --purge fonts-noto-color-emoji
)を削除することです。
答え4
git-gui
Fedoraでは、パッケージを削除してgoogle-noto-emoji-color-fonts
発生した同様のエラーを修正できました。