小菜虎的窝 » 日志 » 火星日记 ~ 第七百四十九天 ~ 爱死Mercurial了
火星日记 ~ 第七百四十九天 ~ 爱死Mercurial了
Lee.MaRS 发表于 2007-12-11 00:20:36
话说自己其实对版本控制系统并不是很有心得。
本来对SVN就不能说是很熟练,只能说是能用起来了。
对SVN的感觉一般,基本上现在的开发模式都不会遇到Merge的情况。大家就把SVN当成一种纯粹的共享工具来用了。
后来到正义阵营里面小用了一下Perforce,用得非常不顺手。不过我发表这个看法的时候被毛虫bs了,1说Perforce非常好用。
看来这个东西也是仁者见仁。
不过自从用过Mercurial后,我觉得这个才是适合计算机系学生使用的东西。
Mercurial,也就是传说中的Hg,一个分布式版本控制系统。
对之对应的就是传统的CVS / SVN的集中式版本控制系统。
简单地说,集中式的就是有一个中央仓库,大家都围绕这个中央仓库干活。
工作模式基本上是checkout - modify - merge - commit。
而分布式呢,没有唯一 的中央仓库的概念,只要是同一个Project,每个人的工作目录都是一个仓库。
你可以从别人那里pull修改,也可以把自己的修改push到别人那里。
工作模式大体上是clone/pull - update - modify - merge - commit - push。
为什么说这个适合计算机系学生呢?
因为你不需要建立任何的服务器,就可以管理你的代码,并且可以用相当简单地方式与别人分享。
以我做OS Lab6来举例,看看log:
[leemars@LeeMaRS-Notebook Lab6]$ hg log
changeset: 7:931866d8bd09
tag: tip
user: Lee.MaRS <leemars@gmail.com>
date: Mon Dec 10 23:03:43 2007 +0800
summary: 改名
changeset: 6:297a4bd66ad9
user: Lee.MaRS <leemars@gmail.com>
date: Mon Dec 10 23:00:24 2007 +0800
summary: 完成实验报告
changeset: 5:73255cb40998
user: Lee.MaRS <leemars@gmail.com>
date: Mon Dec 10 22:59:26 2007 +0800
summary: 完成不受编译器优化影响的busyloop_v3.c
changeset: 4:41b487e6db44
user: Lee.MaRS <leemars@gmail.com>
date: Mon Dec 10 15:03:03 2007 +0800
summary: 把原版程序重整格式,方便diff
changeset: 3:cc39fb632887
user: Lee.MaRS <leemars@gmail.com>
date: Mon Dec 10 14:58:18 2007 +0800
summary: 完成实验步骤二
changeset: 2:d09f95db8ce4
user: leemars@gmail.com
date: Mon Dec 10 12:41:04 2007 +0800
summary: 完成实验步骤一
changeset: 1:755d5231b045
user: leemars@gmail.com
date: Mon Dec 10 12:24:00 2007 +0800
summary: 完成checkrate.c
changeset: 0:8dae61731b59
user: leemars@gmail.com
date: Mon Dec 10 12:13:23 2007 +0800
summary: 最初版本
只要你不需要明确的中央仓库,基本上不需要建立服务器……单就这一点我就非常喜欢。
总之我是爱死这东东了……
本来对SVN就不能说是很熟练,只能说是能用起来了。
对SVN的感觉一般,基本上现在的开发模式都不会遇到Merge的情况。大家就把SVN当成一种纯粹的共享工具来用了。
后来到正义阵营里面小用了一下Perforce,用得非常不顺手。不过我发表这个看法的时候被毛虫bs了,1说Perforce非常好用。
看来这个东西也是仁者见仁。
不过自从用过Mercurial后,我觉得这个才是适合计算机系学生使用的东西。
Mercurial,也就是传说中的Hg,一个分布式版本控制系统。
对之对应的就是传统的CVS / SVN的集中式版本控制系统。
简单地说,集中式的就是有一个中央仓库,大家都围绕这个中央仓库干活。
工作模式基本上是checkout - modify - merge - commit。
而分布式呢,没有唯一 的中央仓库的概念,只要是同一个Project,每个人的工作目录都是一个仓库。
你可以从别人那里pull修改,也可以把自己的修改push到别人那里。
工作模式大体上是clone/pull - update - modify - merge - commit - push。
为什么说这个适合计算机系学生呢?
因为你不需要建立任何的服务器,就可以管理你的代码,并且可以用相当简单地方式与别人分享。
以我做OS Lab6来举例,看看log:
[leemars@LeeMaRS-Notebook Lab6]$ hg log
changeset: 7:931866d8bd09
tag: tip
user: Lee.MaRS <leemars@gmail.com>
date: Mon Dec 10 23:03:43 2007 +0800
summary: 改名
changeset: 6:297a4bd66ad9
user: Lee.MaRS <leemars@gmail.com>
date: Mon Dec 10 23:00:24 2007 +0800
summary: 完成实验报告
changeset: 5:73255cb40998
user: Lee.MaRS <leemars@gmail.com>
date: Mon Dec 10 22:59:26 2007 +0800
summary: 完成不受编译器优化影响的busyloop_v3.c
changeset: 4:41b487e6db44
user: Lee.MaRS <leemars@gmail.com>
date: Mon Dec 10 15:03:03 2007 +0800
summary: 把原版程序重整格式,方便diff
changeset: 3:cc39fb632887
user: Lee.MaRS <leemars@gmail.com>
date: Mon Dec 10 14:58:18 2007 +0800
summary: 完成实验步骤二
changeset: 2:d09f95db8ce4
user: leemars@gmail.com
date: Mon Dec 10 12:41:04 2007 +0800
summary: 完成实验步骤一
changeset: 1:755d5231b045
user: leemars@gmail.com
date: Mon Dec 10 12:24:00 2007 +0800
summary: 完成checkrate.c
changeset: 0:8dae61731b59
user: leemars@gmail.com
date: Mon Dec 10 12:13:23 2007 +0800
summary: 最初版本
只要你不需要明确的中央仓库,基本上不需要建立服务器……单就这一点我就非常喜欢。
总之我是爱死这东东了……
曾经的这一天...
- » 2006年: 火星日记 ~ 第三百八十四天 ~ 倒霉透了
收藏:
QQ书签
del.icio.us
订阅:
Google
抓虾
最新评论
-
2007-12-11 22:45:43 匿名 202.120.*.* http://www.blogjava.net/zellux
好像的确很好用啊,这几天把svn配起来不怎么会用 =,=
试试这个

