Put Everything Under Version Control
2015-05-29 09:52
309 查看
Put Everything Under Version Control
Diomidis SpinellisPUT EVERYTHiNG iN ALL YOUR PROjECTS UNDER VERSiON CONTROL.
The resources you need are there: free tools like Subversion, Git, Mercurial, and CVS; plentiful disk space; cheap and powerful servers; ubiquitous net- working; and even project-hosting services. After you’ve installed the version control software, all you need in order to put your work in its repository is to issue the appropriate command in a clean directory containing your code. And there are just two new basic operations to learn: you commit your code changes to the repository and you update your working version of the project with the repository’s version.
Once your project is under version control, you can obviously track its his- tory, see who wrote what code, and refer to a file or project version through a unique identifier. More importantly, you can make bold code changes without fear—no more commented-out code just in case you need it in the future, because the old version lives safely in the repository. You can (and should) tag a software release with a symbolic name so that you can easily revisit in the future the exact version of the software your customer runs. You can create branches of parallel development: most projects have an active development branch and one or more maintenance branches for released versions that are actively supported.
A version control system minimizes friction among developers. When pro- grammers work on independent software parts, these get integrated almost by magic. When they step on one another’s toes, the system notices and allows them to sort out the conflicts. With some additional setup, the system can notify all developers for each committed change, establishing a common understanding of the project’s progress.
136 97 Things Every Programmer Should Know

When you set up your project, don’t be stingy: place all the project’s assets under version control. In addition to the source code, include the documenta- tion, tools, build scripts, test cases, artwork, and even libraries. With the com- plete project safely tucked into the (regularly backed up) repository, the potential damage of losing your disk or data is minimized. Setting up for development on a new machine involves simply checking out the project from the reposi- tory. This simplifies distributing, building, and testing the code on different platforms: on each machine, a single update command will ensure that the software is the current version.
Once you’ve seen the beauty of working with a version control system, follow- ing a couple of rules will make you and your team even more effective:
• Commit each logical change in a separate operation. Lumping many changes together in a single commit will make it difficult to disentangle them in the feature. This is especially important when you make project-wide refactor- ings or style changes, which can easily obscure other modifications.
• Accompany each commit with an explanatory message. At a minimum, describe succinctly what you’ve changed, but if you also want to record the change’s rationale, this is the best place to store it.
• Finally, avoid committing code that will break a project’s build, otherwise you’ll become unpopular with the project’s other developers.
Life under a version control system is too good to ruin it with easily avoidable missteps.
相关文章推荐
- spring freemarker集成
- MySQL5.6在线DDL不锁表(在线添加字段)
- gluster logrotate配置说明
- Android自定义控件View(二)继承控件
- 实现iOS应用图标右上角数字badge number提醒
- 关键帧动画CAKeyframeAnimation
- The Professional Programmer
- iOS中的排序笔记
- 由于编译Android4.0需要jdk1.5所以要降jdk版本到1.5
- char * fgets(char * s, int n,FILE *stream);
- 多线程
- oracle 函数大全
- JOIN US框架-3(hibernate怎么变成这么好用了?)
- 使用nginx进行负载均衡
- JQ分页功能
- .NET 4.0下使用 SignalR
- 网络连接
- 【sql调优之执行计划】nested loops join and nested loop join outer
- MongoDB安全配置详解
- 微信运营:必须收藏的101条万能微信标题公式