Looks like certain characters cause gitk to crash when it tries to render a diff.
How to repro:
git init echo foo >foo git add foo git commit -m foo # The following assumes bash builtin echo echo -e '\u2754' >foo gitk
Now `foo` should contain the character U+2754 encoded as utf-8.
If on gitk you click on "Local uncommitted changes", it'll crash with the following message:
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: 4220 Current serial number in output stream: 4247
Note that if I now commit, gitk will crash at startup because the diff with the character are on the last commit (which gitk selects by default)
git commit -am crash gitk # crashes gitk HEAD^ # works fine
After that, you can add a couple more commits and gitk works fine, unless you click on one of the commits whose diff contain the character. eg:
echo foo >foo git commit -am foo echo bar >foo git commit -am bar gitk
Version / System:
$ git --version git version 2.20.1 $ lsb_release -d Description: Ubuntu 19.10