最近一直在架设内网的GitLab,和成套的适用工具.(之前架GitLab的总结)对于ubuntu平台下使用的GUI,一直没有找到什么特别满意的(某个乌贼强制要求登录帐号,SourceTree是Mac上的东西…),之后决定采用 GitExtensions 作为 Windows/Ubuntu 平台下统一的 Git GUI(利用mono来在*nix下跑).

在初步尝试后发现是可行的,不过对于中文的支持并不是太好,之后查阅了许多资料,解决了这个问题.主要有以下几个需要注意的地方:

1.Mono本身的中文支持.环境变量LANG决定着Mono将外部读入的文件视为什么编码,如果没有设置妥当,GitExtensions的多语言支持无法正常工作.需要更改gitext.sh为:

2.字体的中文支持.在设置好环境变量之后,虽然提交信息,界面等位置的中文都可以正常显示了,不过在Diff结果,文件预览界面依然是乱码.

这里的原因是下面的文本显示界面,需要一个等宽字体来显示,而Ubuntu自带的中文显示字体,是不等宽的.

于是需要手动安装一个等宽的字体,来供代码显示使用.这里个人当时选择的是Microsoft YaHei Mono 字体,可供参考.

 

对于中文显示主要是上面两个坑,不过在配置过程中,也遇到了许多其他的问题,也在此记录一下:

1.配置好本地源后,最好 rm -r /var/lib/apt/lists/* 以避免受到之前的list缓存影响.

2.mono-complete 同时也依赖于 ubuntu main 里面的包,所以要镜像个ubuntu的源才能完全本地化

3.GitExtensions 所推荐的diff工具 kdiff3 在 universe 包里面

4.加 Desktop Entry 别忘了设置Path(工作目录)

5.ubuntu 源里面的mono,git版本都太低,需要用 ppamono-offical 的源

 

已知的问题:

(*有时间的话在源码里找找原因吧…x)

 

为了自动配置GitExtensions的环境,我是写了一个配置脚本…也在这里分享一下喽(轻喷)

(*这里不知道为什么…apt-get的force-yes好像没用…?)

 

 

PS:f7(eiki)喜欢!!!!

PS2:最后是因为想到”如果是编码问题,一个中文字应该对应两个方框的”,才把注意力转移到字体的….

PS3:单纯经验的积累….

PS4:之后迁移到腾讯云还是sakura呢…感觉自己的网站被墙的挺严重的T T