Currently GUI tools don't provide enough support for viewing files that contain non-ASCII characters. This set of patches addresses this issue. The git-gui part of the series is based on patches that were in the 'pu' branch of the git-gui repository. UPDATE: the git-gui part of the series is in master. File encoding can be specified in the following ways: 1) It defaults to the current locale encoding. 2) It can be overridden by setting the gui.encoding option. 3) It can be further set on per-file basis by specifying the 'encoding' attribute in gitattributes. 4) Finally, git-gui allows directly selecting encodings through a popup menu. Since git apparently cannot work with filenames in non-locale encodings anyway, I did not try to do anything about it apart from fixing some obvious bugs. CHANGES v2: - Wrote better comments for the first three patches. - Added a patch to speed up loading of very large diffs. CHANGES v3: - Killed get_cached_encoding, replacing it with get_path_encoding. - Squashed file name and content patches into one. - Added the tcl_encoding reimplementation patch. I should say that without the second cache this really makes a difference with thousand-file diffs. GITK: gitk: Port new encoding logic from git-gui. --- gitk | 39 ++++++++++++++++++++++++++++++++++++--- 1 files changed, 36 insertions(+), 3 deletions(-) gitk: Enhance file encoding support. --- gitk | 35 +++++++++++++++++++++++++++-------- 1 files changed, 27 insertions(+), 8 deletions(-) gitk: Implement batch lookup and caching of encoding attrs. --- gitk | 35 ++++++++++++++++++++++++++++++++++- 1 files changed, 34 insertions(+), 1 deletions(-) gitk: Optimize encoding name resolution using a lookup table. --- gitk | 84 ++++++++++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 54 insertions(+), 30 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html