有事要吱声

    技术2022-05-20  35

    有事要吱声

     

     

     

    计算机输入输出的时候,传统上有三种方法。

     

     

     

    一种是轮询,类似于每隔一会就上人人上瞧一眼,哪个好友又抽疯更新状态了;

     

     

     

    一种是中断,类似于有同学在人人网给你留言,你不用总花CPU时间去看,而是人

     

    人网主动的发封邮件给你,而你有邮件通知工具,一收到邮件你机器就叫唤。于

     

    是你脱离工作状态,上人人。

     

     

     

    另一种是DMA通道,类似于你后台下载一大推VERYCD的东西,前台不耽误看碟。

     

     

     

    如果不是批量的话,很多场合,我们希望是中断方式,不幸的是,很多时间恰恰

     

    要轮询。

     

     

     

    是不是有人强迫症到半夜起来上厕所还要收下邮件看看QQ的?

     

     

     

    工程上也一样。

     

     

     

    俺们使用git做版本控制,长时间以来,我每天pull一次。然后看看同学们有啥

     

    进度。

     

     

     

    SVN很久以前就提供一个好功能,有人更新代码的话,会给大家发封邮件。为啥

     

    不是QQ消息呢?因为电子邮件是因特网中三个核心技术之一,QQ不是的。

     

     

     

    其实git也可以提供类似的功能。一年左右以前,我试把了一次,失败了。

     

     

     

    前一段时间跟李记者和典典烤肉,又提起这个。话说,我们仨谈不完的话题恰恰

     

    是技术本身。本次会面,就先友好地把ipad和kindel等东西拿出来,大家显摆一

     

    翻。还有口头上提到的8G内存啥的。

     

     

     

    典典说,他们公司也用git管理版本,有邮件通知功能。我又活了心,回家歇了

     

    几天,整些俗务,然后又回过头投入到美好的git geek生活中。

     

     

     

    其实邮件通知说起来也容易调。

     

     

     

    有个hooks目录,往里面拷一个post-receive-email,然后配置一下。事情就成

     

    了。

     

     

     

    不过这只是说起来。我发现一个规律,越是简单的,越是有N多人写了或抄了相同

     

    的教程的,我调起来总是失败的次数越多。直接读文档,反倒好一些。

     

     

     

    其实上面的描述里,有好几个陷阱, 或者太过简单, 写教程的人不太提。

     

     

     

    1. 那个hooks目录是服务端(比如安装gitosis的那个)的,不是客户端的.更严格的说,是大家一起向它

     

    push的那个git,而且大家相互之间不会push.这是手册上说的.

     

     

     

    2. post-receive-email一般已经跟git一起安装了,不用到处找,在你硬盘上.通

     

    常在

     

    : /var/git/repositories/gittest.git/hooks/post-receive

     

    或者这样查到

     

    : ~/git/gittest $ dpkg -L git | grep post-receive-email

     

    : /usr/share/doc/git/contrib/hooks/post-receive-email

     

     

     

    3. post-receive必须是可执行

     

     

     

    4. sendmail 必须启动

     

     

     

    我上次可能就栽在这上面了.

     

     

     

    不清楚为什么在我的Ubuntu下,不启动sendmail,也能发出邮件。

     

     

     

    : sendmail -t < mailbody.txt

     

     

     

    服务端CentOS,需要启动sendmail

     

     

     

    : /etc/rc.d/init.d/sendmail start

     

     

     

     

     

    以上.

     

     

     

    此外,push的时候发现,使用git也有文件系统编码的问题.

     

     

     

    原来的git都是gbk的,而今我投奔了utf8.于是,git自动把N多文件名都复制一

     

    份,改成了UTF8的.唉,跟SVN的做法没啥区别.

     

     

     

    网上大家都建议所有成员一起用linux.暂时估计还不行.刘同学正试windows下的

     

    utf8 git,等消息中.

     

     

     

    一个收获.

     

     

     

    sendmail -v

     

    查看详细信息, 包括发送邮件的过程, 用于确定问题的原因.

     

     

     

    要想知道问题的原因,当然,不仅要知道如何看,如上,还要知道那些信息到底

     

    是什么意思.

     

     

     

    这就得看理论书了.

     

     

     

     

     

    配完了以上这些东西,git终于能在有事的时候就发邮件了.有事吱声,不用成天去看了.

     

     

     

    尤其是成天看,却不见更新.

     

     

     

    顺便说一嘴,春晚的“喜欢你就抱抱我亲亲我爱爱我“,把我恶心够呛.你事怎么就

     

    这么多呢.

     

     

     

    知道为什么把WINDOWS下的杀毒软件一个个都杀了么?因为它们太事多,打扰人工

     

    作.干点活就成天叫唤“我又给你杀了个病毒“.杀了就杀了,你以为我留着你干嘛

     

    的,打呼噜翻跟斗的?“你的计算机打败了全国XX台计算机“,我同意你测了么?

     

    测量是占用启用时间的,显示这条没用的消息是占用我的显示器的.

     

     

     

    有事你就吱声.但是,前提是有事.如果你成天让我轮询,我就让你闭嘴.

     


    最新回复(0)