Subversion (SVN for short) is an open source version control system. Compared with RCS and CVS, it adopts a branch management system. Its design goal is to replace CVS.

Subversion

( SVN , svn for short) is an open source version control system. Compared with RCS and CVS, it adopts a branch management system. Its design goal is to replace CVS. Many version control services on the Internet have moved from CVS to Subversion.

Subversion
Developer Apache Software Foundation
Initial Release October 20, 2000
current version 1.14.2 (April 12, 2022) [±]
Source code repository
programming language C
operating system Cross-platform
type version control
agreement Apache license
website subversion.apache.org

history

CollabNet created the SVN project in 2000 with the intention of writing a version control system similar to the way CVS operates. However, this product has been corrected and supplemented for CVS bugs and some missing functions.

In February 2000, they contacted Karl Fogel, author of Open Source Development with CVS (Coriolis, 1999), and asked him if he would be willing to work on this new project. Coincidentally, Karl was already discussing the design of a new version control system with his friend Jim Blandy. In 1995, the two opened a company called Cyclic Software to provide CVS technical support. Although the company has been sold, they still use CVS in their daily work. The constraints of using CVS had Jim thinking carefully about better ways to manage versioned data. Not only did he already have the name "Subversion", but he also had the basic design of the Subvesion database. When CollabNet called, Karl immediately agreed to work on the project. Jim asked his boss, RedHat Software, for permission to work on this project without any time limit. CollabNet hired Karl and Ben Collins-Sussman to begin detailing the design in May. With the right push from Greg Stein and CollabNet's Brian Behlendorf and Jason Robbins, Subversion quickly attracted an active developer community. It's telling that many people have had the same experience of being stuck with CVS, and they welcome the opportunity to finally do something about it.

The original design team set a few simple goals. They don't want to break new ground in version control methodology. They just want to patch CVS. They decided that Subversion should be similar to CVS, retaining the same development model but not replicating CVS's most obvious shortcomings. Although it is not necessarily a complete replacement for CVS, it should be similar to CVS so that any CVS user can switch over with little effort.

After 14 months of coding, on August 31, 2001, Subversion was able to "self-parasitize". That is, Subversion developers stopped using CVS to manage Subversion source code and started using Subversion instead.

Although CollabNet initiated the project and still funds a large portion of the work (it pays salaries for a number of dedicated Subversion developers). But Subversion operates like most open source projects, governed by a loose and transparent rule that encourages those who can do more. CollabNet's copyright license is fully compatible with Debian FSG. In other words, anyone is free to download, modify, and redistribute Subversion as they see fit without having to get permission from CollabNet or anyone else.

In November 2009, Subversion was accepted into the Apache Incubator project.

In January 2010, it officially became a top-level project of the Apache Software Foundation .

characteristic

  • Unified version number. CVS sequentially arranges version numbers for each file, and the version numbers of each file at a certain time are different. Under Subversion, any submission will add the same new version number to all files, even files not involved in the submission. Therefore, the version number of each file at any time is the same. Files with the same version number constitute one version of the software.
  • Atomic commit. Whether a single file or multiple files are submitted at a time, they are submitted as a whole. Accidents such as transmission interruptions will not cause database incompleteness and data damage.
  • Actions such as renaming, copying, and deleting files are saved in version history.
  • For binary files, a space-saving saving method is used (simply understood, only the differences from the previous version are saved).
  • Directories also have a version history. The entire directory tree can be moved or copied easily, and all version records can be retained.
  • Branching has very little overhead.
  • Optimized database access allows some operations to be performed without accessing the database. This reduces a lot of unnecessary network traffic between the database host and the database host.
  • Support metadata management. Each directory or file can define properties (Property), which are some hidden key-value pairs. Users can customize the property content, and the properties are within the scope of version control like the file content.
  • Supports both FSFS and Berkeley DB database formats.

Enterprise level subversion

Subversion Multisite

For enterprise-level applications, subversion has its inherent shortcomings, such as parallel development in multiple locations. Wandisco has developed subversion multisite for this purpose, which enables automatic synchronization of remote peer servers and supports parallel development and remote backup.

ALM platform based on Subversion - UberSVN

ALM (Application Lifecycle Management) is the future trend of software configuration management, and various software version tools including subversion must be integrated into it. Currently, UberSVN is the only ALM platform built on Subversion and realizes collaborative development and social coding.

insufficient

  • Only the access permissions of the directory can be set, and the access permissions of individual files cannot be set (currently, single file access can be achieved through auxiliary modules such as wandisco access control).
  • The database is in binary format, and other software cannot be used to easily read the contents of the database.

Usage

Although the number of users of Subversion in 2006 is still far smaller than that of traditional CVS, many open groups have decided to convert CVS to Subversion. Those that have converted to Subversion include FreeBSD , Apache Software Foundation , KDE , GNOME , GCC , Python , Samba , Mono , and many other groups. Many development teams switch to Subversion because project collaboration software such as Trac , SourceForge , CollabNet, CodeBeamer, and IDEs such as Eclipse and NetBeans provide support and integration for Subversion. In addition, some free software development collaboration networks such as SourceForge.net , in addition to providing CVS, now also allow project developers to use Subversion as the source code management system. JavaForge, Google Code and BountySource use Subversion as the official source code management system. system.

In 2009, the vast majority of CVS services have switched to SVN. At this time, CVS has already stopped maintenance. But CVS also has suitable alternatives.

SVN client graphical software

TortoiseSVN

It is a very popular client software in Windows. It integrates quite well  with the file manager . You can use the right-click menu of the file or directory to complete SVN operations through the file manager. TortoiseSVN official website ( page archive backup , stored in)

SnailSVN

A graphical SVN client similar to TortoiseSVN under the Mac OS X platform can automatically mark file status and provide various common SVN functions through the right-click menu. Download SnailSVN (Mac App Store) ( page archive backup , stored in)

Ankhsvn

Integrate subversion operations into Visual Studio's SVN client software. Ankhsvn official website ( page archive backup , stored in)

Subclipse

Integrate Subversion operations into Eclipse's SVN client software. Subclipse official website ( page archive backup , stored in)

Subversive

Same as Subclipse. Subversive official website ( page archive backup , stored in)

SCPlugin

Software similar to TortoiseSVN under Mac OS. SCPlugin official website ( page archive backup , stored in)

SVNx

A client software under Mac OS X. SVNx official website ( page archive backup , stored in)

eSVN

Software similar to TortoiseSVN under Unix. eSVN official website ( page archive backup , stored in)

everywhere

Under Linux, use software similar to TortoiseSVN under KDE desktop management. kdesvn official website

RabbitVCS

Under Linux, use software similar to TortoiseSVN under Gnome desktop management. RabbitVCS official website ( page archive backup , stored in)

GTalkabout

Client software that integrates discussion functions under Windows. GTalkabout official website ( page archive backup , stored in)

external link

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.

Guess you like

Origin blog.csdn.net/weixin_40191861/article/details/133010849