检查神经做什么检查| 照是什么意思| 穿刺活检是什么意思| 便秘喝什么茶好| 重庆以前叫什么| k金是什么金| 皮下出血小红点是什么原因造成的| dl什么意思| 口干舌燥吃点什么药| 禁欲是什么意思| 节源开流是什么意思| 黄体酮不足吃什么| 肝胃不和吃什么药| tbc是什么意思| 肌张力是什么意思| 红菜是什么菜| 动脉斑块是什么意思| 车水马龙是什么意思| 手淫过度有什么危害| 5月9号是什么星座| 内胆是什么意思| 为什么你| 10.17是什么星座| 什么马不能骑| 做梦拉粑粑是什么意思| 绝世是什么意思| 1.30是什么星座| 心属于五行属什么| 河东狮吼什么意思| 石榴叶子泡水喝有什么功效| 穿堂风是什么意思| 老梗是什么病| 50分贝相当于什么声音| 憧憬未来是什么意思| 接地气是什么意思| 1909年属什么生肖| 口臭什么原因| 狗狗什么时候打疫苗| 刷牙出血是什么原因| 尿黄什么原因| 内痔是什么样的图片| 拿的起放的下是什么意思| 我的星座是什么| 生力军什么意思| 从子是什么意思| 小孩头发黄是什么原因| 智是什么意思| 知柏地黄丸治什么病| 浑身发热是什么原因| 最高位是什么位| ckd3期是什么意思| 尿路感染吃什么药最好| 霄字五行属什么| 什么叫染色体| 柠檬泡水有什么好处| 头疼吃什么药最有效| 重阳节应该吃什么| 心脏右束支传导阻滞是什么意思| 发冷是什么原因| 染指什么意思| 手指甲出现双层是什么原因| 疝气吃什么药效果好| 16是什么生肖| 氯雷他定有什么副作用| 何去何从是什么意思| 胎儿打嗝是什么原因| 客厅用什么灯具好| 拍黄瓜什么意思| 视网膜病变有什么症状| 精益求精下一句是什么| 眼睛经常有眼屎是什么原因| 吃百合有什么好处| 春天有什么花开| 小孩流口水是什么原因| 吃燕窝有什么功效| 虚岁30岁属什么生肖| daddy是什么意思| 闪购是什么意思| 肌酐激酶高是什么原因| 清肺热用什么泡水喝比较好| 啤酒是什么味道| 基因检测是什么意思| 精液有血是什么原因| 锁骨发适合什么脸型| 虎皮羊质是指什么生肖| 生物制剂对人体有什么副作用| 梦见一个人代表什么| 塞屁股的退烧药叫什么| 1.4是什么星座| 怀孕初期要注意什么| 廊坊有什么好玩的地方| 什么叫肺纤维化| 甲状腺有什么危害| 腹泻吃什么药| 天体是什么意思| 耳声发射检查是什么| 绿豆的功效与作用是什么| 齐多夫定片是治什么病的| 湘潭市花是什么| 娇兰属于什么档次| 11月9日什么星座| 指甲弯曲是什么原因| 果糖是什么| 约稿是什么意思| 波字五行属什么| 心慌心悸是什么原因| 眼睛充血什么原因| 腰扭伤用什么药最好| 什么虫子咬完是小红点| 6月26什么星座| 惊蛰后是什么节气| 癫痫是什么原因引起的| 站久了腰疼是什么原因| mid什么意思| 什么空如什么| 12月26日是什么星座| 早上口苦是什么原因| 黄花菜长什么样子| 大耗是什么意思| 植物神经紊乱挂什么科| 鸡婆是什么意思| 血糖高怎么办吃什么好| 职业年金有什么用| 女人为什么会宫外怀孕| 梦见烧衣服什么预兆| 肠粉是什么做的| 胃烧灼吃什么立马缓解| 古着店是什么意思| 检查阑尾炎挂什么科| 怀孕前期有什么症状| 吃什么能降尿蛋白| 江苏有什么特产| 踩水是什么意思| 癸水的根是什么| 连襟什么意思| 侍郎是什么官职| 小孩子打呼噜是什么原因| 疼痛门诊看什么病| 农历七月初六是什么星座| ak是什么意思| 罪对什么| 开诚布公什么意思| 念旧的人属于什么性格| 蓝色配什么裤子| 1952属什么生肖| 包公是什么生肖| 女性尿里带血是什么原因| 胃反酸水吃什么药| 洋酒是什么酒| 油价什么时候调整| 马蹄南去人北望是什么歌| app是什么缩写| 为什么第一次进不去| 自媒体是什么| 月经刚完同房为什么痛| 肝胆脾挂什么科| 葛根和什么搭配泡水好| 做腹部彩超挂什么科| 白露是什么意思| 玉米热量高为什么还减肥| 梦见自己头发长长了是什么意思| 肝疼吃什么药好| 吃什么消炎药可以喝酒| 布加综合征是什么病| 电视开不了机是什么原因| 孕妇可以吃什么| 关节疼挂什么科| 为什么早上起床头晕| 枸橼酸西地那非片是什么药| 7月份有什么节日吗| 坊字五行属什么| 吃什么能养肝护肝| 赘疣是什么意思| 21岁属什么生肖| 3.14什么星座| 梦见石榴是什么意思| 补肺养肺吃什么食物最好| 什么是视同缴费| 旖旎是什么意思| 肾阴虚吃什么食物补| 什么事的英文| 预计是什么意思| 荆棘什么意思| 吃靶向药不能吃什么| 下面瘙痒用什么药| 什么牌子的大米好吃| 94岁属什么| 小孩出虚汗是什么原因| 哺乳期头痛可以吃什么药| 重阳节的习俗是什么| 人为什么会发烧| 可以组什么词语| 为什么一热就头疼| 头晕目赤是什么意思| 有机食品什么意思| 七月八号是什么日子| 高血钾是什么意思| 什么是螨虫型痘痘图片| 蚱蜢吃什么食物| ppm是什么意思| 谭震林是什么军衔| 早上吃鸡蛋有什么好处| 笑掉大牙是什么动物| nt检查前需要注意什么| 鼻子上长脓包型痘痘是什么原因| 人为什么要日b| 什么菜降血压效果最好| 虾不能跟什么一起吃| 拔火罐起水泡是什么原因| 反复呕吐是什么病症| 鲱鱼罐头那么臭为什么还有人吃| 小孩白细胞高是什么原因| 女装大佬什么意思| 卡马西平片治什么病| 女人吃莲藕有什么好处| 周传雄得了什么病| 乌鸡煲汤放什么材料| br什么意思| 血糖高看什么科| 为什么要打肝素| 风湿类风湿有什么区别| 上皮细胞高是什么原因| 榆木脑袋是什么意思| 导演是干什么的| 抹茶绿配什么颜色好看| 慎重考虑是什么意思| 管状腺瘤是什么病| 土地出让金什么意思| fna是什么意思| 特需病房是什么意思| 喝完酒胃疼吃什么药| 腹泻拉水吃什么药| 金戈铁马是什么生肖| 绿幽灵五行属什么| 胸疼挂什么科| 文胸36码是什么尺寸| 芹菜吃多了会有什么影响| 什么食物是碱性的| 18kgp是什么金| 喝什么茶可以降尿酸| 什么眼镜品牌好| 生蚝什么时候最肥| 杰作是什么意思| t是什么| 争强好胜什么意思| 什么情况下做冠脉ct| 鸡属相和什么属相最配| 月经来了喝红糖水有什么好处| 活碱是什么| 金的部首是什么| 总胆固醇偏高吃什么药| 脚臭用什么泡脚效果好| tvt是什么意思| 无创是什么意思| 谪仙是什么意思| 泉水什么| 中国最厉害的武器是什么| hpv感染用什么药| 运动员心率为什么慢| 1988年属什么| 孕妇吃什么是补铁的| 心力憔悴是什么意思| 毛脚女婿是什么意思| 小腿肚子抽筋是什么原因| 百度Jump to content

