不良人是什么| 老是拉肚子是什么原因| 婴儿吃手是什么原因| 为什么不建议开眼角| 男孩子断掌有什么说法| 日光性皮炎用什么药| hi是什么酸| 灰姑娘叫什么名字| 副肾是什么药名| 插科打诨是什么意思| 虾滑是什么| 什么是竖式计算| 减肥为什么让早上空腹喝咖啡| 健康证需要什么材料| 洁面慕斯和洗面奶有什么区别| 三栖明星是什么意思| 把子肉是什么| 羊水少了对宝宝有什么影响| 人脱水了会有什么表现| 诺什么意思| prc是什么意思| 竖心旁的字与什么有关| hp值是什么意思| app是什么意思啊| 有容乃大是什么意思| 内分泌是什么意思| 错付是什么意思| 纯棉是什么面料| 含蓄是什么意思| 胡萝卜不能和什么食物一起吃| 什么叫根管治疗| 什么水果降血压| 身上长红疙瘩很痒是什么原因| 远视储备是什么意思| 步后尘是什么意思| 153是什么意思| 壮阳吃什么补最快最好| 宝姿是什么档次的牌子| 钙盐沉积是什么意思| 1995是什么年| 银装素裹是什么意思| 志愿号是什么意思| 海鸥吃什么食物| 全麦是什么| 为什么润月| 经期头疼是什么原因怎么办| 天运子什么修为| 射手座男生喜欢什么样的女生| 什么是血浆| ict是什么意思| 长一智的上一句是什么| 孙子兵法是什么生肖| 金字旁土念什么字| 失心疯是什么意思| 什么多腔| ldh是什么| 开除党籍有什么影响| 2002年属什么| 寿诞是什么意思| 梦见打老公是什么意思| 脑门发黑是什么原因| 感冒吃什么食物| hcg是检查什么的| 出虚恭什么意思| 尿钙是什么意思| 吃空饷什么意思| 什么门什么户| 怀孕第一个月最怕什么| 查脂肪肝挂什么科室| 射手座什么性格| hill什么意思| 为什么女人阴唇会变黑| 师团长是什么级别| 什么行什么什么| 为什么会打鼾| 什么是萎缩性胃炎| 珍珠粉加蜂蜜做面膜有什么作用| 圈癣是什么引起的| 雀舌属于什么茶| 上海月薪三万什么水平| 长癣是什么原因引起的| 吃什么最补胶原蛋白| 刘亦菲是什么国籍| 可孚属于什么档次| 小乌龟死了有什么预兆| 艾灸起水泡是什么原因| 空调制冷效果差是什么原因| 什么人容易得骨髓瘤| 芒果和什么相克| 缺血吃什么补血最快| 癌胚抗原是什么| 六月二十六是什么星座| 刺梨什么时候成熟| 气泡水是什么| 擦伤涂什么药膏| 豆加支念什么| 下午7点是什么时辰| 偏头痛什么症状| sassy是什么意思| 十羊九不全是什么意思| 6.28什么星座| 防代表什么生肖| 骨折吃什么消炎药| 吝啬什么意思| 煜这个字读什么| 壁挂式空调什么牌子好| 阿迪达斯是什么牌子| 喝酒后胃不舒服吃什么药| 慰安妇什么意思| 仗剑走天涯什么意思| 手麻挂什么科室| 凤鸾是什么意思| egg是什么意思| 红眼病滴什么眼药水| strong什么意思| 坐骨神经痛用什么药| 酒糟鼻买什么药膏去红| 米田共是什么意思| 肾结石看什么科| 屠苏酒是什么酒| 259是什么意思| 读什么| 脸上长白斑是什么原因| 嗓子哑了是什么原因| 唇炎去医院挂什么科| 总胆红素升高是什么原因| 七夕送什么礼物好| 陶弘景有什么之称| 爆炸盐是什么| 迟缓是什么意思| hisense是什么牌子| 睡眠障碍应该挂什么科室| 用什么泡水喝可以降血压| 蛀牙是什么样子的| 矿泉水敷脸有什么作用| 西岳什么山| 用红笔写名字代表什么| 雷震子是什么神| 一路繁花的意思是什么| 有什么好吃的外卖| 纳财是什么意思| 大力丸是什么| 梦见死了人是什么意思| dj管是什么| 左下腹是什么器官| 公仆是什么意思| 手痒是什么原因| 水瓶座什么象| 淋巴系统由什么组成| 夜未央是什么意思| 小孩说话不清楚挂什么科| 碳素墨水用什么能洗掉| 脾虚是什么症状| 着凉了吃什么药| 荆芥是什么| 肠子粘连有什么办法解决| 口干舌燥吃什么中成药| 天麻什么时候种植| 贫血是什么原因造成的| 3.1号是什么星座| 鹌鹑蛋是什么动物的蛋| 粉条是什么做的| 核磁共振跟ct有什么区别| 应接不暇的暇是什么意思| 小腹痛什么原因| 不明觉厉是什么意思| 三进宫是什么意思| 把碗打碎了有什么征兆| 刻骨铭心是什么意思| 夏天木瓜煲什么汤最好| 抱持是什么意思| 绒穿和羊穿有什么区别| 火牛命五行缺什么| 壁虎吃什么食物| phoebe是什么意思| 银杯子喝水有什么好处与坏处| 狸是什么动物| 手臂痛什么原因| 绸缪是什么意思| 什么时间段买机票最便宜| 种植什么好| 民航是什么意思| 什么是理学| 尿渗透压低是什么原因| 月经前有褐色分泌物是什么原因| 熟地是什么| 荷尔蒙什么意思| 笑是什么意思| 赤色是什么颜色| mlb中文叫什么| 现在当兵需要什么条件| 孕妇鼻炎犯了可以用什么药治疗| 太是什么意思| 什么样的牙齿需要矫正| 为什么会头痛| 吃生红枣有什么好处| 什么血型| 月经来了痛经吃什么药| 脾胃虚弱吃什么药| 荨麻疹可以吃什么食物| 妥了是什么意思| 床咚是什么意思啊| 小孩晚上睡觉出汗是什么原因| 跑路什么意思| 痔疮什么东西不能吃| 天涯是什么意思| 白芷长什么样图片| 白英别名叫什么| 12月20日是什么星座| 阿贝数是什么意思| nh3是什么| 吃什么减脂肪| 长期失眠挂什么科| 突然眩晕是什么原因| 生日送什么礼物最好| 梦见袜子破了是什么意思| 郑声是什么意思| 燕子喜欢吃什么| 干碟是什么| 发生火灾时的正确做法是什么| 为什么会得带状疱疹| 碉堡是什么意思啊| 女性更年期潮热出汗吃什么药| 阴道内痒是什么原因| 心脏彩超能检查出什么| 喝茶叶水有什么好处和坏处| 8月30号什么星座| 老人流口水是什么原因| 苹果和生姜煮水喝有什么功效| 藏语扎西德勒是什么意思| 肚子左边疼是什么原因| 三月二十三是什么星座| 9月份是什么星座的| 月经第二天是什么期| 今天晚上吃什么| 硕士研究生是什么意思| 1月16日什么星座| 小孩贫血有什么症状| 红烧肉用什么肉| 背叛什么意思| 无厘头什么意思| 目瞪口呆是什么生肖| 4月3号什么星座| 梦见玫瑰花是什么预兆| 失聪是什么原因造成的| 火车票改签是什么意思| 三更是什么生肖| 做梦梦到大蟒蛇是什么意思| 12月13号什么星座| 钅读什么偏旁| 冲菜是什么菜| 肺结节吃什么药散结节最快| 不寐病属于什么病症| 看男科挂什么门诊| 2004年出生属什么| 小孩睡觉趴着睡是什么原因| mmc是什么意思| 全身痒是什么病的前兆| 三十岁是什么之年| 下肢动脉硬化吃什么药| 为什么老是胃胀气| 铁是什么元素| peace什么意思| 创意是什么意思| 百度Jump to content

