把一切都纳入版本控制
本文翻译自"Put Everything Under Version Control",来自于《97 Things Every Programmer Should Know》一书中的某个章节。
把项目中的一切都纳入版本控制。你需要的资源包括:免费的工具,比如Subversion,Git,Mercurial和CVS;充足的磁盘空间;便宜且性能强大的服务器;无处不在的网络;甚至包括项目托管服务。安装好版本控制软件后,为了将你的工作成果放入版本库中,你所要做仅仅是在一个包含你的代码的干净目录中敲入适当的命令。你只需要学习两个新操作:将你修改的代码提交到版本库中以及将版本库中的代码更新到你本地的工作版本中。
一旦你的项目纳入版本控制,你就可以跟踪它的历史,看看谁写了哪些代码,并且可以通过一个唯一标识引用一个文件或某个项目版本。更重要的是你可以大胆地修改代码。不用担心删除掉那些为了以防万一而被注释掉的代码,因为老版本代码很安全地待在版本库中。你可以(且应该)用一个具有实际含义的符号给一个发布版本打上标签,以便你在将来可以很容易地重新找到客户那运行的软件的确切版本。你可以创建分支来进行并行开发:大多项目都有一个主开发分支以及一个或多个用于积极支持发布版本的维护分支。
版本控制系统减少了开发人员之间的冲突。当程序员各自工作在独立的软件部件上时,他们的工作好似用了魔法一样被整合在了一起。当他们之间出现冲突时,版本控制系统会通知他们,并允许他们对冲突进行分类整理。通过一些其他设置,系统会将每次变更提交通知给所有程序员,让大家共同了解到当前项目的进展情况。
当你创建完项目后,不要吝啬:将你的所有项目资产都纳入版本管理。除了源代码外,还包括文档,各种工具,构建脚本,测试用例,美工作品,甚至是库。全部项目被安全地塞入(定期备份的)版本库后,硬盘损坏或丢失数据所带来的损失将减到最小。在一个新机器上配置开发环境只需简单地将项目代码从版本库中检出即可。这将大大简化软件在不同平台上的发布、构建和测试过程:在每台主机上一个简单的更新命令就可以确保你获得的是当前最新的软件版本。
现在你已经看到使用版本控制系统的好处了,遵循下面几条规则会使你和你的团队更加高效:
· 每次提交一个逻辑变更。在一次提交中包含许多变更会导致后续很难弄清楚其中每个逻辑变更所对应的内容。这点在你进行项目范围内的重构或风格改变时尤其重要,一起提交多个变更很容易掩盖其他修改。
· 每个提交都要包含一个解释性的信息。至少简要地描述一下你修改了什么。不过如果你还想记录这次修改的理由,那这里就是存储它的最好地方。
· 最后,避免提交那些会破坏项目构建的代码,否则你就会成为这个项目中不受欢迎的人。
版本控制系统下的生活是如此美好,一些疏忽和过失都无法轻易地破坏它。
评论