What is the difference between configuration management and version control?

别来无恙 提交于 2019-12-20 08:57:12

问题


Can anyone explain in simple terms what the difference is between configuration management and version control? From the descriptions I've been able to find on various websites, it seems like configuration management is just a fancy term for putting your config files in a source control repository. But others lead me to believe there is a more involved explanation.


回答1:


Version control is necessary but not sufficient for configuration management. Version control happens in some central or distributed repository, but says nothing about where any particular version is deployed or used.

Configuration management worries about how to take what is in version control and deploy that consistently to the appropriate places, primarily QA and production, but in a large enough development operation developers as well.

For example, you may keep all of your SQL queries in version control, including your table modification scripts, but that doesn't control when those scripts are deployed to the appropriate database server and kept in sync with the deployment of any other code that relies on that database structure.




回答2:


Configuration management includes, but is not limited to, version control.

Configuration management is everything that you need to manage in terms of a project. This includes software, hardware, tests, documentation, release management, and more. It identifies every end-user component and tracks every proposed and approved change to it from Day 1 of the project to the day the project ends.

Version control is specifically applied to computer files. This includes documents, spreadsheets, emails, source code, and more.




回答3:


Version control is saving files and keeping different versions of them, so you can see the change over time.

Configuration management is generally referred to as an overall process of which keeps track of what version of the code is on what server, how the servers are setup (and the install scripts to do so at many places). It is how process of what happens after the code goes into source control and how gets to deployed to the servers/desktops etc.




回答4:


In addition to everything said above I'd like to recommend Bob Aiello's book named "Configuration Management Best Practices" - http://www.amazon.com/dp/0321685865 . It covers all aspects of Software Configuration Management including version control.




回答5:


Configuration management is an ambigute term.

In software, it tends to be a superset of version control with emphasis on the entire process to produce a result in a repeatable and predictible manner.

In computing maintenance, it is related to the maintenance of the configuration settings and hardware/firmware/software versions of entire networks and set of attached computing machines (including servers, clients, routers...).

In hardware manufacturing, it represents even a superset of the two above, including the hardware pieces and software modules needed to obtain a product, with the description of the process to manufacture them, and even sometime the entire schemas and configurations of the production lines themselves.




回答6:


Version control is the control of deliverables whereas configuration management is managing the entire process leading to produce the deliverables. Configuration management involves change management, project management, etc., which generally are not managed by simple version control.




回答7:


Roughly speaking, version control means you can check out the source for any particular version. Configuration management means you can build and deploy and probably test any particular version.




回答8:


This can be helpful.

Versions and configurations

Versions:

  • Ability to maintain several versions of an object.

  • Commonly found in many software engineering and concurrent engineering environments.

  • Merging and reconciliation of various versions is left to the application program

  • Some systems maintain a version graph

Configuration:

  • A configuration is a collection compatible versions of modules of a software system (a version per module)



回答9:


Version control is one of the features of a SCM system.

From the subversion user guide: http://svnbook.red-bean.com/en/1.7/svn-book.html

"Some version control systems are also software configuration management (SCM) systems. These systems are specifically tailored to manage trees of source code and have many features that are specific to software development—such as natively understanding programming languages, or supplying tools for building software. Subversion, however, is not one of these systems. It is a general system that can be used to manage any collection of files. For you, those files might be source code—for others, anything from grocery shopping lists to digital video mixdowns and beyond."



来源:https://stackoverflow.com/questions/1646120/what-is-the-difference-between-configuration-management-and-version-control

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!