悟性是什么意思

From Wikipedia, the free encyclopedia
(Redirected from Subversion (software))
Apache Subversion
Original author(s)CollabNet
Developer(s)Apache Software Foundation
Initial release20 October 2000; 24 years ago (2025-08-05)
Repository
Written inC
Operating system
TypeRevision control
LicenseApache-2.0[a]
Websitesubversion.apache.org Edit this on Wikidata
百度 党员干部要学网、懂网、用网,锻炼互联网思维,学会网言网语,创新思想政治工作方法,提高新闻舆论传播力、引导力、影响力、公信力,营造清朗的网络空间。

Apache Subversion (often abbreviated SVN, after its command name svn) is a version control system distributed as open source under the Apache License.[1] Software developers use Subversion to maintain current and historical versions of files such as source code, web pages, and documentation. Its goal is to be a mostly compatible successor to the widely used Concurrent Versions System (CVS).

The open source community has used Subversion widely: for example, in projects such as Apache Software Foundation, FreeBSD, SourceForge, and from 2006 to 2019, GCC. CodePlex was previously a common host for Subversion repositories.

Subversion was created by CollabNet Inc. in 2000, and is now a top-level Apache project being built and used by a global community of contributors.[2]

History

[edit]

CollabNet founded the Subversion project in 2000 as an effort to write an open-source version-control system which operated much like CVS but which fixed the bugs and supplied some features missing in CVS.[3] By 2001, Subversion had advanced sufficiently to host its own source code,[3] and in February 2004, version 1.0 was released.[4] In November 2009, Subversion was accepted into Apache Incubator: this marked the beginning of the process to become a standard top-level Apache project.[5] It became a top-level Apache project on February 17, 2010.[6]

