什么的松脂| 8月14是什么星座| 扎西德勒什么意思| 癫是什么意思| 胃酸恶心想吐什么原因| 示数是什么意思| 糖尿病人吃什么水果| 低氧血症是什么意思| 大便溏薄是什么意思| 牛郎叫什么名字| 鲁班姓什么| 查传染病四项挂什么科| 什么的北风| 尿酸高多吃什么食物好| 肺气肿什么症状| 新加坡用什么货币| 脉数是什么意思| 什么时候开始暑伏| 臻字的意思是什么| 咽炎是什么原因引起的| 麒麟到了北极会变成什么| ri是什么意思| 锁骨下面的骨头叫什么| 新生婴儿吃什么奶粉| lv属于什么档次| 碳水化合物是什么食物| 腋下有疙瘩是什么原因| get什么意思| 黑鱼又叫什么鱼| 山竹里面黄黄的是什么| 什么是英语自然拼读| 静脉曲张挂什么科| 香茗是什么意思| 有两把刷子是什么意思| 忧郁的意思是什么| 囧是什么意思| 梦见吐血是什么预兆| 眼白浑浊是什么原因| 火车动车高铁有什么区别| 用什么泡水喝对肝脏好| 派出所所长是什么级别| 病人说胡话是什么征兆| 瞳距是什么| 消化不良的症状吃什么药| 平坦的反义词是什么| 鹞子是什么鸟| 属羊五行属什么| 沙棘是什么植物| 活检检查是什么意思| 大学校长是什么级别| 胃窦炎是什么原因引起的| 多吃蒜有什么好处和坏处| 什么是设计| 镜检红细胞是什么意思| 12月13日是什么纪念日| 什么级别| 上焦火旺什么症状| 女为悦己者容是什么意思| 意志力是什么意思| 烈女怕缠郎是什么意思| 客单价什么意思| 治疗股癣用什么药膏| 去火喝什么茶| 桑叶有什么作用和功效| 自叹不如什么意思| 沸去掉三点水念什么| m什么意思| 彩铃是什么意思| 咖啡有什么营养| 四川酸菜是什么菜| 才高八斗是什么意思| 肛周脓肿吃什么药| 什么是地中海饮食| 空气净化器什么牌子好| 八珍胶囊适合什么人吃| 六月初三是什么日子| 儿童矮小挂什么科| 肺纤维化是什么意思| 皮肤属于什么组织| 咳嗽挂号挂什么科| 上颚痒是什么原因| 头爱出汗是什么原因| 栀子有什么作用与功效| 海绵体充血不足吃什么药| 儿童坐飞机需要带什么证件| 肝喜欢什么食物有哪些| 谷维素治什么病| 肌肉萎缩是什么原因| g750是什么金| 胸有成竹什么意思| 文殊菩萨是保佑什么的| 鸡血藤有什么作用| 手汗脚汗多是什么原因| 甲状腺结节挂什么科室| 麦冬有什么功效| 晴雨伞是什么意思| 阴道里面瘙痒是什么原因| 地雷是什么意思| 励志是什么意思| 朝鲜冷面是什么面| 头上戴冠是什么生肖| 右眼睛跳是什么预兆| 牙疼是什么原因引起的| 肠胃炎吃什么消炎药| 代谢不好是什么原因| 红豆有什么功效和作用| 老年人喝什么蛋白粉好| 72岁属什么生肖| 血糖高吃什么菜| 裸贷是什么意思| 一岁半宝宝反复发烧是什么原因| 殇什么意思| 梅干菜是什么菜做成的| 庸人自扰之是什么意思| 低血压吃什么食物好| 颅压高吃什么药| 金牛座和什么星座最配| 泄气是什么意思| 什么是t| 阳强易举是什么意思| 染色体异常是什么意思| 什么是丁克| 马来西亚有什么特产| 马吃什么食物| 果粉是什么意思| 1664是什么酒| negative什么意思| 工作单位是什么意思| 前列腺按摩什么感觉| 什么时间进伏| 长期胃胀气什么原因| 红小豆和赤小豆有什么区别| 优生十项是检查什么| 低脂是什么意思| 阴唇肥大是什么原因| 梦见好多死鱼是什么意思| 止咳化痰什么药最好| 什么的奇观| 红点是什么原因引起的| 蛋蛋冰凉潮湿什么原因| 1978年属什么的| 红眼病什么症状| 左手中指痛什么预兆| ozark是什么牌子| 自主能力是什么意思| 肌酐下降是什么原因| 什么的小草| 水土不服吃什么药管用| 中药包煎是什么意思| 尾椎骨痛挂什么科| fion属于什么档次的包| 旨在是什么意思| 逆流而上是什么意思| 高压氧治疗有什么作用| 00年是什么命| 格列本脲和格列美脲有什么区别| 大便不成形什么原因| hev是什么病毒| 性早熟有什么症状| 96999是什么电话| 梦见大领导有什么预兆| 下眼袋浮肿是什么原因| 老人嗜睡是什么原因| 什么叫无产阶级| 电视剧上星是什么意思| 内向男生适合什么工作| 西夏是现在的什么地方| 耳什么目明| 骨骼肌率是什么意思| 621什么星座| 左小腿麻木是什么原因| 口爆什么意思| 乙型肝炎表面抗体高是什么意思| 排休是什么意思| neu是什么意思| 33数字代表什么意思| 女孩子学什么专业好| 10月7号是什么星座| 爱钻牛角尖是什么意思| 小便憋不住尿裤子是什么情况| 什么品种的西瓜最好吃| 什么是幸福| 鼻子大的男人说明什么| 玄武岩属于什么岩石| 飞机为什么怕小鸟| 什么奶粉好啊| 梦到棺材什么意思| 一个目一个于念什么| 黄芪不能和什么一起吃| 女性吃什么降低雄激素| 父母坟上长树意味什么| 肺气阴两虚吃什么中成药| 灰指甲是什么原因引起| 淋巴是什么| 做凉粉用什么淀粉最好| 河里的贝壳叫什么| 王安石是什么朝代的| 八仙过海是什么生肖| 胶质瘤是什么病| 吸烟有害健康为什么国家还生产烟| 大便不调是什么意思| 外阴瘙痒是什么病| 牙齿松动什么原因| 老是放屁是什么原因| 蜂王浆是什么东西| 吃什么减肥瘦肚子| 冰点脱毛的原理是什么| 技压群雄的意思是什么| 楚楚动人是什么意思| 厄运是什么意思| 吕洞宾属什么生肖| 心衰有什么症状| 二甲苯是什么东西| 中性粒细胞比率偏高是什么意思| 处女座后面是什么星座| 1999年是什么命| 毛毛虫吃什么| 梦见自己拉了好多屎是什么意思| 化肥对人体有什么危害| 2022年属虎的是什么命| 什么叫碳水化合物| 两个圈的皮带是什么牌子| 女生适合抽什么烟| 向日葵花代表什么意思| 大便干燥吃什么药| 乌龟代表什么生肖| hp-是什么意思| 脚麻挂什么科| 芹菜和西芹有什么区别| 做梦梦到和别人吵架是什么意思| 吃什么会食物中毒| 孩子晚上睡觉磨牙是什么原因| 前方高能是什么意思| 狼毒是什么| 脂肪的克星是什么| 全飞秒手术是什么| ms是什么单位| 为什么会得水痘| 金渐层是什么品种| pes是什么材料| 紫荆花的花语是什么| 高干文是什么意思| 微量元素6项是查什么| 早起嘴苦是什么原因| 如家是什么内涵| 西周王陵为什么找不到| 曲安奈德针治疗什么| 梦见房子漏水是什么意思| 孩子咬指甲什么原因| 枣红色配什么颜色好看| 骨质欠规整是什么意思| 版心是什么| 肾虚对男生意味着什么| 为什么不建议年轻人做肠镜| 地素女装属于什么档次| 老想喝水是什么原因| 80是什么意思| 兔子可以吃什么水果| 女装什么牌子好| 血小板为什么会高| 阴阳调和是什么意思| 天秤座的幸运色是什么| 麻雀吃什么食物| 心血管堵塞吃什么药| 百度Jump to content

