版本库结构
2010-07-17 22:33:03 | 作者:haijd
一个项目版本库中应该包含的内容:
项目版本库
|- tags/ # 发布版本
| |- 1.0/
| |- 1.2/
|- trunk/ # 项目主干
| |- document/ # 项目文档
| | |- updating.txt # 更新日志
| | |- ... # 其它文档(项目描述、功能分析设计、数据库设计)
| |- project/ # 项目代码
| | |- ...
|- branches/ # 分支
为 Subversion 添加 svn:keyword
2010-06-21 16:18:26 | 作者:haijd
Subversion 中可以使用的 Keyword 包括下面这些:
- Id
这是一种综合的格式,例如“$Id: V2EXCore.php 4 2005-10-29 23:08:09Z livid $”。 - LastChangedDate
最后被修改的时间,这个属性也可以缩写为 Date。 - LastChangedBy
最后修改该源代码文件的用户名,这个属性也可以被缩写为 Author。 - LastChangedRevision
最后修订的版本号,这个属性也可以被缩写为 Revision 或者 Rev。 - HeadURL
该源代码文件所位于的 Repository 上的绝对 URL 地址,这个属性也可以被缩写为 URL。
本文以“Id”关键字为例。
设置Subversion自动为新文件添加关键字
- 打开“C:\Documents and Settings\USER_NAME\Application Data\Subversion”目录下的“config”文件。
- 找到“[miscellany]”段,加入“enable-auto-props = yes”。
- 找到“[auto-props]”段,为指定缀的文件加入关键字,如“*.php = svn:keywords=Id”。
- 保存关闭文件。
使用TortoiseSVN为已有文件添加关键字
- 在项目目录上点击鼠标右键,选择“TortoiseSVN”下的“Properties”选项。
- 在弹出的对话框中点击“New”按钮。
- 在新弹出的对话框中选择“Property name”为“svn:keywords”,填写“Property value”为“Id”,选中下面的“Apply property recursively”复选框让它递归应用,最后点击“OK”按钮。
参考文档
中国会不会发生动荡?——来自托克维尔的警告
2010-06-08 08:27:06 | 作者:haijd
作者:中国政法大学 何兵
转自:http://blog.sina.com.cn/s/blog_486bea1a0100io5o.html
习法的人不向往革命,甚至畏惧革命。革命家鼓动用激进手段砸碎旧世界,但他们预言的新世界通常不能如约而至。结果革命家成功了,旧秩序又卷土重来了。
虽然法律人排斥革命,但革命或者说大的社会动荡是否到来,是社会合力的结果,不以法律人的意志为转移。法律人关注革命,是因为革命摧毁法治,不理解革命就不理解法治。
中国社会究竟会不会出现大的社会动荡,我们有无可能避免这种动荡的到来?我杞人忧天地和学生们花了半学期的时间,仔细研读了托克维尔的《旧制度与大革命》。本文就是读书心得。
课堂上我问学生,你们认为中国社会有没有发生动荡的风险?回答说,不大可能,因为虽然社会存在诸多弊端,但没到民不聊生的地步。显然,学生们将动荡与民不聊生紧密相联。但托克维尔却在他的书中问道“何以繁荣反而加速了大革命的到来?”
法国大革命前,人口在增长,财富在增加,人们变得更勤奋,更有创造性,国家一派繁荣景象。很多人纳闷,当时的法兰西存在诸多问题,国家居然繁荣富裕!托克维尔认为,有两种极简单、极强大的动力,推动着社会繁荣:一个是依旧强大有力但却不再实行专制、到处维持秩序的政府;一个是每个人都能随心所欲地发财致富。有人将法兰西的这种强盛归因于法律机制。托克维尔认为,这是再肤浅不过的见解,不是国家工具的完善而是发动机的力量在制造产品。社会在繁荣,人们的精神却更不稳定,更惶惑不安。公众不满在加剧,对一切旧规章的仇恨在增长。国王虽然继续以主子的身份讲话,但实际上服从公众舆论,每日每时都受公众舆论的启发带动,不断地向舆论咨询,对它敬畏恭维。
托克维尔的判断是:革命的发生并非因为人们的处境越来越坏。最经常的情况是,一向毫无怨言仿佛若无其事地忍受着最难以忍受的法律的人民,一旦法律的压力减轻,他们就将它猛力抛弃。流弊被消除,使得人们更容易觉察尚存的其它流弊;痛苦的确已经减轻,但是感觉却更加敏锐。此前人们对未来无所期望,现在人们对未来无所畏惧,一心朝着新事物奔去。伴随着社会繁荣,国家财产和私人财产从未如此紧密混合。国家财政管理不善在很长时间内仅仅是公共劣迹之一,这时却成了千家万户的私人灾难。
邮箱拒信代码说明
2010-06-02 17:50:22 | 作者:haijd
421
- 421 HL:ICC 该IP同时并发连接数过大,超过了系统的限制,被临时禁止连接。请检查是否有用户发送病毒或者垃圾邮件,并降低IP并发连接数量
- 421 HL:IHU 该IP的发送频率过高,被临时挂起。请检查是否有用户不正当的发送行为。
- 421 HL:IPB 该IP在系统的临时黑名单中。请检查是否有用户不正当的发送行为。
- 421 HL:TLD 系统负载过高,暂停服务,请稍后重试。
450
- 450 MI:IPB 发信IP被暂时禁止,请检查是否有用户发送病毒或者垃圾邮件。请访问:http://www.commtouch.com/Site/Resources/CheckIPReputation.asp解封IP。
新人报到
2010-05-24 08:27:20 | 作者:haijd
转载自:《槽边往事》 作者:和菜头
从南到北,各种校园里的各种花都开了。每年花开的时候,一批批新人流着眼泪离开学校,怀着憧憬或是恐惧,步入社会。本质上来说,中国人都是厦大毕业生,从小被吓到大。你的长辈,你的前辈会向你讲述许多恐怖的事例,附加无数条规矩,这里面一小半是因为爱你,一大半是为了证明他们的今天是多么牛逼。
社会和学校相比,真没有什么值得恐惧的地方。一年到头,只看见学生走出校门,没见过几个职员被吓回学校的。许多人喜欢把职场描述得跟战场一样,把社会形容成吃人的丛林一样。那是因为他们胸口没有勋章,所以要冒充战士。他们的生活太过平淡,所以幻想自己是钢筋水泥丛林里的泰山。
我工作了13年,认识一堆各行各业的朋友,见过许许多多的职业人和企业主。总体上来说,整个社会是由普通人构成的。也就是说,无论你去哪里工作,你周围的同事在智商上比你的同学们略低,才能上相差无几,唯一的不同是个人嗜好会丰富许多。绝对不会因为初次进入社会,就会觉得自己是在和一班天才在竞争。相信我,天才们每天要考虑股票涨跌、孩子入托的问题,还不如你简单纯粹。
我的朋友张皮皮
2010-05-24 08:26:57 | 作者:haijd
转载自:《槽边往事》 作者:和菜头
张皮皮和我的渊源很深,他妈妈是个网络女青年的时候我就认识他妈妈,他爸爸还没有网恋他妈妈的时候我就认识他爸爸。一直到到他们结婚,从出租房搬进了自己买的楼,他妈妈的肚皮慢慢变大,他的爸爸胡子拉碴,我都见过。然后张皮皮出生,在头两年半里,他爸爸妈妈和我说过无数次关于他的话,但是我却从来没有去见过他。因为我是叔叔辈,按照中国的习俗,应该是张皮皮来拜见我,而不是我去拜见他。
可我还是在今天见了张皮皮,因为他妈妈说做了很多好吃的凤爪,还有很多油炸带鱼,还有一锅炖排骨。我本来不想去的,但是担心如果自己不去,他们吃不了那么多菜,浪费了多可惜啊,何况还是炖排骨,何况是满满一锅。所以,和叔叔勉为其难地出了门,这在周末简直是个奇迹。因为和叔叔又老又胖,到了周末只喜欢补觉。而且,他本质上根本不喜欢任何人类,只要可能,他就猫在自己的房间里,哪里都不去。
ArchLinux 下 MySQL 远程连接问题
2010-05-18 16:56:03 | 作者:haijd
在 ArchLinux 下搭建了一个 MySQL 服务器,添加好相应的数据库和远程用户后,用客户机连接数据库时提示:
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘172.16.82.56′ (111)
于是修改配置文件"/etc/my.cnf",注释掉其中的"skip-network"行,然后再试一次,又报如下错误:
ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading initial communication packet’, system error: 0
再修改配置文件"/etc/hosts.allow",在其中添加如下一行:
mysqld: ALL
再试一下,就可以连接上去了!
Git学习笔记(7) — 独立开发者所用的命令(c)
2010-04-19 13:46:29 | 作者:haijd
转自:http://blog.prosight.me/index.php/2009/07/297
这次我们看一些实例
Use a tarball as a starting point for a new repository.
$ tar zxf frotz.tar.gz
$ cd frotz
$ git init
$ git add . //添加所有文件到index
$ git commit -m "import of frotz source tree."
$ git tag v2.43
Git学习笔记(6) — 独立开发者所用的命令(b)
2010-04-19 13:42:54 | 作者:haijd
转自:http://blog.prosight.me/index.php/2009/07/290
git commit
git commit 将当前在index中变化的内容提交到仓库(repository)中。语法:
git commit [-a | –interactive] [-s] [-v] [-u] [–amend] [(-c | -C) ] [-F | -m ] [–allow-empty] [–no-verify] [-e] [–author=] [–cleanup=] [–] [[-i | -o ]…]
- 使用git add命令可以持续的将变动或者新增的内容添加到index中。
- 使用git rm 可以将文件从woking tree和index中移除。
- 作为参数列在后面的文件,将忽略在index中的变化,而直接使用当前的内容作为提交内容。(例如你之前add过这个文件,但是在add后,又修改过且没有再次add)
- 使用-a参数就自动将所有变化的文件执行add操作(这些文件曾经都被add到index中),并将所有在working tree中移除的文件从Index中移除,之后再进行commit
Git学习笔记(5) — 独立开发者所用的命令(a)
2010-04-19 11:51:36 | 作者:haijd
独立开发者的最大特点就是他们不需要和其他人来交换补丁,而且只在一个独立的固定的git仓库中工作。
下面这些命令将可以帮助你完成日常工作:
git-show-branch:可以显示你当前所在的分支以及提交记录。
git-log:显示提交日志
git-checkout或者git-branch:用于切换和创建分支
git-add:用于将修改内容加入到index文件中
git-diff和git-status:用于显示开发者所做的修改
git-commit:用于提交当前修改到git仓库。
git-reset和git-checkout:用于撤销某些修改
git-merge:用于合并两个分支
git-rebase:用于维护topic分支(此处我也不太懂,等完成git学习后转过头来会关注此问题)
git-tag:用于标记标签。