Version Original release date Latest version Latest release date Status
Unsupported: 1.0 2025-08-05 1.0.9 2025-08-05 No longer supported
Unsupported: 1.1 2025-08-05[7] 1.1.4 2025-08-05 No longer supported
Unsupported: 1.2 2025-08-05[8] 1.2.3 2025-08-05 No longer supported
Unsupported: 1.3 2025-08-05[9] 1.3.2 2025-08-05 No longer supported
Unsupported: 1.4 2025-08-05[10] 1.4.6 2025-08-05 No longer supported
Unsupported: 1.5 2025-08-05[11] 1.5.9 2025-08-05 No longer supported
Unsupported: 1.6 2025-08-05[12] 1.6.23 2025-08-05 No longer supported
Unsupported: 1.7 2025-08-05[13] 1.7.22 2025-08-05 No longer supported
Unsupported: 1.8 2025-08-05[14] 1.8.19 2025-08-05 No longer supported
Unsupported: 1.9 2025-08-05[15] 1.9.12 2025-08-05 No longer supported
Unsupported: 1.10 2025-08-05[16] 1.10.8 2025-08-05 No longer supported
Unsupported: 1.11 2025-08-05[17] 1.11.1 2025-08-05 No longer supported
Unsupported: 1.12 2025-08-05[18] 1.12.2 2025-08-05 No longer supported
Unsupported: 1.13 2025-08-05[19] 1.13.0 2025-08-05 No longer supported
Latest version: 1.14 2025-08-05[20] 1.14.5[21][22][23] 2025-08-05 Fully supported, LTS
Future version: 1.15 20XX 1.15.0 (Not yet released) In development
Legend:
Unsupported
Supported
Latest version
Preview version
Future version

Release dates are extracted from Apache Subversion's CHANGES file,[24] which records all release history.

Features

[edit]
  • Commits as true atomic operations (interrupted commit operations in CVS would cause repository inconsistency or corruption).
  • The system maintains versioning for directories and some specific file metadata (see Properties). Users can move or copy files and entire directory-trees very quickly, while retaining full revision history (as being implemented by a reference to the original object).
  • Versioning of symbolic links.
  • Native support for binary files, with space-efficient binary-diff storage.
  • Apache HTTP Server as network server, WebDAV/Delta-V for protocol. There is also an independent server process called svnserve that uses a custom protocol over TCP/IP.
  • Branching is implemented by a copy of a directory, thus it is a cheap operation, independent of file size.
  • Natively client–server, layered library design.
  • Client/server protocol sends diffs in both directions.
  • Parsable output, including XML log output.
  • Open source licensedApache License since the 1.7 release; prior versions use a derivative of the Apache Software License 1.1.
  • Internationalized program messages.
  • File locking for unmergeable files ("reserved checkouts").
  • Path-based authorization.
  • Language bindings for C#, PHP, Python, Perl, Ruby, and Java.
  • Full MIME support – users can view or change the MIME type of each file, with the software knowing which MIME types can have their differences from previous versions shown.
  • Merge tracking – merges between branches will be tracked, this allows automatic merging between branches without telling Subversion what does and does not need to be merged.
  • Changelists to organize commits into commit groups.

Repository types

[edit]

Subversion offers two types of repository storage.

Berkeley DB (deprecated)

[edit]

