使用 SubVersion 做开发

Subversion是什么?

Subversion是一个自由/开源版本控制系统,它管理文件和目录可以超越时间。一组文件存放在中心版本库,这个版本库很像一个普通的文件服务器,只是它可以记录每一次文件和目录的修改,这便使你可以取得数据以前的版本,从而可以检查所作的更改。从这个方面看,许多人把版本控制系统当作一种“时间机器”。

Subversion可以通过网络访问它的版本库,从而使用户可以在不同的电脑上使用。一定程度上可以说,允许用户在各自的地方修改同一份数据是促进协作。进展可能非常的迅速,并没有一个所有的改变都会取得效果的通道,由于所有的工作都有历史版本,你不必担心由于失去某个通道而影响质量,如果存在不正确的改变,只要取消改变。

一些版本控制系统也是软件配置管理(SCM)系统,这种系统经过特定的精巧设计来管理源代码,有许多关于软件开发的特性—本身理解编程语言、或者提供构建程序的工具。然而,Subversion不是这样一个系统,它是一个通用系统,可以管理任何类型的文件集,对你这可能是源代码—对别人,可能是一个货物清单或者是数字电影。

SVN svnserve 方式安装及配置

I.Linux RedHat 9
1.卸载原版本
# rpm -ev subversion-0.17.1-4503.0

2.安装包
# rpm -ivh –nodeps apr-0.9.5-0.2.i386.rpm
# rpm -ivh –nodeps apr-util-0.9.5-0.1.i386.rpm
# rpm -ivh –nodeps neon-0.24.7-1.i386.rpm
# rpm -ivh –nodeps subversion-1.2.3-1.rh90.i386.rpm

3.建立用户svn,创建repostory
$ svnadmin create /home/svn/svnroot

4.启动SVN服务
$ svnserve -d -r /home/svn/svnroot

这样就简单的建立了一个基础的 SubVersion 开发环境,普通情况下代码是存放在 SubVersion 的数据库中,我们是无法直接把这些代码及时应用,当然 SubVersion 的功能不至于这么简单 :) 我们可以在代码更新的时候添加一个 hook 上去,让 SubVersion 自动把代码更新到我们应用的地方。

添加自动更新的 hook

在 /home/svn/svnroot/hooks 创建一个名称为 post-commit 的脚本,内容为:

#!/bin/sh
REPOS=”$1″
REV=”$2″
# 第一次更新代码,请使用 checkout 方法把全部文件导出

svn checkout svn://localhost /home/svn/willbe –username oneoo –password ******

# svn://localhost => SubVersion 访问地址

# /home/svn/willbe => 将要把代码输出到的目录

# 次后的代码更新只需要做 update 处理
#svn update /home/svn/willbe –username oneoo –password ******

阅:《标签,标签云》

阅:《标签,标签云
:) 分析的不错,但我想你忽略了一个重点。 是不是人人都会给文章写几个标签呢?我想这个是值得考虑的问题,毕竟是挺麻烦的,得多打几个字 :) 并且是不是个个人都能给文章标上好的标签呢?如果没有给文章写标签,或者标签写的不好,就无法发挥它应有的作用。

就拿我们网站上的相册、做事等能支持 Tag 功能的 服务 来看,能给自己发表的内容做标签的人数很少。只能占到 10% 的比例,并且标签的质量也不高。

而我们的 WordPress 服务为了提高用户的文章关联性,专门 开发 了一个“WordPress 加入新插件 yo2similar”插件,能够自动分析文章标题,提取关键字,并在数据库中搜索出相关的文章列表。这样大大的增强了文章的相关性,并且人性化,不需要用户自己动手做标签。

总结来说,Tag 是好的,但也需要用户配合。当然程序能帮忙做的事情,我们就努力让程序来帮大家完成。

yo2.cn 发展迅速,我们都很高兴

  yo2.cn 近期发展比较快,让我跟 charles 都很高兴很欣慰,毕竟大家的努力得到了大家的认同。今日到很多网友在开通自己的博客,心里的滋味就是甜。但其实上个星期六到今天我现实生活是痛苦的,家里的弟弟出了点事情,搞得大家都很痛苦,我跟老婆也吵过几次了。现实跟网络的极大反差,我还是默默的承受着。依然为 yo2.cn 工作到凌晨,依然为 yo2.cn 开发思索着。。。

  这些日子在现实中,让我看明白了人间的冷暖,看白了亲朋好友的关系,其实这些都只是很细的一条线相连着,经不起风雨的考验。

  在这里我只想说:“我已经尽力啦!请别责怪我。我能承担的我不会说一句不,但现在我已经抗不起了,还请你们体谅。”

回顾一下上周享受的麦当劳服务

  上个星期,我刚出差回来,八点四十五分的车,坐了五、六个钟头,终于回到家了,第一时间找三天未见的老婆大大,汇报情况 _-!! 安抚安抚一下,一起到麦当劳吃些东西吧 :)

  因为是星期五,并且是下午四点,排队的人并不多,我们很快就选好想吃的东西,并且递给服务员一张50块的RMD。嘿,以外发生了,我发现她很“重视”我们,一收¥,就立刻飞奔过去给我们取食物呢。好服务啊,不过。。。就是忘了给我找¥,买了30块的东西,得找我20啊。 _-!! 郁闷。当她给我们递过食物的时候,我只好说:“你还未找¥啊,我刚才给你50块的”。呵。。。她的第一个反应居然是走响经理室,敲敲门,等一下。。。嗯二分钟后,经理出来了,带收银机钥匙来了,肯定是给我找¥啦 :P 。。。看他打开收银机,不慌不忙的拿起一叠10块的RMD,应该是给我找¥吧,。。想错了!他在一张一张的数呢,数了整整三分钟!总算把收银机的¥给数完了,跟电脑对帐,确实多了20块,得找我了。才给我递过来!而我在他数¥的时候,就是愣站着在那看他数¥,更另我讨厌的是,最后给我找¥,连一声“对不起”都没有!我当时就看着这个经理,直拎头了!

  那有这样的服务态度的啊,自己做错了,害顾客在那等你数¥不算,居然连一句“对不起”都不说?我可以理解你必须为公司负责,不能找错¥。但你也需要为顾客负责啊!

  如果是我来处理这件事,我会先让顾客享用他的食物,而我则以最快的速度计算清楚是否真的没找¥给顾客,如果真的没找,我可以把¥送到顾客面前,而不是让顾客在那傻等。同时也能确保不会出什么差错。

  当然让顾客等你数¥也是没问题的,但你给顾客说声“对不起!”这是最基本的。这让我回想到google,如果有人给google提出意见,会有机会收到google的神秘礼物 :)