广州最美7.7公里原来是这里 快上车 最美公交开车啦

From Wikipedia, the free encyclopedia
Apache Subversion
Original author(s)CollabNet
Developer(s)Apache Software Foundation
Initial release20 October 2000; 24 years ago (2025-08-06)
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-06 1.0.9 2025-08-06 No longer supported
Unsupported: 1.1 2025-08-06[7] 1.1.4 2025-08-06 No longer supported
Unsupported: 1.2 2025-08-06[8] 1.2.3 2025-08-06 No longer supported
Unsupported: 1.3 2025-08-06[9] 1.3.2 2025-08-06 No longer supported
Unsupported: 1.4 2025-08-06[10] 1.4.6 2025-08-06 No longer supported
Unsupported: 1.5 2025-08-06[11] 1.5.9 2025-08-06 No longer supported
Unsupported: 1.6 2025-08-06[12] 1.6.23 2025-08-06 No longer supported
Unsupported: 1.7 2025-08-06[13] 1.7.22 2025-08-06 No longer supported
Unsupported: 1.8 2025-08-06[14] 1.8.19 2025-08-06 No longer supported
Unsupported: 1.9 2025-08-06[15] 1.9.12 2025-08-06 No longer supported
Unsupported: 1.10 2025-08-06[16] 1.10.8 2025-08-06 No longer supported
Unsupported: 1.11 2025-08-06[17] 1.11.1 2025-08-06 No longer supported
Unsupported: 1.12 2025-08-06[18] 1.12.2 2025-08-06 No longer supported
Unsupported: 1.13 2025-08-06[19] 1.13.0 2025-08-06 No longer supported
Latest version: 1.14 2025-08-06[20] 1.14.5[21][22][23] 2025-08-06 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-06.

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-06. Retrieved 2025-08-06.
  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-06. 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-06.
  8. ^ "Subversion 1.2 Release Notes". Retrieved 2025-08-06.
  9. ^ "Subversion 1.3 Release Notes". Retrieved 2025-08-06.
  10. ^ "Subversion 1.4 Release Notes". Retrieved 2025-08-06.
  11. ^ "Subversion 1.5 Release Notes". Retrieved 2025-08-06.
  12. ^ "Apache Subversion 1.6 Release Notes". Retrieved 2025-08-06.
  13. ^ "Apache Subversion 1.7 Release Notes". Retrieved 2025-08-06.
  14. ^ "Apache Subversion 1.8 Release Notes". Retrieved 2025-08-06.
  15. ^ "Apache Subversion 1.9 Release Notes". Retrieved 2025-08-06.
  16. ^ "Apache Subversion 1.10 Release Notes". Retrieved 2025-08-06.
  17. ^ "Apache Subversion 1.11 Release Notes". Retrieved 2025-08-06.
  18. ^ "Apache Subversion 1.12 Release Notes". Retrieved 2025-08-06.
  19. ^ "Apache Subversion 1.13 Release Notes".
  20. ^ "Apache Subversion 1.14 LTS Release Notes". subversion.apache.org. Retrieved 2025-08-06.
  21. ^ The Subversion Team. "Apache Subversion News Archives". subversion.apache.org. The Apache Software Foundation. Retrieved 2025-08-06.
  22. ^ Sahlberg, Daniel (2025-08-06). "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-06.
  23. ^ The Subversion Team (2025-08-06). "Changelog for Version 1.14.5 and earlier". Apache Subversion. The Apache Software Foundation. Retrieved 2025-08-06.
  24. ^ "Apache Subversion's CHANGES file". Retrieved 2025-08-06.
  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-06. #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-06 at the Wayback Machine
  36. ^ Branching / Tagging — TortoiseSVN
  37. ^ "Implement true renames". Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  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-06.
  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-06.
  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-06.
  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-06.
  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-06. 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-06. 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]