The original development of Subversion used the Berkeley DB package. Subversion has some limitations with Berkeley DB usage when a program that accesses the database crashes or terminates forcibly. No data loss or corruption occurs, but the repository remains offline while Berkeley DB replays the journal and cleans up any outstanding locks. The safest way to use Subversion with a Berkeley DB repository involves a single server-process running as one user (instead of through a shared filesystem).[25] The Berkeley DB backend was deprecated in version 1.8.[26]

FSFS

[edit]

In 2004, a new storage subsystem was developed and named FSFS. It works faster than the Berkeley DB backend on directories with a large number of files and takes less disk space, due to less logging.[25]

Beginning with Subversion 1.2, FSFS became the default data store for new repositories.

The etymology of "FSFS" is based on Subversion's use of the term "filesystem" for its repository storage system. FSFS stores its contents directly within the operating system's filesystem, rather than a structured system like Berkeley DB. Thus, it is a "[Subversion] FileSystem atop the FileSystem".

FSX

[edit]

A new filesystem, called FSX, is under development to remove some limitations of FSFS. It was added in version 1.9 and not considered production-ready.[27] As of version 1.14, it is still marked as experimental.[28]

Repository access

[edit]

Access to Subversion repositories can take place by:

  1. Local filesystem or network filesystem,[29] accessed by client directly. This mode uses the file:///path access scheme.
  2. WebDAV/Delta-V (over http or http) using the mod_dav_svn module for Apache 2. This mode uses the http://host/path access scheme or http://host/path for secure connections using ssl.
  3. Custom "svn" protocol (default port 3690), using plain text or over TCP/IP. This mode uses either the svn://host/path access scheme for unencrypted transport or svn+ssh://host/path scheme for tunneling over ssh.

All three means can access both FSFS and Berkeley DB repositories.

Any 1.x version of a client can work with any 1.x server. Newer clients and servers have additional features and performance capabilities, but have fallback support for older clients/servers.[30]

Layers

[edit]

Internally, a Subversion system comprises several libraries arranged as layers. Each performs a specific task and allows developers to create their own tools at the desired level of complexity and specificity.

Fs
The lowest level; it implements the versioned filesystem which stores the user data.
Repos
Concerned with the repository built up around the filesystem. It has many helper functions and handles the various "hooks" that a repository may have, e.g., scripts that run when an action is performed. Together, Fs and Repos constitute the "filesystem interface".
mod_dav_svn
Provides WebDAV/Delta-V access through Apache 2.
Ra
Handles "repository access", both local and remote. From this point on, repositories are referred to using URLs, e.g.
  • file:///path/ for local access,
  • http://host/path/ or http://host/path/ for WebDAV access, or
  • svn://host/path/ or svn+ssh://host/path/ for the SVN protocol.
Client, Wc
The highest level. It abstracts repository access and provides common client tasks, such as authenticating users or comparing versions. Subversion clients use the Wc library to manage the local working copy.

Filesystem

[edit]

One can view the Subversion filesystem as "two-dimensional".[31] Two coordinates are used to unambiguously address filesystem items:

Each revision in a Subversion filesystem has its own root, which is used to access contents at that revision. Files are stored as links to the most recent change; thus a Subversion repository is quite compact. The system consumes storage space proportional to the number of changes made, not to the number of revisions.

The Subversion filesystem uses transactions to keep changes atomic. A transaction operates on a specified revision of the filesystem, not necessarily the latest. The transaction has its own root, on which changes are made. It is then either committed and becomes the latest revision, or is aborted. The transaction is actually a long-lived filesystem object; a client does not need to commit or abort a transaction itself, rather it can also begin a transaction, exit, and then can re-open the transaction and continue using it. Potentially, multiple clients can access the same transaction and work together on an atomic change, though no existing clients expose this capability.

Properties

[edit]

One important feature of the Subversion filesystem is properties: simple name=value pairs of text. Most properties occur on filesystem entries (i.e., files and directories). These are versioned just like other changes to the filesystem. The Subversion client reserves the 'svn:' prefix for built-in properties, but other names can be used to define custom properties.

