月度归档:2007 年五月

Subversion

有一个开源版的控制系统,或者说是修订版的控制系统,名为Subversion (简称为svn),正在快速受到开发者的喜爱。它口碑极佳,可在线下载,完全免费,有大量文字称赞它的高效和实用。它稳定,灵活,能干,安全,免费,开源,并且能够用于任何规模的项目。

   以前的控制系统明星软件是CVS, 全称为并行版本系统(Concurrent Versioning System)。 Subversion出现之初只是为了给尊敬的CVS打造一个坚实可敬的基础,并根据多年以来CVS用户总结的经验来加以改进。它在很多方面如此成功,它 的普及就是证据。

Subversion 几近通明的使用方法,跨多操作系统平台上大量可用的客户应用,以及Subversion的低成本,和易于管理等因素,使得它不再仅仅被用来管理源代码。对 于内容可以被描述为“项目”或者“项目集”的目录结构来说,Subversion提供了一个近乎实时的备份系统。越来越多的BSD, Linux, 和 OpenSolaris用户在传统用途之外,还用Subversion的版本控制功能来保存文件目录。

安装

当 Windows提供了一步安装方式时,Subversion在开源社区的迅速走红绝对与它在BSD和Linux软件档案中的易于使用不无关系。例如,在 Debian GNU/Linux中安装Subversion,只需用到管理界面和命令语句和命令行客户端就能完成,只要以根用户身份登录,输入apt就可完成 subversion的安装。

类似情况下,在标准的Fedora Core Linux的YUM软件包管理器中安装Subversion,也只需要命令yum。对于FreeBSD, 无论使用pkg还是-C /usr/ports/devel/subversion进行安装都可以,使用哪种方法取决于您想从二元软件安装还是从源代码进行安装。即使MacOS X 也提供了能够安装Subversion的软件档案。

在某些情况下,subversion的版本控制功能要比很多普通备份工具出色很 多。最突出的当然是软件开发项目中的源代码控制。另外一个就是文档管理。由于用户的活动,文档和目录的内容会经常发生变化,迫使开发者采用一种方法撤消一 些删改,看看过去的版本。一般是通过changelog来实现,在版本控制系统中专业的称呼为 “修订记录”。

一种自动修订记录管理机制对于非专业编程人员来说可能非常熟悉,因为最著名的wiki软件就采用这样的技术来跟踪内容的变化过程,并能够通过返回去掉不好的修改。

做为修订记录机制的一部分,Subversion这样的版本控制系统不仅仅维护复制当前版本文件的中央数据库,还要一路维护从文件进入版本控制以后直到 当前所进行的修订日志。任何从事软件开发工作时间够长的人都能告诉你能够返回到已知良好状态的功能有多么重要。这正是任何版本控制软件的中心任务:也是它 们得以存在的最主要原因。

Subversion还有更多的功能。例如,当两个人同时编辑同一文件时,它能解决版本冲突的问题。在真实世 界里,那些实践经验丰富,经常在版本控制文件中提交工作,在提交变化前先更新本地文件的用户,很少与他人的工作发生冲突。这种少见的情况 Subversion也能通过内置的冲突解决方案进行解决。它还支持将主开发线上经过修改的分支与其他开发分支的接合,对不同程度用户的不同程度的校验和 升级许可,以及一些其他一些项目经理们会觉得非常有用的性能。

个人文件管理

版本控制系统的另外一个用处就是他们允许您在不同地点,使用多台计算机共同开发同一项目,而无需使用任何USB存储设备或者CD-RW介质。只要你在工作用电脑上安装了版本控制代理软件,并登录版本控制魔法发挥作用的服务器,您就可以找到项目的最新版本并开始工作。

由于同一数据的不同副本在校验副本更新到不同的客户端计算机时自动同步,因此Subversion 这样的控制系统也可用做一套收集在一起的文档的备份系统。这包括您每天的个人文档,以及源代码等;也就是说,如果您将任何小到不需要占用带宽来进行每周的 备份的相关数据集合看做是“项目”,就可以利用Subversion来节省复制数据的时间。个人文档目录一般都非常符合这一特点,特别是当您所保存的文件 大部分都是几兆大的音乐、视频及高清晰度图片等文件时,绝对适用。

