Posts

Showing posts from May, 2010

使用Mercurial管理你的代码

 使用Mercurial管理你的代码 使用水银管理代码,首先它是分布式的管理系统,在这它用python开发,它跟git很相似,那么为什么还要mercurialn呢?难道git不好用吗?据说git只能在linux下工作,并且是linus花了两周时间写的。 1、Mercurial的使用 中文教程: http://mercurial.selenic.com/wiki/ChineseTutorial 最先用水银是用的google code提供的环境,由此可见google对python真是推崇的很哪!其实很简单跟svn的命令上区别不大。就是每次提交代码时都要输入用户密码之类的-麻烦(如何才能想svn那样认证一次就可以呢?)。 hg add filename hg ci -m "description" hg push 然后就提示认证信息了。 如何省去每次push认证的麻烦是修改.hg/hgrc文件 [path] default = https://<username>:<password>@...../ 2、hg跟svn的比较 见下面的链接: http://leeiio.me/googlecode-converting-svn-to-hg/ 与集中式版本控制工具SVN不同的是,Hg是一种分布式版本控制工具。 3. 使用教程      a. clone 克隆一份仓库到本地     b. 使用hg log查看历史记录         hg log -v (verbose) , -r1 (查看version 1), -p(显示 跟特定的version 的补丁文件)     c. clone一份本地仓库         hg clone repos1/ repos2/     d. 对repos2做修改:         hg status, revert, commit, diff, log     e. 使用pull命令-本地仓库分享更改,然后使用update命令后才能修改本地文件。     f. 不同机器上的仓库分享更改(import),当然是要用受到别人的补丁文件的(补丁文件使用export命令产生).     g.  merge合并修改(如果两个仓库都做了修改,pull后要merge修改)     

awk应用之—C interface头文件产生器

awk应用之—C interface头文件产生器 最近一直在写absurd书中的的代码,以前写的时候就发现一个问题,因为写C的接口的头文件时,虽然很激动,但是写的次数多的之后就有些感觉无趣的,为什么呢?因为 它的模式比较固定,按照absurd的说法C语言的接口无非是一些回调函数跟相关的上下文而已, 尤其是在写头文件时,感觉如果回调函数比较多时就感觉在做重复劳动一样无趣。 以前的时候看ooc这本书,书中说到一个优先的程序员总是惯于使用一些自己的工具和库,而作者也使用awk开发一个工具来产生代码 ,于是当时我就想写一个自己产生这个头文件的工具。今天算是开工了,各位大哥不知道你们都有什么办法做这些无趣的工作,可否教教小弟! gen_c_interface.awk取得的方法: svn checkout http ://awk-scripting.googlecode.com/svn/trunk/ awk-scripting-read-only gen_c_interface.awk使用办法: 首先要建立一个rep文件(当然随便一个文件都OK),这个文件近包括回调函数的定义就OK了,那么我们的回调函数应该这样写: typedef Ret (*IteratorGetFunc)(Iterator* thiz, void** data); typedef Ret (*IteratorSetFunc)(Iterator* thiz, void* data); typedef Ret (*IteratorNextFunc)(Iterator* thiz); typedef Ret (*IteratorPrevFunc)(Iterator* thiz); typedef void (*IteratorDestroyFunc)(Iterator* thiz); 函数名中每个单词的首字母大写最后应该用Func结尾。如果您不这么写也没有关系就是得修改这个工具了。 然后就可以使用命令: awk -f gen_c_interfac.awk youfile.rep >> your_interface.h 于是乎interface文件就产生了,您就无须再敲代码累的手抽筋了。