svn:executable
Makes a file on Unix-hosted working copies executable, when supported by the filesystem.
svn:mime-type
Stores the Internet media type ("MIME type") of a file. Affects the handling of diffs and merging.
svn:ignore
A list of filename patterns to ignore in a directory. Similar to CVS's .cvsignore file.
svn:keywords
A list of keywords to substitute into a file when changes are made. The file itself must also reference the keywords as $keyword$ or $keyword:...$. This is used to maintain certain information (e.g., author, date of last change, revision number) in a file without human intervention.
The keyword substitution mechanism originates from RCS and from CVS.[32]
svn:eol-style
Makes the client convert end-of-line characters in text files. Used when the working copy is needed with a specific EOL style. "native" is commonly used, so that EOLs match the user's OS EOL style. Repositories may require this property on all files to prevent inconsistent line endings, which can cause a problem in itself.
svn:externals
Allows parts of other repositories to be automatically checked out into a subdirectory.
svn:needs-lock
Specifies that a file is to be checked out with file permissions set to read-only. This is designed for use with the locking mechanism. The read-only permission reminds one to obtain a lock before modifying the file: obtaining a lock makes the file writable, and releasing the lock makes it read-only again. Locks are only enforced during a commit operation. Locks can be used without setting this property. However, that is not recommended, because it introduces the risk of someone modifying a locked file; they will only discover it has been locked when their commit fails.
svn:special
This property is not meant to be set or modified directly by users. As of 2010 it is only used for having symbolic links in the repository. When a symbolic link is added to the repository, a file containing the link target is created with this property set. When a Unix-like system checks out this file, the client converts it to a symbolic link.
svn:mergeinfo
Used to track merge data (revision numbers) in Subversion 1.5 (or later). This property is automatically maintained by the merge command, and it is not recommended to change its value manually.[33]

Subversion also uses properties on revisions themselves. Like the above properties on filesystem entries, the names are completely arbitrary, with the Subversion client using certain properties prefixed with 'svn:'. However, these properties are not versioned, and they can be changed later if allowed by a pre-revprop-change hook.[34]

svn:date
The date and time stamp of a revision.
svn:author
The name of the user that submitted the change(s).
svn:log
The user-supplied description of the change(s).

Branching and tagging

[edit]

Subversion uses the inter-file branching model from Perforce[35] to implement branches and tagging. A branch is a separate line of development.[36] Tagging refers to labeling the repository at a certain point in time so that it can be easily found in the future. In Subversion, the only difference between branches and tags is how they are used.

A new branch or tag is set up by using the "svn copy" command, which should be used in place of the native operating system mechanism. The copied directory is linked to the original in the repository to preserve its history, and the copy takes very little extra space in the repository.

All the versions in each branch maintain the history of the file up to the point of the copy, plus any changes made since. One can "merge" changes back into the trunk or between branches.

alt text
Visualization of a simple Subversion project

Limitations and problems

[edit]

A known problem in Subversion affects the implementation of the file and directory rename operation. As of 2014, Subversion implements the renaming of files and directories as a "copy" to the new name followed by a "delete" of the old name. Only the names change, all data relating to the edit history remains the same, and Subversion will still use the old name in older revisions of the "tree". However, Subversion may become confused when a move conflicts with edits made elsewhere,[37] both for regular commits and when merging branches.[38] The Subversion 1.5 release addressed some of these scenarios while others remained problematic.[39] The Subversion 1.8 release addressed some of these problems by making moves a first-class operation on the client, but it is still treated as copy+delete in the repository.[40]

As of 2013, Subversion lacks some repository-administration and management features. For instance, someone may wish to edit the repository to permanently remove all historical records of certain data. Subversion does not have built-in support to achieve this simply.[41]

Subversion stores additional copies of data on the local machine, which can become an issue with very large projects or files, or if developers work on multiple branches simultaneously. In versions prior to 1.7 these .svn directories on the client side could become corrupted by ill-advised user activity like global search/replace operations.[42] Starting with version 1.7 Subversion uses a single centralized .svn folder per working area.[43]

Subversion does not store the modification times of files. As such, a file checked out of a Subversion repository will have the 'current' date (instead of the modification time in the repository), and a file checked into the repository will have the date of the check-in (instead of the modification time of the file being checked in). This might not always be what is wanted.[44] To mitigate this, third-party tools exist that allow for preserving modification time and other filesystem meta-data.[45][46] However, giving checked out files a current date is important as well — this is how tools like make(1) will take notice of a changed file for rebuilding it.

Subversion uses a centralized revision control model. Ben Collins-Sussman, one of the designers of Subversion, believes a centralised model would help prevent "insecure programmers" from hiding their work from other team members during development.[47] Some users of version control systems see the centralised model as detrimental; famously, Linus Torvalds attacked Subversion's model and its developers.[48]