如果你是那种了解日常备份在预防硬件及文件系统故障中的重要意义的用 户,你会发现您所进行的不过是日常备份,因为操作Sebversion所要进行也就传统的备份系统配置和向CD-R中复制数据。Subversion所进 行的如此简单的个人文件备份能够节省大量时间,或者至少能将你从延迟备份的负担中解放出来,你所需要的只是另外一台运行着Subversion服务器软件 的计算机。

由于Subversion并不象Visual SourceSafe和ClearCase这样专属软件的图形化界面那样,指定单一用途,因此它能够很容易的被用于一些非标准的使用场合,如标准文档控制 等。你依然有自己的GUI环境,但是由于有很多专为Subversion使用的GUI客户端软件,而Subversion也被集成进了很多其他的GUI工 具,如Eclipse,甚至通过TortoiseSVN客户端进入了微软公司的资源管理器。

配置和安装

使用 Subversion进行文档管理最可能的情况是在微软的 Windows系统中使用TortoiseSVN 或者在免费的类UNIX操作系统的软件管理工具中使用Subversion客户端软件。如果要安装基本Subversion,你可以在BSD或者 Linux软件的档案库中找到服务器软件,命令行客户端以及管理工具,因此如果你不需要图形化用户界面的话,你根本无需另外安装任何软件。

在微软的Windows服务器中安装Subversion,你可能会用到Subversion项目的维护者Tigris.org网站上提供的SVN 1-Click Setup 安装程序。许多使用Subversion的微软Windows用户选用BSD服务器代替Windows服务器,而且这样还不用分别安装。

在服务器上安装了服务器软件以后,您需要创建一个版本控制知识库。下面的例子假设了一个类UNIX的shell command 环境。括弧中的语句可根据您的需求进行更改。不要在操作中输入括弧。“#”标志表示您以根用户身份登录,或者使用sudo进行了管理员访问。在 [nnnn]中填入你要访问的subversion知识库的userid 值。

列 A

# addgroup [svn-users]

# usermod -u [nnnn] -G [svn-users]

# mkdir -m 770 [/home/svn-repos]

# chgrp [svn-users] [/home/svn-repos]

# svnadmin create –fs-type fsfs [/home/svn-repos]

请注意一定要在fs-type选项中明确“fsfs”。因为默认情况下,Subversion知识库文件系统的数据库的最初名称为“bdb”,已被证实 有些不稳定。新版本中默认名称已经更改为fsfs,但是有些老版本及非标准版的Subversion依然使用bdb。出于安全起见,还是要在创建新知识库 时明确一下fsfs数据库格式,保证系统能够更稳定。

在服务器上建完知识库目录以后,就可以在这个目录下创建实际的项目知识库。也许是出于直觉,你不应该直接在知识库内进行。列B告诉你如何通过单独目录在知识库目录中创建包含有被丢弃的文件的知识库,然后再通过“check in”登记来创建项目知识库。

最后以前面命令中指明的用户帐号登录。从所用用户帐号的根目录开始按步骤进行。使用非根用户身份登录,前面显示“$”符号。同样的,[ ]括弧中的内容可根据你的需要进行修改。记得在输入时不要输入括弧。

列B

$ mkdir [project]

$ cd [project]

$ touch [file.txt]

$ svn import -m “[importing file to create project]” . file:///[home/username/svn-repos/project]

在服务器上创建项目知识库以后,就完成了。 在将项目知识库导入知识库之前需要删除刚才创建的项目目录,因为目录中的数据现在已经安全的保存在了服务器上。既然知识库是通过一个空文件使用touch command创建完成饿,所以删除也不会造成任何损失。

在客户端电脑上你可能需要编写项目或者访问文档,所以你还需要查看知识库中的内容并创建一个本地副本。范例如下。同样的也是假设您使用免费的类UNIX操作系统,如BSD,或者OpenSolaris这样的Linux版本。.

列 C

$ cd [/home/username]

$ mkdir [svn-local]

$ cd [svn-local]

$ svn co svn+ssh://[hostname/home/username/svn-repos/project project]

这时,一般都需要三次输入保存知识库的系统的密码。在本例中,除了你选择的操作系统,您还需要在客户端系统上安装功能完全的SSH客户端和SSH服务 器。 Svn命令知道如何通过SSH传达网络需求,为客户端和服务器系统之间提供安全的加密连接,保护您的用户名、密码和数据不受可能注意您的网络的恶意安全破 坏者侵害。

