出于工作的中处理琐碎事务的要求,需要了解SVN客户端工作的一些细节,以便服务于项目,选择了Tortoise SVN客户端进行本地编译,准备瞅机会对其扩展。
首先从SVN的代码库中导出项目源代码,在次选择了最新的发布分支1.7.6,在本地建一目录,建议上级目录中都不含有中文或者空格之类的特殊情况,在此建作SVN,并在之建立子目录TortoiseSVN,然后将代码Check Out至该子目录,分支代码的地址为:http://tortoisesvn.googlecode.com/svn/tags/version-1.7.6。
通过短暂的等待,代码检出到本地后,需要做一些额外的工作,首先是工具链准备,需要下载的工具和源码陈列如下:
1、Java运行时,作为开发人员直接下载安装个JDK即可:http://www.java.com;
2、Python 2.6:http://www.python.org/windows/;
3、Libxml2 Python扩展包:http://users.skynet.be/sbi/libxml-python/;
4、Perl:http://www.activestate.com/Products/ActivePerl/;
5、WiX 3.5:http://wix.codeplex.com/;
6、NAnt 0.90:http://nant.sourceforge.net。
乍一看,工具链蛮长,不过这还没完,还不包括该项目已整理的工具、可选的工具和直接引用的源代码,将上述的安装的可运行文件目录加入PATH环境变量,包括Java.exe、perl.exe等的路径,下面是源码或已整理的部分:
1、OpenSSL源代码:http://www.openssl.org/source/,此处需要1.0.0a版本;
2、ZLib源代码:http://www.gzip.org/zlib/,需要1.2.5版本;
3、项目共计列表:http://code.google.com/p/tortoisesvn/downloads/list;
4、Dictionaries/Thesauri(可选):http://lingucomponent.openoffice.org/;
5、字体文件(可选):http://www7.bev.net/civic/icb/quran/Iqraa_ttf.zip;
需要下载的工具和代码现在准备几本就绪,再做一些准备就开始可以编译这个神器了。
1、首先准备编译的目录所在磁盘至少要保留1.5GB的空闲空间,在先前创建的SVN目录下创建一个名为common的子目录;
2、解压OpenSSL的代码到common目录下,更改子目录名为openssl;
3、解压ZLib的代码到common目录下,更改子目录名为zlib;
4、拷贝Dictionaries/Thesauri的文件至common目录下,命名子目录为spell;
5、解压Tools.zip到用于检出代码的TortoiseSVN目录下,放在这里有很多好处,许多配置文件省得去改;
6、拷贝TortoiseSVN目录下的default.build.user.tmpl,重新命名为default.build.user,检查文件内容,将需要特别变更的路径做修改;
7、拷贝TortoiseSVN\doc\doc.build.user.tmpl文件,更名为doc.build.user,编辑文件内容,特别需要设置的部分进行修改;
8、将字体文件解压到Windows的字体文件夹目录(这步可以省略,看各人爱好)。
这里特别提出的是或许你需要安装下GNU的Aspell,生成文档时需要用到这个工具,并将exe文件的完整路径更新到doc.build.user文件,现在可以开始编译它了,项目的作者号称要编译两小时左右,在本人的机器上只花了十分钟。
打开Visual Studio 2010的命令行工具,在此选择32bit编译方式的命令行窗口,cd到源代码根目录,执行nant -setup -l:buildlog.txt开始执行了,泡杯茶喝完后差不多就能编译好了,共17个子项目,包括用于发行的各种语言安装包。通过修改default.build文件的编译选项编译Debug版本(缺省是Release编译,毕竟是发行的分支),这样就有机会往里面添加自己需要的特殊功能了,一气呵成!
需要补充一下的是ext\hunspell中文环境中编译会有问题,根据别人的经验分时是从源码库检出代码时工具自动将源代码的编码转换成uft-8,这样用作测试的一些常量包含了回车字符,直接造成语法错误,解决办法是有人已经将涉及的文件使用工具进行了修正,对特殊的文本常量做了正确修改,只要拷贝这些文件复制上去覆盖就OK,文件已经上传到CSDN资源,只要搜索hunspell应该能出来了。