Subversion often does not deal well with the filename normalization performed by the HFS+ filesystem. This can cause problems when files with accented characters in their names are added to the repository on a non-HFS+ filesystem and the repository is then used with HFS+.[49]

Subversion tags and branches

[edit]

Revision numbers are difficult to remember in any version-control system. For this reason, most systems offer symbolic tags as user-friendly references to them. Subversion does not have such a feature and what its documentation recommends to use instead is very different in nature. Instead of implementing tags as references to points in history, Subversion recommends making snapshot copies into a well-known subdirectory ("tags/") in the space of the repository tree. Only a few predefined references are available: HEAD, BASE, PREV and COMMITTED.

This history-to-space projection has multiple issues:

  1. When a snapshot is taken, the system does not assign any special meaning to the name of the tag/snapshot. This is the difference between a copy and a reference. The revision is recorded and the snapshot can be accessed by URL. This makes some operations less convenient and others impossible. For instance, a naive svn diff -r tag1:tag2 myfile does not work; it is slightly more complicated than that to achieve, requiring the user to know and input URL/paths to the snapshots instead of just the names: svn diff <URL-TO-TAG1>/myfile <URL-TO-TAG2>/myfile. Other operations like for instance svn log -r tag1:tag2 myfile are just impossible.
  2. When two (ideally independent) object types live in the repository tree, a "fight to the top" can ensue. In other words, it is often difficult to decide at which level to create the tags/ subdirectory:
    trunk/
         /componentfoo/
         /componentbar/
    tags/
        /1.1/
            /componentfoo/
            /componentbar/
    
     or 
    componentfoo/
                /trunk/
                /tags/
                     /1.1/
    componentbar/
                /trunk/
                /tags/
                     /1.1/
    
  3. Tags, by their conventional definition, are both read-only and light-weight, on the repository and client. Subversion copies are not read-only, and while they are light-weight on the repository, they are incredibly heavy-weight on the client.

To address such issues, posters on the Subversion mailing lists have suggested a new feature called "labels" or "aliases".[50] SVN labels would more closely resemble the "tags" of other systems such as CVS or Git. The fact that Subversion has global revision numbers opens the way to a very simple label → revision implementation. Yet as of 2013, no progress has been made and symbolic tags are not in the list of the most wanted features.[51]

Development and implementation

[edit]

CollabNet has continued its involvement with Subversion, but the project runs as an independent open source community. In November 2009, the project was accepted into the Apache Incubator, aiming to become part of the Apache Software Foundation's efforts.[52] Since March 2010, the project is formally known as Apache Subversion, being a part of the Apache Top-Level Projects.[53]

In October 2009, WANdisco announced the hiring of core Subversion committers as the company moved to become a major corporate sponsor of the project. This included Hyrum Wright, president of the Subversion Corporation and release manager for the Subversion project since early 2008, who joined the company to lead its open source team.[54]

The Subversion open-source community does not provide binaries, but potential users can download binaries from volunteers.[55] While the Subversion project does not include an official graphical user interface (GUI) for use with Subversion, third parties have developed a number of different GUIs, along with a wide variety of additional ancillary software.

Work announced in 2009 included SubversionJ (a Java API) and implementation of the Obliterate command, similar to that provided by Perforce. Both of these enhancements were sponsored by WANdisco.[56]

The Subversion committers normally have at least one or two new features under active development at any one time. The 1.7 release of Subversion in October 2011 included a streamlined HTTP transport to improve performance and a rewritten working-copy library.[57]

In 2002, a design contest was held to select the logo for Subversion. The original entries can be found here as well as the votes for each logo. The current logo received the most votes in the contest.

See also

[edit]

Notes

[edit]
  1. ^ Apache-2.0 since 2025-08-05.

References

[edit]

Footnotes

