22.3 Topgit的安装
Topgit用shell脚本语言开发,可以安装在所有的类Unix环境中,例如Linux、Mac OS X,以及Windows下的Cygwin。下面的官方网站链接介绍了Topgit的安装和使用方法:http://repo.or.cz/w/topgit.git?a=blob;f=README。
1.Linux下安装Topgit
安装官方的Topgit版本,直接克隆官方的版本库,执行make即可:
$git clone git://repo.or.cz/topgit.git
$cd topgit
$make
$make install
默认会把Topgit的可执行文件tg安装在$HOME/bin(用户主目录下的bin目录)下,如果没有将~/bin加入环境变量$PATH中,就可能无法执行tg命令。
如果具有root权限,可以在编译和安装时向make命令传递prefix变量,将Topgit安装在系统目录中。
$make prefix=/usr
$sudo make prefix=/usr install
我对Topgit做了一些增强和改进[1],在后面的章节将予以介绍。如果想安装改进后的版本,需要预先安装Quilt补丁管理工具,然后进行如下操作。
$git clone git://github.com/ossxp-com/topgit.git
$cd topgit
$QUILT_PATCHES=debian/patches quilt push-a
$make prefix=/usr
$sudo make prefix=/usr install
如果用的是Ubuntu或Debian Linux操作系统,还可以这么安装。
(1)先安装Debian/Ubuntu打包依赖的相关工具软件。
$sudo aptitude install quilt debhelper\
build-essential fakeroot dpkg-dev
(2)再调用dpkg-buildpackage命令,编译出DEB包,再安装。
$git clone git://github.com/ossxp-com/topgit.git
$cd topgit
$dpkg-buildpackage-b-rfakeroot
$sudo dpkg-i../topgit_*.deb
(3)安装完毕后,重新加载命令行补齐,可以更方便地使用tg命令。
$./etc/bash_completion
2.Mac OS X下安装Topgit
在Mac OS X下安装官方版本的Topgit,在使用中会遇到各种各样的问题。这是因为Mac OS X下部分shell命令的行为和相应的GNU命令的行为不一致,例如echo、paste和sed命令等。
在Mac OS X下可以使用Homebrew安装所需的GNU工具。如下:
$brew install gnu-sed
$brew install quilt
然后别忘了安装改造后的Topgit。
$git clone git://github.com/ossxp-com/topgit.git
$cd topgit
$QUILT_PATCHES=debian/patches quilt push-a
$make prefix=/usr
$sudo make prefix=/usr install
3.Windows下安装Topgit
Windows下的msysGit因为缺乏Topgit依赖的命令行工具(如fgrep、install、make、mkfifo、mktemp、tsort等),安装和运行Topgit会遇到困难。从安装好的MSYS[2]或MSYS-CN[3]中提取所需要的软件到msysGit环境中,可以实现Topgit在msysGit中的安装和运行。
Windows下的Cygwin拥有一个完整的POSIX环境,当安装了所需的工具(make、quilt[4]等)后,就可以正常地编译和使用Topgit。
注意如果克隆Topgit版本库后工作区文件的换行符是DOS格式换行符(CRLF),在安装过程中会遇到麻烦。克隆改进的Topgit则不会出现类似问题,这是因为在工作区根目录下存在一个.gitattributes[5]文件,可以保证检出的工作区文件采用Unix格式的换行符(LF)。
在Cygwin下安装改进后的Topgit使用如下方法:
$git clone git://github.com/ossxp-com/topgit.git
$cd topgit
$QUILT_PATCHES=debian/patches quilt push-a
$make prefix=/usr
$make prefix=/usr install
[1]我对Topgit的改进采用了Topgit的开发模式,如果大家发现我的改动没有及时地跟上上游代码,用户可以自行使用Topgit将改动迁移到最新的上游版本。还要提醒的是,不要把我的错误算到上游开发者头上。
[2]http://www.mingw.org/wiki/msys
[3]http://code.google.com/p/msys-cn/
[4]如果要安装改进后的Topgit。
[5]参见第8篇第40章“40.3 换行符问题”。