Version control is the art of managing changing information. For a long time, it has been a vital tool for programmers who usually spend time making small changes to programs, and at one point roll back changes by going back to the previous version. However, the usefulness of version control systems goes far beyond the world of software developers. Version control is required wherever you can meet people using a computer to work with constantly changing information. That’s when Subversion comes on the scene.
what is Subversion?
Subversion is a free and open source version control system. Subversion allows you to manage files and directories in time. The file tree is placed in a central repository, which is similar to a regular file server with the difference that it remembers every change made to a file or directory. This allows you to restore early versions of data, to investigate the history of data changes. Due to this, many consider the version control system to be a kind of “time machine”.
Subversion accesses the storage over the network, which allows it to be used on different computers. In the absence of a single controlling link through which all changes must pass, the work becomes more efficient. At the same time, there is no need to fear that the rejection of the controlling link will affect the quality, because thanks to the preservation of the version history, even if erroneous changes are made to the data, it is always possible to roll back the changes to the previous state.
Some version control systems also act as software configuration management systems. Such systems are specially designed to manage source code trees and have many features directly related to software development: they understand programming languages and provide tools for building programs. Subversion is not such a system, it is a general purpose system that can be used to manage any set of files. Your files may be source code, but for someone it will be something else, such as grocery store shopping lists or combined digital videos.
basic concepts
This section is a brief, intermediate introduction to Subversion. If version control is new to you, then this section is especially for you.
Despite the fact that the examples in this chapter show people sharing a set of program sources, remember that Subversion can manage a set of files of any type — it is not limited to helping programmers.
storage
Subversion is a centralized system for separating information. It is based on a repository containing information in the form of a file tree — a typical representation of files and directories. Any number of clients connect to the storage and read or write these files. By writing data, the client makes the information available to others; by reading the data, the client receives information from others. Figure 1 illustrates this.