[edit]
  1. ^ "Subversion". directory.fsf.org. Free Software Directory. 2020. Retrieved 3 October 2023.
  2. ^ "The Apache Software Foundation Announces 20th Anniversary of Apache Subversion". GlobeNewswire News Room (Press release). 2025-08-05. Retrieved 2025-08-05.
  3. ^ a b Collins-Sussman, Ben; Brian W. Fitzpatrick; C. Michael Pilato (2011). "What is Subversion? > Subversion's History". Version Control with Subversion (for Subversion 1.7). Retrieved 15 March 2012.
  4. ^ Benjamin Zeiss (2004). "subversion 1.0 is released". Linux Weekly News. Retrieved 30 March 2014.
  5. ^ Rubinstein, David (4 November 2009). "Subversion joins forces with Apache". SD Times. Archived from the original on 2025-08-05. Retrieved 15 March 2012.
  6. ^ "Subversion is now Apache Subversion". 18 February 2010. Archived from the original on 12 May 2011. Retrieved 15 March 2012.
  7. ^ "Subversion 1.1 Release Notes". Retrieved 2025-08-05.
  8. ^ "Subversion 1.2 Release Notes". Retrieved 2025-08-05.
  9. ^ "Subversion 1.3 Release Notes". Retrieved 2025-08-05.
  10. ^ "Subversion 1.4 Release Notes". Retrieved 2025-08-05.
  11. ^ "Subversion 1.5 Release Notes". Retrieved 2025-08-05.
  12. ^ "Apache Subversion 1.6 Release Notes". Retrieved 2025-08-05.
  13. ^ "Apache Subversion 1.7 Release Notes". Retrieved 2025-08-05.
  14. ^ "Apache Subversion 1.8 Release Notes". Retrieved 2025-08-05.
  15. ^ "Apache Subversion 1.9 Release Notes". Retrieved 2025-08-05.
  16. ^ "Apache Subversion 1.10 Release Notes". Retrieved 2025-08-05.
  17. ^ "Apache Subversion 1.11 Release Notes". Retrieved 2025-08-05.
  18. ^ "Apache Subversion 1.12 Release Notes". Retrieved 2025-08-05.
  19. ^ "Apache Subversion 1.13 Release Notes".
  20. ^ "Apache Subversion 1.14 LTS Release Notes". subversion.apache.org. Retrieved 2025-08-05.
  21. ^ The Subversion Team. "Apache Subversion News Archives". subversion.apache.org. The Apache Software Foundation. Retrieved 2025-08-05.
  22. ^ Sahlberg, Daniel (2025-08-05). "Release Announcement – [SECURITY][ANNOUNCE] Apache Subversion 1.14.5 released". lists.apache.org. User mailing list for Subversion. The Apache Software Foundation. Retrieved 2025-08-05.
  23. ^ The Subversion Team (2025-08-05). "Changelog for Version 1.14.5 and earlier". Apache Subversion. The Apache Software Foundation. Retrieved 2025-08-05.
  24. ^ "Apache Subversion's CHANGES file". Retrieved 2025-08-05.
  25. ^ a b Ben Collins-Sussman; Brian W. Fitzpatrick; C. Michael Pilato (2011). "Chapter 5: Strategies for Repository Deployment". Version Control with Subversion: For Subversion 1.7. O'Reilly.
  26. ^ "Apache Subversion 1.8 Release Notes". Apache Project. Retrieved 5 May 2020.
  27. ^ "Apache Subversion 1.9 Release Notes".
  28. ^ "Subversion: Built-in back-ends". Retrieved 2025-08-05. #define SVN_FS_TYPE_FSX "fsx"
    EXPERIMENTAL filesystem backend.
    It is not ready for general production use. Please consult the respective release notes on suggested usage scenarios.
  29. ^ Berkeley DB relies on file locking and thus should not be used on (network) filesystems which do not implement them
  30. ^ SVN 1.5 release notes
  31. ^ Basic Merging
  32. ^ "rcs(1)". OpenBSD manual pages.
  33. ^ Subversion Properties
  34. ^ pre-revprop-change
  35. ^ Inter-File Branching: A Practical Method for Representing Variants Archived 2025-08-05 at the Wayback Machine
  36. ^ Branching / Tagging — TortoiseSVN
  37. ^ "Implement true renames". Archived from the original on 2025-08-05. Retrieved 2025-08-05.
  38. ^ Advanced Merging
  39. ^ Copy/move-related improvements in Subversion 1.5
  40. ^ Working copy records moves as first-class operation in Subversion 1.8
  41. ^ "[SVN-516] svn obliterate". Retrieved 2025-08-05.
  42. ^ "Subclipse - Repair SVN Checksum".
  43. ^ Working Copy Metadata Storage Improvements (client)
  44. ^ "[SVN-1256] Ability to preserve last modification time (mtime) of files under version control". Retrieved 2025-08-05.
  45. ^ FreezeAttrib (saves/restores file attributes using properties)
  46. ^ fsvs – Full System Versioning System on GitHub
  47. ^ Programmer Insecurity @ iBanjo
  48. ^ Google Tech Talk video and its transcript
  49. ^ "[SVN-2464] Canonicalize / stringprep UTF-8 filenames to handle composed / decomposed differences shown by e.g. Mac OS X HFS+". Retrieved 2025-08-05.
  50. ^ For example: Weintraub, David (23 May 2005). "Subversion 'labels' vs. 'tags'". SVN Dev (Mailing list). Retrieved 5 May 2020.
  51. ^ "Apache Subversion Roadmap". Apache Project. Retrieved 5 May 2020.
  52. ^ "Subversion Submitted to Become a Project at The Apache Software Foundation". November 4, 2009. Retrieved October 1, 2019.
  53. ^ "CollabNet Supports Subversion's Graduation to Apache Top-Level Project". CollabNet. 1 March 2010. Archived from the original on 2025-08-05.
  54. ^ WANdisco (January 7, 2010). "WANdisco Names Hyrum Wright to Lead Subversion Open Source Efforts". News release. Open Source magazine. Archived from the original on 2025-08-05. Retrieved October 29, 2011.
  55. ^ "Apache Subversion Binary Packages". Official project website. Retrieved October 29, 2011.
  56. ^ WANdisco (October 28, 2009). "WANdisco Presents New Initiatives for the Subversion Open Source Project". News release. CM Crossroads. Archived from the original on 2025-08-05. Retrieved October 29, 2011.
  57. ^ "Apache Subversion Roadmap". Official project website. Retrieved October 29, 2011.