为生命游行:全美反枪支暴力集会在多个城市举行

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 45.248.95.78 (talk) at 17:10, 4 January 2024. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Apache Subversion
Original author(s)CollabNet
Developer(s)Apache Software Foundation
Initial release20 October 2000; 24 years ago (2025-08-07)
Repository
Written inC
Operating system
TypeRevision control
LicenseApache-2.0[a]
Websitesubversion.apache.org Edit this on Wikidata
百度 确认过眼神青岛有我想要的蓝|有一种粉,叫樱花粉四月,当娇媚的樱花,绽放在清新的青岛,这座城里,便氤氲着浪漫的粉色。

Apache Subversion, or SVN. is a software versioning and revision 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

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-07 1.0.9 2025-08-07 No longer supported
Unsupported: 1.1 2025-08-07[7] 1.1.4 2025-08-07 No longer supported
Unsupported: 1.2 2025-08-07[8] 1.2.3 2025-08-07 No longer supported
Unsupported: 1.3 2025-08-07[9] 1.3.2 2025-08-07 No longer supported
Unsupported: 1.4 2025-08-07[10] 1.4.6 2025-08-07 No longer supported
Unsupported: 1.5 2025-08-07[11] 1.5.9 2025-08-07 No longer supported
Unsupported: 1.6 2025-08-07[12] 1.6.23 2025-08-07 No longer supported
Unsupported: 1.7 2025-08-07[13] 1.7.22 2025-08-07 No longer supported
Unsupported: 1.8 2025-08-07[14] 1.8.19 2025-08-07 No longer supported
Unsupported: 1.9 2025-08-07[15] 1.9.12 2025-08-07 No longer supported
Unsupported: 1.10 2025-08-07[16] 1.10.8 2025-08-07 No longer supported
Unsupported: 1.11 2025-08-07[17] 1.11.1 2025-08-07 No longer supported
Unsupported: 1.12 2025-08-07[18] 1.12.2 2025-08-07 No longer supported
Unsupported: 1.13 2025-08-07[19] 1.13.0 2025-08-07 No longer supported
Latest version: 1.14 2025-08-07[20] 1.14.3 2025-08-07 Fully supported, LTS
Future version: 1.15 2024-0x 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,[21] which records all release history.

