What is the difference between configuration management and version control




















As well as a private repository on their own computer, developers also maintain a public server repository to which they push new versions of components that they have changed. It is then up to the open-source system 'manager' to decide when to pull these changes into the definitive system. Rather than a linear sequence of versions that reflect changes to the component over time, there may be several independent sequences resulting from branching.

This is normal in system development, where different developers work independently on different versions of the source code and so change it in different ways. At some stage, it may be necessary to merge codeline branches to create a new version of a component that includes all changes that have been made. If the changes made involve different parts of the code, the component versions may be merged automatically by combining the deltas that apply to the code.

When version control systems were first developed, storage management was one of their most important functions. Disk space was expensive and it was important to minimize the disk space used by the different copies of components.

Instead of keeping a complete copy of each version, the system stores a list of differences deltas between one version and another.

By applying these to a master version usually the most recent version , a target version can be recreated. As disk storage is now relatively cheap, Git uses an alternative, faster approach. Git does not use deltas but applies a standard compression algorithm to stored files and their associated meta-information. It does not store duplicate copies of files. Retrieving a file simply involves decompressing it, with no need to apply a chain of operations. Git also uses the notion of packfiles where several smaller files are combined into an indexed single file.

System building is the process of creating a complete, executable system by compiling and linking the system components, external libraries, configuration files, etc. System building tools and version management tools must communicate as the build process involves checking out component versions from the repository managed by the version management system.

The configuration description used to identify a baseline is also used by the system building tool. A system platform is the development system, which includes development tools such as compilers, source code editors, etc. The build server, which is used to build definitive, executable versions of the system. This server maintains the definitive versions of a system.

The target environment, which is the platform on which the system executes. For real-time and embedded systems, the target environment is often smaller and simpler than the development environment e. Organizational needs and requirements change during the lifetime of a system, bugs have to be repaired and systems have to adapt to changes in their environment. Change management is intended to ensure that system evolution is a managed process and that priority is given to the most urgent and cost-effective changes.

The change management process is concerned with analyzing the costs and benefits of proposed changes, approving those changes that are worthwhile and tracking which components in the system have been changed.

In some agile methods, customers are directly involved in change management. The propose a change to the requirements and work with the team to assess its impact and decide whether the change should take priority over the features planned for the next increment of the system. Changes to improve the software improvement are decided by the programmers working on the system.

Refactoring, where the software is continually improved, is not seen as an overhead but as a necessary part of the development process. A system release is a version of a software system that is distributed to customers. For mass market software, it is usually possible to identify two types of release: major releases which deliver significant new functionality, and minor releases, which repair bugs and fix customer problems that have been reported. A version control system provides a means for monitoring those changes as they occur.

Automated systems will notify those responsible for managing the IP in project outputs. These notifications, coupled with the logs provided for each individual modification, allow project managers to monitor and trace all contributions. Open development demands care concerning the provenance of the contributions. Open development projects need to follow best practice in this area. If an IP violation is found to have occurred, the version control system can be used to determine the extent of the contamination which files were affected by the problematic change , who performed the change and when they performed it.

A version control system can even be used to recover the last uncontaminated version of the software. Version control systems can also be used to establish precedence, when there is a dispute regarding the ownership of code or ideas. Examples Version control has been closely studied and understood in the software engineering community for several decades. The solutions are stable, robust and well-supported.

There are various systems suitable for small local teams and for large distributed teams, making them ideal for coordinating software development, and particularly mitigating differences in culture and timezone. A number of comparisons of different systems are available. Version control is provided at sites such as SourceForge and Google Code. These sites typically build a suite of services around version control: archiving, release downloads, mailing lists, bug trackers, web hosting and build farms.

This range of functionality makes them particularly attractive for those projects that do not have the resources to maintain their own server for version control. CVS was, and perhaps still is, the most widely used open source version control system. It is commonly used in open source projects, but newer open source version control systems such as Arch and Subversion have made significant inroads.

The basic capabilities of these systems are very similar, but they offer different security, networking and abstraction functionality, and different licences. There are also many proprietary solutions available from a range of suppliers. Version Control is part of Configuration Management. Whereas Configuration Management is concerned with managing all of the individual items, and all of the items as a whole System. Software exists in two forms; non-executable source code and executable code object code.

When errors are found in the software, changes may be required to be made to the source code. When this situation occurs, it is imperative to be able to identify which version of code to change. There may also arise a situation where two Developers need to make changes to the code. If the Developers are unaware of the other updating the version, then both updated versions could be saved causing lost changes or worse. Also, Testers may not be aware of which version of code to test with causing further problems.

When testing is complete, a Test Leader will need to demonstrate that the testing has been completed on a specific version of code, a necessity to ensure correct test coverage. It is not only software and hardware components that need to be controlled, but also documentation, as project members will need to ensure they work from the correct versions. Details such as version and status may be recorded. May be am not used to most of the technical words you have used.

I request you to clarify me in a simple way for my questions. So please let me know how can i relate it to your definition. Also what is meant by version control and how is it a part of CM? Thanks, Suhasini. Please Turn OFF your ad blocker. Learn More. Difference between Configuration Management and Version Control.

Interview Candidate Apr 11th, 3 QA Testing. First Prev Next Last. Showing Answers 1 - 3 of 3 Answers. Sreekanth Reddy Lingala Jun 20th, Configuration Management consists of the following four parts: Configuration Identification Configuration Control Status Accounting Configuration Auditing Configuration Identification This is the process of identifying all of the individual items that will be subject to version control within the project.

Configuration Control This activity ensures that any changes are controlled and monitored. Status Accounting This is the process of recording and reporting on the current status of the item. Configuration Auditing Configuration Auditing is used to ensure that the control process that is used is being correctly adhered to. Give your answer: If you think the above answer is not correct, Please select a reason and add your answer below.



0コメント

  • 1000 / 1000