Svn-local目录不是必需的。如果你愿意的话,你可以就把最新校验过的项目或者文档目录直接保存到您的用户帐号主目录 下。一般最好将由 Subversion知识库维护的目录与备份方式不同的目录分别保存,以免弄混。在以前的例子中,你都无需为重要数据“项目”的目录命名,所以也不需要为 最初的空文件“file.txt”命名。

对项目的本地副本核完毕,就可以删除客户设备上的项目目录。然后就需要在目录内添加其他在Subversion中保存的文件,并在服务器上的Subversion知识库中进行核对。列D就为操作范例。

列 D

$ cd [/home/username/svn-local/project]

$ svn rm file.txt

$ cp -R [/home/username/project/*] .

$ svn add `ls -R`

$ svn ci -m “[added all base files to the project directory]”

cp –R命令能将目录中重要数据目录中的全部内容(在这里为/home/username/project) 复制到当前目录中 (由单独的句子指定)。svn add `ls -R` 命令将这个目录下全部内容以及所有的子目录添加到本地项目目录副本中的版本控制中。svn ci 命令将当前副本提交到服务器上的主目录中。在添加命令以后,svn客户端工具会显示添加文件列表。Ci命令会要求密码以确保你有权限进行提交。

Subversion的使用

不同的图形化用户界面的使用方法也不同,各个用户的使用方式也不同。对于使用命令行的客户,最重要也是最基本的升级、管理和提交项目文件的命令是以下这些:

svn up – 通过主知识库更新本地副本。在开始对任何文件的工作前都要进行更新。如果别人访问过知识库,也要在提交之前进行再次更新,是个好习惯。

svn status – 告诉你哪些文件被修改过,哪些经过增改但还未被提交,哪些创建以后还未添加到版本控制,哪些文件神秘消失而没有从版本控制中删除(最大的可能是因为你忘记 使用svn rm 替代 simply rm),以及哪些文件已经从版本控制中完全删除。

svn add – 我们刚才演示过,用来在版本控制中添加文件。

svn rm – 从版本控制中删除文件。这样也会从本地文件系统中将相关文件删除。

svn mv – 将知识库中本地副本中的某个文件移动到另一个地方,而不会造成Subversion数据库的混乱。它的工作原理有些类似标准的mv 命令,但是它只用于版本控制下的本地项目副本。

svn mkdir – 创建目录,与普通的mkdir 命令很类似,但是它同时能够将目录自动加入版本控制。

svn ci – 能将知识库中本地副本当前目录下以及其内部所有子目录内发生的全部变化提交给主知识库。在这一命令生效之前,必须首先解决svn状态命令报告的标有问号的 部分(未知的文件状态)。在没有疑问以后,svn ci 会打开默认文本编辑器输入提交信息。如果你需要查找项目中较早版本中的文件就会用到这些文本。-m 选项能够被用来明确命令行中的提交信息,如上面创建和使用Subversion知识库中所演示的那样。这样做的目的在于给已提交的变化做出标记,以防以后 什么时候可能会对之前做的修改进行分类。

svn help – 为你提供大量关于Subversion命令行客户端的使用信息,例如对每个svn命令深入的解释和举例,以及除这些以外更多命令的使用方法。您可以通过输 入svn help add(这里假设你需要获得关于“add”命令的信息)获得更多关于特定svn命令的信息。

本文并非神化Subversion,只是对Subversion版本控制软件进行了有益的介绍,版本控制软件的使用是任何敬业的程序员都要使用的技巧。本文中的这些例子能够为您提供真切的帮助,即使您不是程序员也会感觉有益。

最近截获的乱抓网站的IP地址

00600     141728      6802944 deny ip from 202.108.1.0/24 to any
00800      61807      3708466 deny ip from 202.160.179.0/24 to any
00900      68553      4113385 deny ip from 202.160.180.0/24 to any
01000     108824      5222880 deny ip from 125.120.170.214 to any
01200     232497     13138080 deny ip from 74.6.0.0/16 to any
01400      13886       666528 deny ip from 220.191.38.32 to any
01800       7598       457041 deny ip from 58.61.164.139 to any
01900      25398      1524953 deny ip from 58.61.164.141 to any
02100      54609      2621000 deny ip from 125.119.98.34 to any
02200      41211      2472629 deny ip from 202.160.178.0/24 to any
02300       1248        74880 deny ip from 60.191.80.226 to any
03000       4313       207840 deny ip from 85.130.164.0/24 to any
03200       2020        98668 deny ip from 60.177.239.114 to any
03300       1031        49368 deny ip from 125.119.100.252 to any
03800       6089       292168 deny ip from 125.120.161.27 to any
04100       2427       116392 deny ip from 125.120.160.186 to any
04200       7350       352688 deny ip from 60.177.236.23 to any
04500      18294       879830 deny ip from 125.120.170.133 to any
04700       5323       255384 deny ip from 60.177.235.220 to any
05600        128         5336 deny ip from 60.209.64.179 to any

结束

忙了两天,终于结束;

2007年5月25日 17:00

该搬的都搬了,最后看一眼之后,我知道再也没有了。

此记。

搜狗开始不要脸了

突然发现搜狗的新闻快讯整个就是google快讯的翻版

从版面设计到确认邮件的提示,几乎一模一样;

联想到前些日子的输入法事件,如此看来,搜狗还真是够不要脸的 。

你用什么做密码?

以下为《PC Magazine》评出的网络上最常用的10个密码排名:

1. password

2. 123456

3. qwerty(标准的传统键盘)

4. abc123

5. letmein

6. monkey

7. myspace1

8. password1

9. blink182

10. your first name(用户自己的名)

晚霞

大风,夕阳正在离去,乌云铺天盖地的涌过来;

落日余辉;

入夜,雨。

晚霞

保养爱车之清洗自行车链条

周末跟老乔学习了怎么打链条、洗链条,老乔还送了我一瓶专门的高科技清洗剂。

回家以后决定把自己的老旧山地车拿来做试验品,练习一下拆洗链条。

先用打链器把链条拆下,拆链条的时候要千万小心,别把轴给顶出去了;拆下来的链条盘好,放到一个盆里;

这车链条用高级的清洗剂洗太浪费,于是用了洗衣粉;泡了半天还是没有把厚厚的油灰给洗掉。

突然想起来家里有清洗抽油烟机的威猛先生(做做广告,这东西除油效果好,就是味道有点受不了),这玩艺连那么厚的油都可以溶解掉,用来清洗链条的油泥应该没问题。

于是,把威猛先生倒入盆里,漫过链条,一定要用个能恰好装下链条的盆子,要不然会很浪费哦,这威猛先生的价格也是很威猛的噢;

过了不到1分钟,摇晃了一下,发现水一下就黑了,大块的脏东西哗啦啦的往下掉,继续晃动,幅度不要太大,小心晃出来 了。

如此泡上十来分钟,用清水冲洗干净,然后再加威猛先生浸泡一次,水就没那么黑了。

把链条拿出来看看,光洁如新,可惜就是链条本身磨损严重,发黑层基本都磨掉了,工作真是辛苦。

用清水把链条冲洗干净,一定要把清洗剂都冲干净,要不然加链条油的话也会被溶解掉的哦。

把链条晾干以后,就可以装回去了(ps:之前飞轮和花鼓都已经清洗干净)

然后就是,上油!

每个关节点都要上,油要滴在关节里,不要上到链条外面。

如此,一条车链的清洗就完成了。

重装系统日

用恢复盘把T43的系统重新做了一次。

上一次新装系统是2006年4月,这个XP让我折腾了一年,已经四处漏风了。

T43的光驱才1年已经不大好用了,郁闷。

一个全新的系统要恢复到可以使用的水平,估计需要1星期时间,漫长。

五一骑行河北蔚县

从八里桥方向出京,沿109国道向西,第一天停在门头沟区的清水镇;

第二天开始翻越太行山,路况大大超出预计情况,20多公里的山路基本上是推车前进,顺便检阅了长达8公里的大卡车队列,晚上停在河北桃花镇。

第三天,路况大大好转,一路坦途,直奔蔚县,11点多到达目的地,吃了午饭后,逛了一趟县城,看了玉皇阁。

第四天,坐车直达北京。

总行程273公里;总骑行时间 18小时;平均速度15公里/小时;最快速度47.25小时。

曲径通幽的太行山内

斋堂水库大坝

穿越太行山

到达目的地,河北蔚县