If you have been involved in any project of somewhat complexity, then you would have come across the term called revision control ? So what exactly is revision control ?
Revision control (also known as version control, or source control) is the management of multiple revisions of the same unit of information. The ‘unit of information’ in this case typically refers to items such as source code, documents (requirements, design), test plans and cases, etc. Changes to these documents are identified by incrementing an associated number or letter code, termed the “revision number”, “revision level”, or simply “revision” and associated historically with the person making the change.
A simple definition is: Revision Control is the management and storage of document and software revisions. It is primarily concerned with ensuring that previous versions of information are not lost. In computer software engineering, revision control is any practice which tracks and provides controls over changes to a project’s source code. A revision control application is a suite of programs that controls shared access to files in a group environment and tracks text file changes. Generally used for maintaining programming source code modules.
Version control has long been a critical tool for programmers, who typically spend their time making small changes to software and then undoing those changes the next day. But the usefulness of version control software extends far beyond the bounds of the software development world. Anywhere you can find people using computers to manage information that changes often, there is room for version control.
What does modern revision control do in terms of source code ?
1. Record and Catalog diff-like Changes: Whenever a programmer makes a change to a source code, the source code control system will allow committing the change, and also allow viewing the difference between multiple such changes (along with reasons entered by the developer)
2. Play-back and Combine Changes in Flexible Ways: Modern revision control tools give users flexible mechanisms that can be used for tasks such as “Create a tree that combines John’s latest feature work with Susan’s bug-fixes 1, 3, 5, 6, and 8.” Recording these changes separately in the first place is called branching and combining them is called merging.