Non-technical overview of Source Code Management Tool
Overview of SCM:
- Source Code Management system (SCM), also known as Version Control System or Revision Control System.
- SCM is a tool used in software development for storing of all codes in centralized repository.
- Version Control:
- As the name ‘Version control’ suggests this tool tracks different versions in software development giving each version a number, timestamp, name of the person changing it, and a message entered by user describing the changes. This helps you understand how your project evolved between versions.
- Code Synchronization in distributed team:
- Imagine you have a team of developers working on same codebase or same project. How can they actually pass the changes they did to other developers ? Quick thought will be working on a shared directory which is very tedious and error-prone.
With scm synchronization of codes become easy. A developer working on a feature pushes his changes to the repository using this tool. Other developer can update there codebase by simply using a CLI command or GUI which download only the changes pushed by the other developer.
- Undo, Redo & compare:
- All changes done over time are logged in scm. So any features can be undone or redone using scm anytime. Also you can compare multiple versions over time.
- Branching & Merging:
- With a team of developer working on same codebase it is obvious that they may work on same files. In this case devs can create multiple branch for each features and can merge the branch.
- Meaningful tags can be added to any version to make it easily identifiable in feature.
- SCM stores the detail log of changes done overtime and it can easily viewed by executing a simple command.
- Another very important reason to use scm is it act as a backup for the code base with complete history; which is used to recover codebase anytime.
There any many scm softwares available ( List of version control softwares ), out of them the most common are:
The most commonly used scm is git. It has many options which makes the development cycle easier. Most of the freely available open source projects uses git. It offer public as well as private repository. Public repository is never used for personal projects, as the codebase remains open.
We use Bitbucket in most of our clients projects, except explicitly specified by the client. Bitbucket provides a free personal / private repository and it uses Git internally. All commands and functionality are same as that of git.
Generalized steps for setting up a scm:
- Create account in any cloud based scm tool.
- Create a repository with same name as your project.
- Add existing codebase to the repository created.
- Clone repository and keep updating the repo with all changes done over time.
If you are not using this powerfull too for any of your custom / bespoken software development we highly recommend to use it right now and take the benefits of it.
* * * *
If you find the article useful, please don’t forget to share it !
Do you find SCM useful ? Is there anything which stops your development team from using it ?
It will be interesting to hear back your views.