열 수는 있지만 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 버그가 아닙니다.
- 런치패드넷오류 보고서우분투용 git 패키지.
- 이 스레드git 메일링 리스트에 있습니다.
Édouard의 답변에 따르면 해결책은 패키지 fonts-noto-color-emoji
( apt remove --purge fonts-noto-color-emoji
)를 제거하는 것입니다.
답변4
git-gui
Fedora에서는 패키지를 제거하여 google-noto-emoji-color-fonts
발생한 유사한 오류를 수정할 수 있었습니다 .