Put Everything Under Version Control
把你项目中的每件事情都放到版本控制下。你可能需要用到这些工具:比如免费的Subversion、Git、Mercurial、以及CVS;足够大的硬盘;有性价比的服务器;无所不在的网络;甚至还需项目托管服务。当你安装完这些版本控制软件后,为了将你的工作放进仓库里,你所需要做的就是在一个包含你代码的干净目录中用发出相应的命令。之后你只有两个基本的操作要学:将你改变的代码提交
到仓库,将你工作的版本更新
到仓库版本。
一旦你的项目处理版本控制下,你就可以很直观地追踪其历史,看到是谁写什么什么样的代码,并通过ID去指向文件或项目版本。更重要的是,你可以放心大胆地去修改代码——不必为了将来可能需要它就暂时注释掉代码,因为它们依旧安全地存放在仓库的旧版本中。你可以(也应该)用一个符号名来标记软件发行版本,以便于将来可以追溯用户所运行软件的确切版本。你还可以创建并行的开发分支:大部分项目都有一个活跃的开发分支,以及一个或多个维护分支,用于积极地支持发行版。
一个版本控制系统能最大程度地降低开发者之间的摩擦。程序员们各自开发软件的独立部分,然后魔法般地整合到一起。当他们相互冲突时,系统会发出通知,并允许他们解决冲突。通过一些附加的设置,系统还可以通知到每一个已提交过的开发者那里,从而对项目进展达成共识。
当你的项目启动后,不要小气鬼:将所有项目相关的内容都放入版本控制。除了源代码,还包括文档、工具、构建脚本、测试用例、工艺、甚至是库等。将整个项目完整的塞进这个(定期备份的)仓库中,让磁盘或数据丢失的风险降至最低。在新机器上搭建开发环境只需要简单地从仓库签出即可。这简化了在不同平台上的分发、构建以及测试代码:在每台设备上,每条更新指令都能保障其软件是当前版本。
一旦你见识到使用版本控制系统工作的美妙,遵循下面几条规则就会让你和你的团队变得更有效率:
- 将每次逻辑变更都进行单独的提交操作。将很多的变更集中到一次性提交的话,会使它们在功能上变得很难被分解。这在你进行项目范围的重构或改变风格的时候尤为重要,会很容易掩盖其他的修改。
- 每次提交都伴随一条解释信息。要简短地描述你做了什么改变,但如果你想记录一下改变的缘由,也最合适放在此处。
- 最后,避免提交的代码会破环项目的构建,否则你会受到项目组其他开发者的鄙视。
版本控制系统的人生多么美好呀,不用废止就能轻松避开错误。