肺痨是什么病 养尊处优的意思是什么 尿频尿急尿不尽吃什么药 睡觉身上痒是什么原因 裙带菜是什么
西瓜虫吃什么食物 疱疹挂号挂什么科室 1997年7月1日属什么生肖 刘晓庆什么星座 杜甫号什么
恶病质是什么意思 尾巴翘上天是什么意思 射手座的幸运色是什么 吃知柏地黄丸有什么副作用 国企是什么意思
什么宠物好养又干净 推测是什么意思 阑尾炎不能吃什么 芦荟有什么好处 贫血吃什么水果
洗牙有什么好处和坏处hcv8jop6ns0r.cn 肝不好应该吃什么hcv7jop5ns2r.cn 角化棘皮瘤是什么病hcv7jop6ns0r.cn 米果念什么hcv8jop8ns1r.cn 艾字五行属什么hcv9jop4ns1r.cn
血糖高能吃什么菜hcv9jop4ns0r.cn 什么牌子的助听器好hcv8jop8ns2r.cn 什么是夫妻宫hcv9jop6ns2r.cn 腹泻可以吃什么水果hcv8jop6ns3r.cn 神夫草抑菌乳膏主治什么hcv8jop2ns6r.cn
侯亮平是什么级别yanzhenzixun.com 急性腹泻拉水吃什么药hcv8jop3ns7r.cn 什么样的充电宝能带上飞机hcv8jop1ns6r.cn 什么是莱赛尔纤维hcv7jop9ns5r.cn 一个木一个寿念什么hcv7jop6ns9r.cn
米诺地尔有什么副作用hcv8jop3ns9r.cn 尿隐血十1是什么意思hcv8jop5ns1r.cn 急性心力衰竭的急救措施是什么hcv8jop9ns8r.cn 佝偻病是什么病hcv7jop6ns3r.cn 耳石症是什么hcv9jop1ns9r.cn
百度