（简称**SVN**，svn），一個开放源代码的版本控制系統，相较于RCS、CVS，它採用了分支管理系統，它的設計目標就是取代CVS。互聯網上很多版本控制服務已从CVS转移到Subversion。

历史
--

CollabNet（英语：）于2000年创建SVN项目，意在写出一款近似CVS操作方式的版本控制系统。只不过，此款产品针对CVS的bug和一些缺失的功能，进行了修正和补充。

2000年2月，他们联系了Open Source Development with CVS（Coriolis, 1999）的作者Karl Fogel，问他是否愿意为这个新專案工作。巧的是这时Karl已经在和他的朋友Jim Blandy讨论一个新的版本控制系统的设计。在1995年，两人开了一家提供CVS技术支持的公司，叫作Cyclic Software。虽然公司已经卖掉了，他们仍然在日常工作中使用CVS。在使用CVS时受到的束缚已经让Jim开始仔细思考管理版本化数据的更好的路子。他不仅已经起好了名字"Subversion"，而且有了Subvesion资料库的基本设计。当CollabNet打来电话时，Karl立刻同意为这个專案工作。Jim征得他的老板RedHat Software的同意，让他投入这个專案，而且没有时间限制。CollabNet雇用了Karl和Ben Collins-Sussman，从5月份开始详细设计。由于Greg Stein和CollabNet的Brian Behlendorf和Jason Robbins作了恰当的推动，Subversion很快吸引了一个活跃的开发人员社群。这说明了许多人有相同的受制于CVS的经验，他们对终于有机会对它做点什么表示欢迎。

最初的设计团队设定了几个简单的目标。他们并不想在版本控制方法论上有新突破。他们只想修补CVS。他们决定Subversion应该与CVS相似，保留相同的开发模型，但不复制CVS最明显的缺点。虽然它不一定是CVS的完全的替代品，但它应该和CVS相似，从而任何CVS用户可以不费什么力气的转换过来。

经过14个月的编码，在2001年8月31号，Subversion可以"自我寄生"了。就是说，Subversion开发人员停止使用CVS管理Subversion的源代码，开始使用Subversion代替。

虽然CollabNet发起了这个项目，而且仍然资助一大部分的工作（它为一些专职的Subversion开发人员发薪水）。但是Subversion像大部分开放源码的项目一样运作，由一个松散透明，鼓励能者多劳的规则管理。CollabNet的版权许可证和Debian FSG完全兼容。换句话说，任何人可以免费下载，修改，按自己的意愿重新分发Subversion，而不必得到来自CollabNet或其他任何人的许可。

2009年11月，Subversion被Apache Incubator專案所接收。

2010年1月，正式成為Apache软件基金会的一個頂級專案。

特性
--

* 统一的版本号。CVS是对每个文件顺序编排版本号，在某一时间各文件的版本号各不相同。而Subversion下，任何一次提交都会对所有文件增加到同一个新版本号，即使是提交并不涉及的文件。所以，各文件在某任意时间的版本号是相同的。版本号相同的文件构成软件的一个版本。
* 原子提交。一次提交不管是單個還是多個文件，都是作為一個整體提交的。在這當中發生的意外例如傳輸中斷，不會引起數據庫的不完整和數據損壞。
* 重命名、複製、刪除文件等動作都保存在版本歷史記錄當中。
* 對於二進制文件，使用了節省空間的保存方法（簡單的理解，就是只保存和上一版本不同之處）。
* 目錄也有版本歷史。整個目錄樹可以被移動或者複製，操作很簡單，而且能夠保留全部版本記錄。
* 分支的開銷非常小。
* 最佳化過的數據庫訪問，使得一些操作不必訪問數據庫就可以做到。這樣減少了很多不必要的和數據庫主機之間的網絡流量。
* 支持元数据（Metadata）管理。每个目录或文件都可以定义属性（Property），它是一些隐藏的键值对，用户可以自定义属性内容，而且属性和文件内容一样在版本控制范围内。
* 支持FSFS和Berkeley DB两种资料库格式。

企业级subversion
-------------

### Subversion Multisite

对于企业级应用，subversion还有其先天不足，比如对于多个地点的并行开发。Wandisco公司为此开发了subversion multisite，实现异地对等服务器自动同步，支持并行开发以及异地备份。

### 基于Subversion的ALM平台——UberSVN

