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 换行符问题”。