Sources

[edit]
  • C. Michael Pilato, Ben Collins-Sussman, Brian W. Fitzpatrick; Version Control with Subversion; O'Reilly; ISBN 0-596-00448-6 (1st edition, paperback, 2004, full book online, mirror)
  • Garrett Rooney; Practical Subversion; Apress; ISBN 1-59059-290-5 (1st edition, paperback, 2005)
  • Mike Mason; Pragmatic Version Control Using Subversion; Pragmatic Bookshelf; ISBN 0-9745140-6-3 (1st edition, paperback, 2005)
  • William Nagel; Subversion Version Control: Using the Subversion Version Control System in Development Projects; Prentice Hall; ISBN 0-13-185518-2 (1st edition, paperback, 2005)

Further reading

[edit]
[edit]
不加要是什么字 什么是面瘫 肠胃不好可以吃什么水果 白色玉米是什么玉米 孕妇什么时候吃dha效果比较好
什么血型的人最多 女人下巴长痘痘是什么原因 光敏反应是什么意思 农历5月17日是什么星座 儿童过敏性鼻炎吃什么药
燃烧卡路里是什么意思 和硕是什么意思 春宵一刻值千金什么意思 客厅沙发后面墙上挂什么画好 乌鸡白凤丸有什么功效
乳腺囊肿有什么症状 经常拉屎是什么原因 瑕疵是什么意思 阴米是什么米 身上起红疹是什么原因
弊端是什么意思zsyouku.com 血常规五项能检查出什么病hcv7jop9ns3r.cn 白茶什么季节喝好yanzhenzixun.com 痛风吃什么药止痛最快hcv8jop0ns8r.cn 女性漏尿挂什么科hcv9jop6ns9r.cn
雅蠛蝶什么意思hcv9jop4ns4r.cn lotus是什么牌子hcv8jop5ns8r.cn 调经吃什么药效果最好aiwuzhiyu.com 鲍鱼什么意思0735v.com 梦见自己出轨是什么意思hcv9jop6ns0r.cn
一点小事就暴躁的人是什么病hcv9jop3ns1r.cn 双重人格是什么意思hcv7jop9ns5r.cn 为什么蛋皮会痒hcv8jop2ns7r.cn 数典忘祖指什么动物hcv8jop9ns4r.cn 智齿冠周炎吃什么药hcv8jop8ns8r.cn
大明湖畔的夏雨荷是什么意思hcv9jop1ns2r.cn 出国用什么翻译软件好hcv7jop9ns7r.cn 鸡蛋白过敏指的是什么shenchushe.com 风花雪月是什么意思zsyouku.com 梦见红棺材是什么征兆bjhyzcsm.com
百度