Features

  • 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

Subversion offers two types of repository storage.

Berkeley DB (deprecated)

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).[22] The Berkeley DB backend was deprecated in version 1.8.[23]

FSFS

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.[22]

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

A new filesystem, called FSX, is under development to remove some limitations of FSFS. As of Version 1.9, it was not considered production-ready.[24]

Repository access

Access to Subversion repositories can take place by:

  1. Local filesystem or network filesystem,[25] 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.[26]

Layers

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

One can view the Subversion filesystem as "two-dimensional".[27] 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

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.[28]
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.[29]

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.[30]

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

Subversion uses the inter-file branching model from Perforce[31] to implement branches and tagging. A branch is a separate line of development.[32] 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

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,[33] both for regular commits and when merging branches.[34] The Subversion 1.5 release addressed some of these scenarios while others remained problematic.[35] 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.[36]

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.[37]

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.[38] Starting with version 1.7 Subversion uses a single centralized .svn folder per working area.[39]

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.[40] To mitigate this, third-party tools exist that allow for preserving modification time and other filesystem meta-data.[41][42] 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.[43] Some users of version control systems see the centralised model as detrimental; famously, Linus Torvalds attacked Subversion's model and its developers.[44]

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+.[45]

Subversion tags and branches

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".[46] 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.[47]

Development and implementation

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.[48] Since March 2010, the project is formally known as Apache Subversion, being a part of the Apache Top-Level Projects.[49]

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.[50]

The Subversion open-source community does not provide binaries, but potential users can download binaries from volunteers.[51] 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.[52]

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.[53]

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

Notes

  1. ^ Apache-2.0 since 2025-08-07.

References

