SCMWise.com

Version Control


Definition

Version Control is a system or tool that captures the changes to a source code element: file, folder, image or binary.

This is beneficial for many reasons, but the most fundamental reason is it allows you to track changes on a per file basis.

When you perform software development for a living, it is just second nature to use Version Control or Source Control.

For those who are not as familiar with the concept, it can be difficult to understand and use.

Think of it this way. Have you ever lost changes to a program you were writing.

Or, for those that do not develop software, have you ever lost changes to a document.

If you did not create a backup copy before you saved changes and you decide you need to revert back to the original, you need to manually recreate the original document from memory.



Benefits

  • Secures your Source Code
  • Allows you to View Differences between Different Versions of the File
  • Facilitate Team Communication
  • Enables Version Labelling
  • Allows for Code Branching
  • Provides Merging Capabilities
  • Ensures no one Over-Writes Someone Else's Code
  • Allows for Better Control for Parallel Development


Version Control Explained

If you have ever worked with a group of developers on a project not using source control, you know the frustration.

It can be painful trying to coordinate file swapping between project team members.

All developers worth their salt have used revision control tools.

Software Configuration Management Tools provide many benefits in addition to providing the ability to have an unlimited number of people working on a specific file at the same time.

You can instantly browse previous commits to your repository and revert to earlier versions if something happens.

However, there is a little more to it than just using a version control tool.

Finding the tools that fits your organization greatly helps in success of implementing a source control system.

Here is a list of some of the more widely used SCM Tools

The difference between wisely and foolishly administering code can greatly impact the success of any development organization.

There have been software development organizations who have had catastrophic loss of their code through a hardware failure or data corruption, only to suffer little to no down-time because of proper backups and precautions were followed.

There have been known cases where companies encountered weeks of down time due to source administration ignorance and not following code administration best practice.

Following standard Source Code Best Practices is the only way to ensure a healthy and productive development environment.


Software Configuration Management Best Practices
  • Use a reliable and dedicated server to house your code
  • Backup your code daily
  • Test your backup and restore processes
  • Choose a source control tool that fits your organization's requirements
  • Perform all tool specific administrative tasks
  • Keep your code repositories as clean as possible
  • Secure access to your code
  • Source Control Administration


Version Control Vocabulary

Add: Inputting a new element(file, folder or binary) into the repository

Branch[es]: Separate version of the same element(file, folder or binary)

Check In: Creates a new revision of an element in the repository

Check Out: Populates workspace with editable version of a file, folder or binary

Client: Developer computer connecting to the repository

Conflict: When changes from different developers changing the same file conflict with each other

Diff: Is used to see the difference between different versions of the same file

Element: File, folder, binary, or any other item that has been added to a repo

Head Revision: The latest revision of the file

Label: Is a tag you attach to specific set of files that require identification

Merging: Is the process of applying changes from two different versions of the same file[s]

Repository: Is the database that stores the source code and the versioning meta-data

Revision: Is the version of the specific file, directory or binary

Server: Is where the source code repositories reside

Trunk: Is the main branch from where the other branches originate

Workspace: Is the local copy of the code where the developer makes changes before checking in those files


Version Control Software

Version Control Software is an overview of the features and concepts of a few of the more commonly used Open Source SCM Tools, Subversion, Bazaar and Git.

Version Control Software


Software Configuration Management Tools

SCM Tools is a list of the more popularly used Software Configuration Management Tools.

The plan is compile an exhaustive list of tools and rate them according to their usability.

Software Configuration Management Tools


Software Configuration Management Tool Reviews

Please share your Software Configuration Management Tool experiences and reviews!

Or

Read what other think of their Software Configuration Management Tools.

SCM Tool Reviews



Version Control Software Table of Contents

Software Version Control Software Version Control is a software system designed to track changes to individual files and directories. It's primary function is to facilitate, track and help organize changes to constantly evolving software systems.

Source Code Source Code is the intellectual property of an organization. Understanding and properly protecting this valuable asset is one of Software Configuration Management's highest priority.

Source Code Administration Source Code Administration is an important aspect of SCM. Ensuring wise and effective administration to your companies source code is vital to your organization's success.

Source Code Branching Most software projects will invariably require some efforts to be done in parallel. Large software projects require many roles to be filled, developers, architects, builders, testers and managers.

Software Baseline The goal of the baseline is to uniquely identify each version of a software component or application, and to facilitate detection and correction of configuration errors.

Source Code Evaluation In Software Configuration Management, one of the most common asked questions is what SCM source code tools should I use. The answer is, it depends on your source code evaluation criteria.

Source Control Source Control is a system or tool that versions the changes to a source code file. This is beneficial for many reasons, but the most fundamental reason is that it allows you to track changes on a per file basis. The typical tools used for versioning are called version control tools, software configuration management tools, or content management tools.

Version Control Version Control is a system or tool that captures the changes to a source code element: file, folder, image or binary. This is beneficial for many reasons, but the most fundamental reason is it allows you to track changes on a per file basis.

Version Control Software Version Control Software is an overview of the features and concepts of a few of the more commonly used Open Source SCM Tools, Subversion, Bazaar and Git.

SCMWise Home SCMWise is dedicated to Software Configuration Management. This site is a central repository for the collection of best practices, processes, methodologies and tools that surround SCM.



SCMWise Configuration Spec



© Copyright 2007 - 2016
Powered by Site Build It!
Page copy protected against web site content infringement by Copyscape SCMWise.com's Privacy Policy
ADD TO YOUR SOCIAL BOOKMARKS: add to BlinkBlink add to Del.icio.usDel.icio.us add to DiggDigg
add to FurlFurl add to GoogleGoogle add to SimpySimpy add to SpurlSpurl Bookmark at TechnoratiTechnorati add to YahooY! MyWeb