ALM（Application Lifecycle Management）是软件配置管理的未来趋势，各种软件版本工具包括subversion都要集成到其中。目前UberSVN是唯一的以Subversion为基础构建的ALM平台，并实现了协同开发以及社交化编码。

不足
--

* 只能设置目录的访问权限，无法设置单个文件的访问权限（目前可以通过辅助模块比如wandisco access control实现单文件访问）。
* 数据库为二进制格式，无法方便的利用其它软件读取数据库的内容。

使用情況
----

雖然在2006年Subversion的使用族群仍然遠少於傳統的CVS，但已經有許多開放團體決定將CVS轉換為Subversion。已經轉換使用Subversion的包括了FreeBSD、Apache Software Foundation、KDE、GNOME、GCC、Python、Samba、Mono以及許多團體。許多開發團隊換用Subversion是因為Trac、SourceForge、CollabNet（英语：）、CodeBeamer等專案協同作業軟體以及Eclipse、NetBeans等IDE提供Subversion的支援整合。除此之外，一些自由軟體開發的協作網如SourceForge.net除了提供CVS外，現在也提供專案開發者使用Subversion作為源代码管理系統，JavaForge、Google Code以及BountySource（英语：）則以Subversion作為官方的源代码管理系統。

2009年，绝大多数CVS服务已经改用SVN。此时CVS早已经停止维护。不过CVS也有了合适的替代品。

SVN客户端圖形化軟體
-----------

### TortoiseSVN

在windows非常受到歡迎的一套客户端軟體，它與檔案總管整合得相當不錯，可以透過檔案總管在檔案或目錄上用滑鼠右鍵的選單完成SVN的操作。
TortoiseSVN官方網站（页面存档备份，存于）

### SnailSVN

Mac OS X 平台下类似 TortoiseSVN 的图形化 SVN 客户端，可自动标记文件状态，并通过右键菜单提供各种常用 SVN 功能。
下载 SnailSVN (Mac App Store)（页面存档备份，存于）

### Ankhsvn

將subversion的操作整合進Visual Studio的SVN 客户端軟體。
Ankhsvn官方網站（页面存档备份，存于）

### Subclipse

將Subversion的操作整合進Eclipse的SVN 客户端軟體。
Subclipse官方網站（页面存档备份，存于）

### Subversive

和Subclipse相同。
Subversive官方網站（页面存档备份，存于）

### SCPlugin

Mac OS下類似TortoiseSVN的軟體。
SCPlugin官方網站（页面存档备份，存于）

### SVNx

Mac OS X下的一款客户端軟體。
SVNx官方網站（页面存档备份，存于）

### eSVN

Unix下類似TortoiseSVN的軟體。
eSVN官方網站（页面存档备份，存于）

### kdesvn

Linux下使用KDE桌面管理下類似TortoiseSVN的軟體。
kdesvn官方網站

### RabbitVCS

Linux下使用Gnome桌面管理下類似TortoiseSVN的軟體。
RabbitVCS官方網站（页面存档备份，存于）

### GTalkabout

Windows下整合了討論功能的客户端軟體。
GTalkabout官方網站（页面存档备份，存于）

外部連結
----

