SVN in Software configuration management

Source: Internet
Author: User

I. INTRODUCTION

1. What is software configuration management

Software configuration management refers to the implementation of versioning, change control procedures, and the use of appropriate configuration management software to ensure the integrity and traceability of all configuration items. Configuration management is an effective protection of the work result.

2. Why configuration management is required

Without software configuration management, the biggest trouble is that the results of the work cannot be traced back. As work progresses new programs cover older programs, what do you do when you suddenly find a problem with the new program and the old program is correct? That can only rewrite the old program to overwrite the new program. After some time and found that the old program has problems, and the solution in the original new program ... Are you going crazy?

In order to avoid the results being covered, many people, including myself, were early adopters of manually managed versions, such as when a new version was created with the date that was used to name the folder, and then copied the subsequent changes in the copied folder, so that the previous version was saved. The different versions of the cycle will not be overwritten. Although this approach can somehow solve the version backtracking problem, his shortcomings are obvious: 1th if the retention results are too frequent, it will result in a large number of folders with duplicate content, huge physical space, management is cumbersome; If the time interval for keeping the old version is too long, May produce some useful old programs that cannot backtrack. With a program I developed recently, the program is only dozens of trillion, after a year of development of each version accumulated to 1G. The second easy version of the confusion, if the team to develop software, this simple method is more difficult to solve the essence of the problem.

3. People's Problems

The method of configuration management is mature, and the corresponding software tools are mature, there is basically no problem that can not be understood or used. The performance of configuration management is completely there is nothing. The main problem that hinders the management of configuration is that people are too troublesome and lucky.

In the event of a problem, versioning looks a bit cumbersome. Every time you modify the work is always to Getlatest Version, then check out, modified after the check in, more than three steps. In fact, these three steps add up to more than 10 seconds, and do not charge the brain, there is no added much trouble, just a personal feeling uncomfortable and. Without versioning, however, there is a big problem in the event that work is overwritten or lost.

4. Specification of software Configuration management

The software development and management process will produce a lot of work results, such as documents, procedures and data, and they should be properly kept in order to review and modify. If all the files are plugged into the computer, it is troublesome to use them.

There are two major categories of work that are included in the Configuration management category: One is part of a product, such as a requirement document, a design document, a source code, a test case, and so on, and a document that is generated during the management process, such as various plans, reports, etc. The primary properties for each configuration item are name, identifier, file status, version, author, date, and so on. Configuration items and historical records reflect the evolutionary process of the software.

Version control is designed to save all versions of a configuration item according to certain rules, avoiding the occurrence of a version loss or confusion. There are three statuses for configuration items: Draft, official release, and modifying

The version number of the configuration item is closely related to the state of the configuration item:

(1) The version number of the configuration item in the "Draft" state is in the format: 0. YZ

(2) The version number of the configuration item in the "official release" state is: x.y. Generally only the Y value is incremented, and the X value changes when the Y value reaches a certain range.

(3) The version number format of the configuration item in the "Modifying" state is: X.yz. Generally only increases the z-value, when the configuration item is modified, the state becomes "official release", the z-value is changed to 0, increasing the x.y value.


Two. First knowledge of SVN

1. Before TortoiseSVN (Administrator Client) + ANKHSVN (VS2008 plugin) +VISUALSVN Server (version control server) for source code versioning, it is necessary to understand the following subversion (SVN).

SVN (Subversion) is a version management tool that has risen in recent years and is the successor to CVS. Currently, most open source software uses SVN as the code version management software.

SVN client

There are two types of subversion clients, such as WEBSVN, Web-based, and client software represented by TORTOISESVN. The former requires support from the Web server, which requires the user to install the client locally.

SVN server

Subversion supports Linux and Windows, and more is installed under Linux.

SVN server has 2 modes of operation: Standalone server and Apache. There are pros and cons to each of the 2 ways.

SVN stores version data in 2 different ways: BdB and Fsfs. Because the BDB mode is likely to lock the data when the server is interrupted, it is safer to fsfs the way.

VISUALSVN, VisualSVN Server

VISUALSVN is a client of SVN, integrates with VisualStudio, but is commercial software, charges, VISUALSVN server is based on the Subversion server on the Windows platform, it is free. He specifically includes subversion, Apache, and a corresponding management interface. So it is recommended to use the free TORTOISESVN client and the VS plugin ankhsvn.

Why use SVN instead of VSS?

The same point: can be integrated in the VS2008 under the source code control, can be fully developed intranet.

The difference: VSS is based on the "lock-edit-unlock" mode, which has a disadvantage, that is, when other people editing the relevant unit file, the unit file is locked, others if you want to edit the unit file, can only wait. Later in the continuous integration I used the Subversion substitution vss,subversion is based on "modify-conflict-merge" a pattern, that is, many people can check out a unit file at the same time, edit and then submit, if more than one person has modified a row of the same file, there will be a conflict , resolve conflicts manually.

With Internet development, and offline development, VISUALSVN will be better than VSS.

Why use VISUALSVN Server instead of subversion directly?

Because if subversion is used directly, then on a Windows system, if you want it to boot with the system, you need to encapsulate the SVN server as the WINDWS service, and modify the configuration file to control the user rights, in addition to the Web-based "HTTP protocol" Access, general also install the configuration Apache, if is novice, is not very headache? and VISUALSVN serve integrates subversion and Apache, eliminating all of the hassle. Installation of SVN server has been encapsulated as WINDWS Service,apache server configuration is only in the image interface, specifying authentication methods, access ports and other simple operations, in addition, the management of user rights is also configured through the image interface.

Visualsvnserver is completely open source and free of charge, of course its official client (VISUALSVN) is not free, but it doesn't matter, VISUALSVN serve client has too many free version for us to choose, TortoiseSVN is a good choice.

2.TORTOISESVN is a free open source client of Subversion version control system that can manage files and directories beyond the time. Files are saved in the central repository, and the repository is very much like a normal file server, except that you can remember every modification of the file and directory. You can restore files to a previous version, and you can check the history to see what changes were made to the data and who made the changes. That's why many people regard Subversion and version control systems as a "time machine."

3.AnkhSVN is a plug-in that manages subversion in VS, and you can easily submit, update, and add files in VS without submitting them in the command line or in Resource Manager. and the plugin belongs to an open source project.


Three. Learning Summary

Through the study of software management, from the overall understanding of the necessity and importance of software management, to a large extent, to solve the design process of version backtracking, is for designers to consider, which is the need for everyone to learn. There are good management methods that make our project design process more flexible and diversified. And compared to the SVN study is more abstract, just loaded the software and look at the teaching of video, has not been used, the next time, from the practice to know the SVN bar!


Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.

SVN in Software configuration management

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.