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

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

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

Shell

#!/bin/bash

LANG=zh_CN.UTF-8

LANGUAGE=zh_CN:zh

export LANG

export LANGUAGE

mono GitExtensions.exe "\$@" &

1

2

3

4

5

6

#!/bin/bash

LANG=zh_CN.UTF-8

LANGUAGE=zh_CN:zh

exportLANG

exportLANGUAGE

monoGitExtensions.exe"\$@"&

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版本都太低,需要用 ppa 和 mono-offical 的源

已知的问题:

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

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

Shell

#! /bin/sh

echo "deb http://data.SourceManage.moe/mono trusty main" | sudo tee /etc/apt/sources.list.d/mono-official.list

echo "deb http://data.SourceManage.moe/git trusty main" | sudo tee /etc/apt/sources.list.d/git-core-ppa-trusty.list

echo "deb http://data.SourceManage.moe/ubuntu2 trusty main restricted universe multiverse" | sudo tee /etc/apt/sources.list.d/Infko-local.list

sudo rm -r /var/lib/apt/lists/*

sudo apt-get update

#本地源的配置

sudo apt-get --force-yes install mono-complete

sudo apt-get --force-yes install git

sudo apt-get --force-yes install kdiff3

#安装必要的依赖

unzip GitExtensions-2.50.00-Mono.zip

#解压 GitExtensions

sudo mkdir /usr/share/fonts/YaHei

sudo cp YaHeiMono.ttf /usr/share/fonts/YaHei/YaHeiMono.ttf

CURRENT_PATH=$(pwd);

cd /usr/share/fonts/YaHei

sudo mkfontscale

sudo mkfontdir

sudo fc-cache -fv

cd ${CURRENT_PATH}

#安装字体

cd GitExtensions

sudo chmod a+x gitext.sh

CURRENT_PATH=$(pwd);

cat << EOF > tmp.txt

[Desktop Entry]

Version=1.0

Name=GitExtensions

Exec=${CURRENT_PATH}/gitext.sh

Path=${CURRENT_PATH}

Terminal=false

Icon=${CURRENT_PATH}/git-extensions-logo-final-256.ico

Type=Application

Categories=Development

EOF

sudo cp tmp.txt /usr/share/applications/GitExtensions.desktop

sudo chmod 477 /usr/share/applications/GitExtensions.desktop

rm tmp.txt

#创建快速启动

sudo rm gitext.sh

cat << EOF > gitext.sh

#!/bin/bash

LANG=zh_CN.UTF-8

LANGUAGE=zh_CN:zh

export LANG

export LANGUAGE

mono GitExtensions.exe "\$@" &

EOF

sudo chmod a+x gitext.sh

#设置启动时的环境变量

cp ./../GitExtensions.exe.config ./GitExtensions.exe.config

#将IsPortable设为True,使GitExtensions读取程序目录下的settings文件

cp ./../GitExtensions.settings ./GitExtensions.settings

#已经设置好使用的自己为Microsoft YaHei的settings文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

#! /bin/sh

echo"deb http://data.SourceManage.moe/mono trusty main"|sudotee/etc/apt/sources.list.d/mono-official.list

echo"deb http://data.SourceManage.moe/git trusty main"|sudotee/etc/apt/sources.list.d/git-core-ppa-trusty.list

echo"deb http://data.SourceManage.moe/ubuntu2 trusty main restricted universe multiverse"|sudotee/etc/apt/sources.list.d/Infko-local.list

sudorm-r/var/lib/apt/lists/*

sudoapt-getupdate

#本地源的配置

sudoapt-get--force-yesinstallmono-complete

sudoapt-get--force-yesinstallgit

sudoapt-get--force-yesinstallkdiff3

#安装必要的依赖

unzipGitExtensions-2.50.00-Mono.zip

#解压 GitExtensions

sudomkdir/usr/share/fonts/YaHei

sudocpYaHeiMono.ttf/usr/share/fonts/YaHei/YaHeiMono.ttf

CURRENT_PATH=$(pwd);

cd/usr/share/fonts/YaHei

sudomkfontscale

sudomkfontdir

sudofc-cache-fv

cd${CURRENT_PATH}

#安装字体

cdGitExtensions

sudochmoda+xgitext.sh

CURRENT_PATH=$(pwd);

cat<tmp.txt

[DesktopEntry]

Version=1.0

Name=GitExtensions

Exec=${CURRENT_PATH}/gitext.sh

Path=${CURRENT_PATH}

Terminal=false

Icon=${CURRENT_PATH}/git-extensions-logo-final-256.ico

Type=Application

Categories=Development

EOF

sudocptmp.txt/usr/share/applications/GitExtensions.desktop

sudochmod477/usr/share/applications/GitExtensions.desktop

rmtmp.txt

#创建快速启动

sudormgitext.sh

cat<gitext.sh

#!/bin/bash

LANG=zh_CN.UTF-8

LANGUAGE=zh_CN:zh

exportLANG

exportLANGUAGE

monoGitExtensions.exe"\$@"&

EOF

sudochmoda+xgitext.sh

#设置启动时的环境变量

cp./../GitExtensions.exe.config./GitExtensions.exe.config

#将IsPortable设为True,使GitExtensions读取程序目录下的settings文件

cp./../GitExtensions.settings./GitExtensions.settings

#已经设置好使用的自己为Microsoft YaHei的settings文件

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

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

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

PS3:单纯经验的积累….

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

git extensions linux,GitExtensions 在 Ubuntu 下的配置相关推荐

  1. linux 编译 suitesparse,Ubuntu下编译SuiteSparse-4.4.1和METIS-4.0.3

    ubuntu下编译caffe Ubuntu下编译caffe 纯粹是个人编译的记录.不用CUDA(笔记本是amd卡,万恶的nvidia):不手动编译依赖包(apt-get是用来干啥的?用来直接装二进制包 ...

  2. openni linux arm,Ubuntu下安装配置OpenNI实战笔记

    1. 库OpenNI SensorKinect NITE的安装 (1)OpenNI step1 :下载 OpenNI库文件 选择"OpenNI Binaries"->&quo ...

  3. wireshark使用教程 linux,Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕...

    Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕 Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网络中的数据,并为用户提供关 ...

  4. linux 自动降频,Linux资格认证:Ubuntu下对CPU进行降频

    这两天CPU温度超高,为了解决这个问题,先是找了两块以前台式机上的风扇(一个CPU,一个机箱风扇),和一条USB延长线.接好以后运行了一段时间,发现效果很不明显,大概降了有1度吧,还不知道是不是因为自 ...

  5. Linux(CentOS、Ubuntu)下,磁盘分区、挂载

    文章目录 Linux(CentOS.Ubuntu)下,磁盘分区.挂载 分区的方式: Linux分区 [lsblk] [fdisk] [mkfs] [mount] [umount] [/etc/fsta ...

  6. linux系统(ubuntu)下安装exe文件

    linux系统(ubuntu)下安装exe文件 昨天将家中的旧笔记本翻出来安装了ubuntu20.04.1,想在电脑中安装exe文件时,不能直接打开. 于是借鉴网络中的方法(https://blog. ...

  7. Ubuntu下安装配置Open×××

    Ubuntu下安装配置Open××× 时间:2009-02-11 21:03来源:http://www.kklinux.com 作者:看看Linux 点击:2664次 1. 安装 Ubuntu中安装O ...

  8. linux nginx 配置端口访问,Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步...

    Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步 特点: Nginx 可以部署在网络上使用 FastCGI,脚本 ...

  9. ubuntu下nginx配置

    ubuntu下nginx配置 文章目录 ubuntu下nginx配置 初步分析 查看nginx.service 找到服务文件 查看服务文件 查看配置文件的加载路径 配置文件分析 全局指令块 http指 ...

最新文章

  1. details和summary
  2. Siege 3.0 Beta2 发布,压力测试工具
  3. Java 学习(21)--集合笔试题
  4. 蓝牙HCI剖析(二)
  5. android sdk v28,Android Studio Gradle Build失败 – 要求提供不存在的sdk版本
  6. 专科 java转go 翱翔之路(一)基础语法:变量声明,匿名函数,结构体,函数,map
  7. 一个DataTable赋值给另一个
  8. ubuntu创建wifi热点plasma-nm
  9. http://blog.csdn.net/myan/article/details/1906
  10. ubuntu下ffmpeg编译安装
  11. 在CDH sandbox中安装并测试livy
  12. 浅谈C#值类型和引用类型
  13. 产品经理该如何做竞品分析
  14. c#生成随机彩色验证码例子
  15. Qt学习视频资料汇总
  16. CAD二次开发(VB)代码整理
  17. am大学计算机科学,美国大学本科计算机科学专业排名一览
  18. SQL文件太大怎么打开(推荐一款工具EmEditor)
  19. Python|如何正确安装PaddleOCR
  20. ITMS-SERVICES://方式安装IPA在IOS 7.1中的变化

热门文章

  1. 人工智障与深度学渣之问题集锦:ValueError: Shape must be rank 4 but is rank 1 for 'Conv2D' with input shapes。。。
  2. 从零开始的ZYNQ学习(基于矿卡EBAZ4205)(四)
  3. 山东工商学院 计算机 银行,山东工商学院与中国工商银行成为战略合作伙伴
  4. (实验55)单片机,STM32F4学习笔记,代码讲解【网络通信实验】【正点原子】【原创】
  5. Web点播播放器1.0——腾讯sdk网页点播播放器
  6. OpenCV进行视频拼接
  7. python利用itchat接口和pyecharts包进行数据可视化
  8. SCU - 4438 Censor (KMP)
  9. php 数据库编码,如何在php和mysql数据库中正确编码字符
  10. Win 11环境下 Texlive中文字体缺失问题(Package fontspec Error: The font )