* Subversion官方網站（页面存档备份，存于）
	+ Subversion舊官方網站（页面存档备份，存于）

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
Apache软件基金会 |
| --- |
|  |
| 顶级项目 | 
* Abdera（英语：）
* Accumulo（英语：）
* ActiveMQ
* Ambari（英语：）
* Ant
* Aries（英语：）
* Apache Arrow
* Apache HTTP Server
* APR
* Avro
* Axis
* Axis2
* Beam
* Bloodhound（英语：）
* Apache Brooklyn（英语：）
* Buildr（英语：）
* Calcite（英语：）
* Camel
* Cassandra
* Cayenne（英语：）
* Chemistry（英语：）
* CloudStack（英语：）
* Cocoon（英语：）
* Continuum（英语：）
* Cordova
* CouchDB
* cTAKES（英语：）
* CXF
* Deltacloud（英语：）
* Derby
* Directory（英语：）
* Drill（英语：）
* Empire-db（英语：）
* ECharts
* Felix（英语：）
* Flex
* Flink
* Flume（英语：）
* Forrest（英语：）
* Geronimo（英语：）
* Gora（英语：）
* Gump（英语：）
* Hadoop
* Hama（英语：）
* HBase
* Hive
* Jackrabbit（英语：）
* James（英语：）
* JMeter（英语：）
* Kafka
* Karaf（英语：）
* Kylin（英语：）
* Lucene
* Lenya（英语：）
* Mahout（英语：）
* Marmotta（英语：）
* Maven
* MINA（英语：）
* mod\_perl（英语：）
* MyFaces（英语：）
* Nutch（英语：）
* ODE（英语：）
* OFBiz（英语：）
* Oozie（英语：）
* OpenEJB（英语：）
* OpenJPA（英语：）
* OpenNLP
* OpenOffice
* PDFBox（英语：）
* Phoenix（英语：）
* POI
* Pig（英语：）
* Pivot（英语：）
* Qpid（英语：）
* River（英语：）
* Roller（英语：）
* RocketMQ
* Samza（英语：）
* ServiceMix（英语：）
* Shindig（英语：）
* Shiro
* Sling（英语：）
* Spark
* Stanbol（英语：）
* Storm
* SpamAssassin
* Sqoop
* Apache C++标准库（英语：）
* Struts
* Struts 2
* Subversion
* Tapestry
* Thrift
* Tiles（英语：）
* Tika（英语：）
* Tomcat
* Trafficserver
* Turbine
* Tuscany
* UIMA
* Velocity
* Wave
* Wicket
* Wink（英语：）
* Xalan（英语：）
* Xerces（英语：）
* XMLBeans（英语：）
* ZooKeeper

 | ASF logo |
|  |
| Commons项目 | 
* Apache Commons Logging（英语：）
* BCEL（英语：）
* BSF（英语：）
* Commons Daemon（英语：）
* Jelly（英语：）

 |
|  |
| Lucene项目 | 
* Lucene Java
* Lucene.Net（英语：）
* Nutch（英语：）
* Solr

 |
|  |
| Hadoop项目 | 
* HBase
* HDFS

 |
|  |
| 其他项目 | 
* Batik
* Chainsaw（英语：）
* FOP
* Log4j
* XAP（英语：）
* Log4Net
* Ivy（英语：）

 |
|  |
| 孵化器项目 | 
* XAP（英语：）
* Samza（英语：）
* Storm

 |
|  |
| Apache Attic | 
* AxKit（英语：）
* Beehive（英语：）
* Click（英语：）
* Bluesky（英语：）
* Cactus（英语：）
* Jakarta
* Excalibur（英语：）
* Harmony
* HiveMind（英语：）
* Lenya（英语：）
* Slide（英语：）
* Shale（英语：）
* Shindig（英语：）
* stdcxx（英语：）
* iBATIS
* XMLBeans（英语：）

 |
|  |
| 许可证标准 | 
* Apache许可证

 |
|  |
| 
* 分类 **分类**
* 共享资源页面 **维基共享**

 |

 |

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
版本控制软件 |
| --- |
|  |
| 年代是指第一次發行的穩定版本, *斜体*表示軟體不再維護。 |
|  |
| 主從式架構 | 

|  |  |
| --- | --- |
| 自由軟體 | 
* SCCS（英语：） (1972)
* RCS（英语：） (1982)
* CVS (1990)
* CVSNT（英语：） (1998)
* Subversion (2000)

 |
|  |
| 私有軟體 | 
* CCC/Havest（英语：） (1970s)
* ClearCase（英语：） (1992)
* *Microsoft Visual SourceSafe* (1994)
* Perforce（英语：） (1995)
* Team Foundation Server (2005)

 |

 |  |
|  |
| 分散式控制 | 

|  |  |
| --- | --- |
| 免费或自由软件 | 
* *GNU arch* (2001)
* Darcs（英语：） (2002)
* DCVS（英语：） (2002)
* *SVK* (2003)
* Monotone (2003)
* *Codeville（英语：）* (2005)
* Git (2005)
* Mercurial (2005)
* GNU Bazaar (2005)
* Fossil (2007)

 |
|  |
| 商业软件 | 
* *Sun WorkShop TeamWare（英语：）* (1990年代?)
* Code Co-op（英语：） (1997)
* BitKeeper (1998)

 |

 |
|  |
| 概念 | 
* 基準
* 變更集
* 分支
* 復刻
* 提交
* 差分編碼
* diff
* 合并
* 标签
* 主幹
* 仓库

 |
|  |
| 
* 列表（英语：）
* 比較

 |

 |