Footnotes

  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-07. Retrieved 2025-08-07.
  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-07. 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-07.
  8. ^ "Subversion 1.2 Release Notes". Retrieved 2025-08-07.
  9. ^ "Subversion 1.3 Release Notes". Retrieved 2025-08-07.
  10. ^ "Subversion 1.4 Release Notes". Retrieved 2025-08-07.
  11. ^ "Subversion 1.5 Release Notes". Retrieved 2025-08-07.
  12. ^ "Apache Subversion 1.6 Release Notes". Retrieved 2025-08-07.
  13. ^ "Apache Subversion 1.7 Release Notes". Retrieved 2025-08-07.
  14. ^ "Apache Subversion 1.8 Release Notes". Retrieved 2025-08-07.
  15. ^ "Apache Subversion 1.9 Release Notes". Retrieved 2025-08-07.
  16. ^ "Apache Subversion 1.10 Release Notes". Retrieved 2025-08-07.
  17. ^ "Apache Subversion 1.11 Release Notes". Retrieved 2025-08-07.
  18. ^ "Apache Subversion 1.12 Release Notes". Retrieved 2025-08-07.
  19. ^ "Apache Subversion 1.13 Release Notes".
  20. ^ "Apache Subversion 1.14 LTS Release Notes". subversion.apache.org. Retrieved 2025-08-07.
  21. ^ "Apache Subversion's CHANGES file". Retrieved 2025-08-07.
  22. ^ 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.
  23. ^ "Apache Subversion 1.8 Release Notes". Apache Project. Retrieved 5 May 2020.
  24. ^ "Apache Subversion 1.9 Release Notes".
  25. ^ Berkeley DB relies on file locking and thus should not be used on (network) filesystems which do not implement them
  26. ^ SVN 1.5 release notes
  27. ^ Basic Merging
  28. ^ "rcs(1)". OpenBSD manual pages.
  29. ^ Subversion Properties
  30. ^ pre-revprop-change
  31. ^ Inter-File Branching: A Practical Method for Representing Variants Archived 2025-08-07 at the Wayback Machine
  32. ^ Branching / Tagging — TortoiseSVN
  33. ^ "Implement true renames". Archived from the original on 2025-08-07. Retrieved 2025-08-07.
  34. ^ Advanced Merging
  35. ^ Copy/move-related improvements in Subversion 1.5
  36. ^ Working copy records moves as first-class operation in Subversion 1.8
  37. ^ "[SVN-516] svn obliterate". Retrieved 2025-08-07.
  38. ^ "Subclipse - Repair SVN Checksum".
  39. ^ Working Copy Metadata Storage Improvements (client)
  40. ^ "[SVN-1256] Ability to preserve last modification time (mtime) of files under version control". Retrieved 2025-08-07.
  41. ^ FreezeAttrib (saves/restores file attributes using properties)
  42. ^ fsvs – Full System Versioning System on GitHub
  43. ^ Programmer Insecurity @ iBanjo
  44. ^ Google Tech Talk video and its transcript
  45. ^ "[SVN-2464] Canonicalize / stringprep UTF-8 filenames to handle composed / decomposed differences shown by e.g. Mac OS X HFS+". Retrieved 2025-08-07.
  46. ^ For example: Weintraub, David (23 May 2005). "Subversion 'labels' vs. 'tags'". SVN Dev (Mailing list). Retrieved 5 May 2020.
  47. ^ "Apache Subversion Roadmap". Apache Project. Retrieved 5 May 2020.
  48. ^ "Subversion Submitted to Become a Project at The Apache Software Foundation". November 4, 2009. Retrieved October 1, 2019.
  49. ^ "CollabNet Supports Subversion's Graduation to Apache Top-Level Project". CollabNet. 1 March 2010. Archived from the original on 2025-08-07.
  50. ^ 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-07. Retrieved October 29, 2011.
  51. ^ "Apache Subversion Binary Packages". Official project website. Retrieved October 29, 2011.
  52. ^ 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-07. Retrieved October 29, 2011.
  53. ^ "Apache Subversion Roadmap". Official project website. Retrieved October 29, 2011.

Sources

  • 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

黄金螺吃什么 部级干部是什么级别 血清铁低是什么原因 梦魇是什么 梦见红鞋子是什么意思
copd是什么意思 8月7日什么星座 清华大学前身叫什么 傻白甜什么意思 过敏看什么科室
什么魂什么魄 什么血型是熊猫血 称心如意是什么意思 白球比偏低吃什么补 胡同是什么意思
一个六一个允念什么 和田玉五行属什么 吃红萝卜有什么好处 吃什么营养神经 血糖高喝什么好
结扎什么意思hcv8jop3ns1r.cn 指甲变空是什么原因hcv7jop5ns6r.cn 首台套是什么意思hcv8jop6ns4r.cn 郭麒麟什么学历hcv8jop0ns0r.cn 家庭长期饮用什么水最好hcv8jop5ns3r.cn
哽咽是什么意思fenrenren.com 吃什么能让月经快点来chuanglingweilai.com 肚脐左下方疼是什么原因hcv8jop4ns5r.cn 什么牌子冰箱好hcv9jop1ns8r.cn 鱼子酱是什么鱼hcv7jop5ns4r.cn
关照是什么意思hcv7jop6ns2r.cn 5月6号是什么星座hcv8jop7ns8r.cn 直系亲属为什么不能输血hcv8jop6ns5r.cn 薏米和什么一起煮粥最好hcv9jop6ns0r.cn 福尔马林是什么味道hcv7jop5ns2r.cn
指甲发青是什么原因hcv9jop8ns2r.cn 什么叫静息心率hcv8jop6ns3r.cn 芒果不能和什么水果一起吃hcv7jop4ns5r.cn 肝火旺吃什么降火最快yanzhenzixun.com 心机女是什么意思hcv7jop5ns6r.cn
百度