SVN in Software Configuration Management

Source: Internet
Author: User

SVN in Software Configuration Management

I. Introduction

1. What is Software Configuration Management?

Software Configuration Management refers to implementing version control, change control procedures, and using appropriate configuration management software to ensure the integrity and traceability of all configuration items. Configuration Management is an effective protection of work results.

2. Why is configuration management required?

Without Software Configuration Management, the biggest trouble is that work results cannot be traced back. As work progresses, new programs overwrite old ones. What should I do when I suddenly find that new programs are faulty and old programs are correct? You can only rewrite the old program to overwrite the new one. After a while, I found that there was a problem with the old program, and the solution was in the new program ...... Are you going crazy.

To avoid overwriting results, many people, including myself, used manual version management in the early days, for example, when a new version is generated, the folder size is named by the date at that time, and then the subsequent changes are copied in the copied folder, so that the previous version is saved, different versions are not overwritten. Although this method can solve the version tracing problem to some extent, its shortcomings are obvious: First, if the result is retained too frequently, this will lead to a large number of folders with duplicate content, a large physical space, and difficult to manage. If the old version is retained for a long time, some useful old programs may not be traceable. Taking the program I recently developed for example, the program only has dozens of megabytes. After one year of development, each version has accumulated to 1 GB. Second, it is easy to generate version chaos. If it is a team that develops software, this simple method is more difficult to solve the essence of the problem.

3. Human problems

The configuration management method is mature, and the corresponding software tools are also mature. Basically, there is no problem that cannot be understood or used. What is the effect of Configuration Management. The main problem that hinders configuration management is that people are too troublesome and lucky.

Running version control seems a little troublesome without any issue. GetLatest Version is always required for each modification, and Check Out. After the modification, Check In is performed again. Three more steps are required. In fact, these three steps add up to more than 10 seconds, and there is no need to worry about it. It's just that my personal experience is uncomfortable. If you do not execute version control, it will be too much trouble if your work results are overwritten or lost.

4. Software Configuration Management specifications

The software development and management process produces a lot of work results, such as documents, procedures and data, which should be kept properly for access and modification. It is very troublesome to use all files in a computer.

All work results included in the configuration management scope are collectively referred to as configuration items in two main categories: one is part of the product, such as requirement documents, design documents, source code, test cases, and so on; the other is the documents generated during the management process, such as various plans and reports. The main attributes of each configuration item include name, identifier, File status, version, author, date, and so on. Configuration items and historical records reflect the software evolution process.

The purpose of version control is to save all versions of a configuration item according to certain rules to avoid version loss or confusion. There are three statuses for configuration items: "draft", "officially released", and "modifying"

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

(1) the version number of a configuration item in the draft state is in the format of 0.YZ.

(2) the version number of a configuration item in the "officially released" status is in the format of X.Y. Generally, the value of X changes only when the value of Y reaches a certain range.

(3) the version number of a configuration item in the "modifying" status is in the format of X. YZ. Generally, only the Z value is increased. When the configuration item is modified and the status changes to "official release", the Z value is changed to 0 and the X.Y value is increased.

Ii. First knowledge of SVN

1. Before performing source code version control on TortoiseSvn (Administrator client) + AnkhSvn (VS2008 plug-in) + VisualSvn Server (Version Control Server), you must first understand Subversion (Svn ).

Svn (Subversion) is a version management tool that has emerged in recent years and is the successor of CVS. Currently, most open-source software uses Svn as the code version management software.

Svn Client

There are two types of Subversion clients: web-based clients such as webSvn and client software represented by TortoiseSvn. The former requires the support of the web server, and the latter requires the user to install the client locally.

Svn Server

Subversion supports linux and windows, and is mostly installed in linux.

Svn servers can run in two ways: independent servers and apache. The two methods have their own advantages and disadvantages.

Svn also stores version data in two ways: BDB and FSFS. Because BDB may lock data when the server is interrupted, it is safer to use FSFS.

Visual SVN and visual SVN Server

Visual Svn is a Svn client that is integrated with Visual Studio, but is a commercial software and charged. Visual Svn Server is a Windows-based Subversion Server and is free of charge. It includes Subversion, Apache, and a corresponding management interface. Therefore, we recommend that you use the free TortoiseSvn client and the VS plug-in AnkhSvn.

Why Svn instead of Vss?

Similarities: source code management can be integrated in VS2008 to allow full Intranet development.

Difference: Vss is based on the "Lock-edit-unlock" mode. One drawback of this mode is that when others are editing the relevant unit file, the unit file is locked, others can only be in the waiting state if they want to edit this unit file. Later, in continuous integration, I used the Subversion to replace Vss. The Subversion is based on the "Modify-conflict-merge" mode. That is to say, multiple people can simultaneously check out a unit file, edit it, and submit it, if multiple users modify a row of the same file, a conflict occurs and the conflict is resolved manually.

For Internet development and offline development, visual SVN is better than Vss.

Why do I use the VisualSvn Server instead of the Subversion?

If you use Subversion directly, in Windows, to enable it to start with the system, you must encapsulate Svn Server as the windws service and modify the configuration file to control user permissions, in addition, if you want to access Apache through the Web [http protocol], you must install and configure Apache. If you are a newbie, isn't it a headache? While VisualSvn Serve integrates Subversion and Apache, saving all the above troubles. During installation, the Svn Server is encapsulated as the windws service, and the configuration of the Apache Server is only on the image interface, specifying authentication methods, access ports, and other simple operations. In addition, user permission management is also configured through the image interface.

VisualSvnServer is completely open-source and free. Of course, its official client (VisualSvn) is not free, but it does not matter. There are too many free versions of the VisualSvn Serve client for us to choose from, tortoiseSvn is a good choice.

2. TortoiseSvn is a free open-source client of the Subversion version Version Control System, which can manage files and directories over time. Files are stored in the central version library. Apart from remembering every modification to files and directories, the version library is very similar to a common file server. You can restore the file to a previous version, and check the history to find out which modifications have been made and who has made the changes. This is why many people regard the Subversion and version control system as a "time machine ".

3. AnkhSVN is a plug-in for managing Subversion in VS. You can easily submit, update, and add files in VS instead of submitting files in command line or resource manager. The plug-in is an open-source project.

Iii. Study Summary

After studying software management, I have understood the necessity and importance of software management as a whole, and solved the version backtracking problem in the design process to a great extent. It is very important for the designers to consider it, this is also the necessity for everyone to learn. Good management methods make our project design process more flexible and diversified. Compared with SVN, learning is comparatively abstract. I just installed the software and watched the teaching video. I haven't used it yet. Let's get to know SVN from practice in the next time!

Set up SVN server svn in Ubuntu 14.04 ://

CentOS 6.2 SVN setup (YUM installation)

Deploy Apache + SVN in CentOS 6.5

Build an SVN server using Apache + SVN

Set up and use the SVN server in Windows + reset the password on the client

Install SVN in Ubuntu Server 12.04 and migrate Virtual SVN data

Build svn service and migration method on Ubuntu Server

This article permanently updates the link address:

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.