如果你是一个程序员,而且恰好对写写代码有那么丁点兴趣的话,恐怕你会有一些属于自己的代码,这可以是你学习过程中的练习,解决问题的工具,或者纯粹就是发自兴趣的研究~~~而且你也希望有个比较好的方法来管理他们。
同学毕业后一直在兼职做网站,卖空间域名,前几天在他服务器上"kiang"来了一个SVN的repository过来,很是开心 - 自己的代码终于也走上了"一处保存,多出访问"的道路。其实之前也在网上搜寻过这方面的服务,有是有,就是空间有限,速度有限,没弄几天也就搁置了,比如unfuddle.com, BitBucket,或者Github。这段时间正把一些代码整理一下慢慢往上搬,不由的回忆起这些年来自己的源码管理方法。
文件:纯手工管理
这是在大学时代了,那时无论是自己写点代码,还是帮老师做些项目,完全没有使用版本管理工具的意识 - 事实上,那是我还压根不知道这个概念。所以现在打开我大学时写的代码,往往可以看到xxx1.0, xxx.1.1等子目录。是的,那时候我就是用这种方法保存代码的可用版本的。曾经还写过一个批处理来每日自动备份,呵呵,不知道版本管理工具,并不代表没有版本管理的意识。土是土,但是因为只有一个人修改代码,这种简单的备份方法还是管用的。
VSS:虽然自动化了,可实在是丑了点
公司一些内部项目是主要是用VSS管理的,刚进公司的时候,内部项目做得比较多,用的最多的自然就是VSS了。当时这是一个全新的概念,感觉相当先进 - 记得还和同事讨论过它每个版本间的差异是怎么保存的。Wiki上面对VSS的介绍指出不少缺点:比如速度太慢,不稳定,可能造成文件毁坏。我想这应该是VSS逐渐没落的原因吧。但就我当时来讲,因为是内部服务器和小项目,基本没这些感觉,只是觉得界面太丑了点,尤其是那个diff,简直不堪入目。
自己曾经就搭了个VSS的server,以便好好管理自己的代码,可是这种性质的代码,我是希望在公司和在家里都能访问的,可现实是我要么架在家里,要么放在公司,实在很不方便,再加上VSS那卖相不咋的,也就没有继续用。
Perforce:很好很强大
公司正式项目是使用perforce的(当然,现在内部项目也用perforce了),这工具的确强大,号称有5000个公司/组织的32万人在用它,我们公司也是赫然在列:
这至少证明一件事:我们公司用的不是盗版~~~~
用的越多,用的越深,就越发现其功能的强大,而且其暴露出来的命令给我们写一些自动化脚本提供了很大的方便。去年对项目做大型重构的时候用perl+ p4 commands解决了不少问题。
Perforce是个商业软件,但是你也可以在用户数受限的情况下免费使用:其限制是2个user,5个workspace。想想如果你是一个人用的话,2个user还嫌多呢。其实Perforce这招挺厉害的,一些个人,小型团队本来就不是他们的目标客户,我就让你免费使用,也不损失什么,但是将来你团队要做大了,perforce也用熟了,还怕你不来买 - 这叫培养潜在客户群。
当时为了更好的管理一些脚本和工具,就把公司Perforce服务器上一个废弃的branch下一个不显眼的目录作为了我的大本营,主要是管理一些工作用的工具,但也有一些自己因为兴趣写的代码,管理起来是挺方便的,也用了一段时间。但后来想想不太合适,还是撤了吧。
其实如果不要求多处访问,在自己机子上架个perforce的server用用还是很不错的。
SVN:开源项目多用它
SVN这是一个很有名的工具,可能因为和开源项目关系比较紧密吧。现在sourceforge上的项目基本上都用它了。SVN用的不多,以前主要是用它拿拿源代码而已。因为我的博客是寄放在我同学的服务器上,这两天老琢磨着在他服务器上搞个SVN,一问发现他早有了,主要是接一些项目时用的。于是就厚着脸皮让他给我划了一块。其实本来是想自己在上面配置的,之前还研究了下文档,不过既然有现成的也就省事了,他用的是VisualSVN Server,配置起来的确要方便很多。
其实各大空间提供商可以考虑考虑提供这方面的服务,不一定只是卖空间嘛,说不定这会有不错的市场。
这几天用下来,速度飞快,而且容量不限,相当满意~~~ 非常感谢同学的赞助,包括博客空间。顺便帮他做个广告,您要是想搞个独立博客之类的,可以考虑考虑这里:京拓科技。