beam是什么意思| 仙灵脾又叫什么| 后脑勺发胀是什么原因| 多酚是什么| 1月5号什么星座| 什么样的青蛙| 吃什么下奶快| 不以为然是什么意思| 感冒喝什么饮料| 硌脚是什么意思| 吃什么治肝病| 细菌感染是什么原因引起的| bees是什么意思| 精血是什么| 手指月牙白代表什么| 什么动物会冬眠| 腹泻能吃什么水果| 酒鬼酒是什么香型| 减肥平台期什么意思| 车水马龙什么意思| elsa是什么意思| 儿童淋巴结肿大挂什么科| 什么东西泡水喝降血压| 筋膜炎吃什么药| 睡午觉有什么好处| 妈妈是什么意思| 什么样的人容易得抑郁症| 峻字五行属什么| 看淋巴挂什么科室| 头疼什么原因| 作奸犯科是什么意思| 李子吃多了有什么坏处| 正常舌头是什么颜色| 灵芝的功效与作用是什么| 梦见亲人哭是什么征兆| 浮生若梦什么意思| 肋骨骨折挂什么科| 胃痛胃胀什么原因引起的| 总是放响屁是什么原因| 红细胞低吃什么补得快| 阳春三月是什么意思| 鹦鹉能吃什么| 东方明珠什么时候亮灯| 经常流鼻血是什么原因引起的| 潜血十一是什么意思| 小猫吃什么东西| jhs空调是什么牌子| 血脂高吃什么药效果好| 什么东西含铅量高| 三个句号代表什么意思| 酸儿辣女什么意思| 什么是尿崩症| 梦见狗追我是什么意思| 深圳属于什么气候| 苏州为什么叫姑苏| 女生过生日送什么礼物好| 湿热是什么意思| 皮肤过敏擦什么药膏好得快| 吃什么增加血小板| 吃什么补充胶原蛋白| 老人生日送什么礼物好| 开心果树长什么样| 什么同道合| 肿瘤标志物五项检测是什么| 一个西一个米念什么| 抽筋什么原因| 为什么去香港还要通行证| 什么是风湿| 看包皮挂什么科| 结局be是什么意思| 肾阳虚吃什么中药| 血管炎不能吃什么食物| b类火灾是指什么| 痰湿吃什么药| 非典型腺细胞是什么意思| 嘴上长痘痘是什么原因| 缺铁性贫血吃什么好| 人中龙凤下一句是什么| 空调什么牌子最好| 什么是理数| 黑曼巴是什么意思| 茉莉花茶属于什么茶类| 咽喉痛吃什么药| 红薯叶不能和什么一起吃| 心梗什么症状| 护肝片什么时候吃最好| 盆腔炎吃什么药好得快| 开封古代叫什么| 头痛眼睛痛什么原因引起的| 收缩压是什么意思| 咒怨讲的是什么故事| 堃怎么读什么意思| 心包积液挂什么科| mk包包属于什么档次| 11年属什么| 检查视力挂什么科| 尿常规隐血弱阳性什么意思| 头痛吃什么药最好| 腰椎退行性改变是什么意思| 多囊为什么要跳绳而不是跑步| 什么原因导致尿酸高| 硬化萎缩性苔藓是什么病| 血糖高早餐吃什么最好| 糖尿病患者能吃什么水果| 各类病原体dna测定是检查什么| 廉航是什么意思| 小狗拉稀吃什么药| 莫名其妙什么意思| leep是什么意思| 肩胛骨缝疼挂什么科| 痢疾是什么| 白色裤子配什么上衣好看| 梦见大山是什么预兆| 微量泵是干什么用的| 番茄红素有什么作用| 胸膜炎什么症状| 宋字五行属什么| 被蜜蜂蛰了擦什么药| 给小孩办身份证需要什么| 爆单什么意思| 脾胃虚弱吃什么药调理| 孕妇低血压什么补最快| 耳鸣用什么药| shiraz是什么名字红酒| 焦虑症是什么症状| ad和d3有什么区别| 大头虾是什么意思| 淋巴细胞减少说明什么| 玻璃水是什么| 衰是什么意思| 月结是什么意思| 飞的最高的鸟是什么鸟| 舌尖溃疡是什么原因| 便秘吃什么好| 雨渐耳符咒有什么用| 剑锋金命五行缺什么| 邵字五行属什么| 每天早上起床头晕是什么原因| 乐极生悲是什么意思| 硬气是什么意思| 请什么自什么| 常打嗝是什么原因| ac是什么意思| 徒木立信是什么意思| 夜来香是什么花| 一戴套就软是什么原因| 牙龈肿痛吃什么药最好| 24岁属什么生肖| 风采依旧是什么意思| 海竹是什么| 胆固醇高会引起什么病| 红指什么生肖| cod是什么| 被口是什么感觉| 免疫力低会引起什么病| 什么是卤水| 什么是粒子| 看见黄鼠狼有什么预兆| 心电图t波改变什么意思| 茜色是什么颜色| 炝锅是什么意思| 排比句是什么意思| 凯莉包是什么牌子| 长发公主叫什么名字| 谏什么意思| 雍土念什么| 没有什么| 睡眠不好挂什么科| 朝霞什么晚霞什么| 下山虎是什么意思| 多囊性改变是什么意思| 私募是什么| 梦见买东西是什么意思| 生姜放肚脐眼有什么功效| 百合是什么颜色| 1992年属什么生肖| 什么是什么造句| 诱因是什么意思| 梦到自己流鼻血是什么预兆| 叶公好龙的意思是什么| 天秤座和什么座最配| 肠梗阻是什么原因引起的| 四月二十八什么星座| 高大上是什么意思| 焦距是什么意思| 碱性磷酸酶低是什么原因| 鬼见愁是什么意思| 05属什么生肖| 武汉都有什么区| 甲亢是什么原因引起的| 节瓜是什么瓜| 阴虚吃什么中成药| 皮肤容易过敏是什么原因| 胸闷是什么原因引起的| 大肠杆菌是什么| 前列腺在人体什么位置| 病理切片是什么意思| 长脸型适合什么样的发型女| 血小板低看什么科| 12320是什么电话| 眼皮跳什么预兆| 生肖羊生什么生肖最好| 眉毛淡的男人代表什么| 脚趾发紫是什么原因| 晚上睡觉口干舌燥是什么原因| 梦见买肉是什么意思| 鼻窦炎首选什么抗生素| 三月出生的是什么星座| 宽粉是什么做的| sop是什么意思| 子宫结节是什么意思| 色调是什么意思| 扳机是什么意思| 房颤什么症状| 玫瑰花可以和什么一起泡水喝| 利妥昔单抗是治什么病| 手上起小水泡痒是什么原因| 6度醋与9度有什么区别| 六尘不染的生肖是什么| 腿毛长得快是什么原因| 梦见前女友是什么预兆| 风疹病毒抗体偏高是什么意思| 精子吃了有什么好处| 滑膜炎吃什么药能治好| 痱子粉和爽身粉有什么区别| 阴茎硬不起吃什么药| 气血不足吃什么补得快| 突然高血压是什么原因引起的| 什么叫同理心| 12min是什么意思| 脸肿是什么原因| 黑暗料理是什么意思| 恩客是什么意思| 吃护肝片有什么副作用| 胸疼是什么原因引起的| 一月份什么星座| 2h是什么意思| 0n是什么意思| puella是什么牌子衣服| 什么是植物神经功能紊乱| 使婢差奴过一生是什么意思| 叶酸什么时间吃最好| 吃相难看是什么意思| 一个月一个屯念什么| 皮损是什么意思| 肝小钙化灶是什么意思| 着床出血是什么样子的| 儿童中暑吃什么药| 梦见粽子是什么预兆| 手冲是什么意思| 初潮是什么| 偶尔失眠是什么原因| sf什么意思| 神是什么偏旁| 兔死什么悲| 梦见朋友离婚了是什么意思| 热菜是什么梗| max是什么意思| 1981属什么| 日和立念什么| 鼻尖长痣代表什么| 脑梗有什么症状前兆| 蓝色与什么色搭配好看| pu是什么| 百度Zum Inhalt springen

滚动新闻--山东频道--人民网

aus Wikipedia, der freien Enzyklop?die
(Weitergeleitet von Subversion (Software))
Apache Subversion 百度 从进入新疆开始,它的故事就会一点一点的印入你的脑海,它的美丽,它的巍峨,都会让你忍不住想要拥抱它。

Subversion-Logo
Basisdaten

Entwickler CollabNet, Apache Software Foundation
Erscheinungsjahr 2000
Aktuelle Version 1.14.5[1]
(8. Dezember 2024)
Betriebssystem GNU/Linux[2], Microsoft Windows[2], macOS[2], BSD-Betriebssystem[2], Unix-?hnliches System, AIX, HP-UX[3], Solaris[4], BeOS, OS/2
Programmier-sprache C[5][6], Python[5], C++[5], Java[5], Ruby[5], Perl[5]
Kategorie Versionsverwaltung
Lizenz Apache-Lizenz, Version 2.0[7]
deutschsprachig ja
subversion.apache.org
Zentrale Verwaltung eines Repositoriums mit Hilfe von Subversion.

Apache Subversion (SVN) ist eine freie Software zur zentralen Versionsverwaltung von Dateien und Verzeichnissen.

Die Versionierung erfolgt in einem zentralen Repositorium bzw. Projektarchiv (engl. repository) in Form einer einfachen Revisionsz?hlung. Wenn ?nderungen an Inhalten verteilt auf den Computern der Bearbeiter ausgeführt werden, werden zwischen dem Projektarchiv und einem Arbeitsplatz jeweils nur die Unterschiede zu bereits vorhandenen St?nden übertragen.

Subversion wird als freie Software unter einer Lizenz im Stil der Apache-Lizenz ver?ffentlicht.

Die Benennung ?Subversion“ setzt sich aus den Worten Sub und Version zusammen und kann so als Unterversion, frühere Version verstanden werden. Der Name wurde von Jim Blandy gepr?gt, der auch das initiale Design des Subversion-Speichers definierte. Er verstand die Software als eine Weiterentwicklung von CVS, wobei als Reaktion auf weit verbreitete Kritik an CVS insbesondere die Handhabung von Versionshistorien ge?ndert wurde.[9] So ist es mit Subversion – im Gegensatz zu CVS – z. B. m?glich, Dateien oder Verzeichnisse zu verschieben oder umzubenennen, ohne die Versionsgeschichte zu verlieren. Details finden sich im Abschnitt Unterschiede zu CVS. In der Bedienung der Kommandozeilenversion ist es dagegen sehr ?hnlich gehalten.

Mit cvs2svn gibt es einen Konverter, mit dem ein CVS-Repositorium zu Subversion konvertiert werden kann. Auch für die Migration von anderen Versionsverwaltungs-Systemen (etwa PVCS, Visual Source Safe, ClearCase, MKS, Perforce, StarTeam, …) sind verschiedene kostenfreie Import-Werkzeuge erh?ltlich.

Subversion wurde seit Anfang 2000 bei CollabNet entwickelt.

Am 4. November 2009 gaben ehemaliger und neuer Hoster in einer gemeinsamen Presseerkl?rung bekannt, dass das Projekt auf Entschluss von CollabNet zur Apache Software Foundation wechseln werde.[10] Am 7. November 2009 startete Apache Subversion im Apache Incubator, seit 17. Februar 2010 ist Apache Subversion ein Top-Level-Apache-Projekt.

Ver?ffentlichungen

[Bearbeiten | Quelltext bearbeiten]
Version Erscheinungsdatum Bemerkungen
?ltere Version; nicht mehr unterstützt: - 5. Juni 2000 CVS-Repositorium zur gemeinsamen Entwicklung eingerichtet.
?ltere Version; nicht mehr unterstützt: 0.9 15. Februar 2002 Gro?e Fortschritte beim Repositoriums-Konverter cvs2svn, Kommando svn switch eingeführt, Quelltext reorganisiert und aufger?umt, Build-System erneuert.
?ltere Version; nicht mehr unterstützt: 0.14.0 23. Juli 2002 Erste Alpha-Version ver?ffentlicht.
?ltere Version; nicht mehr unterstützt: 0.35.1 19. Dezember 2003 Erste Beta-Version ver?ffentlicht.
?ltere Version; nicht mehr unterstützt: 1.0 23. Februar 2004 Version 1.0 fertiggestellt.
?ltere Version; nicht mehr unterstützt: 1.1 29. September 2004 Projektarchive (Repositorien) k?nnen nicht mehr nur in einer Berkeley-Datenbank verwaltet werden, sondern auch direkt im Dateisystem. Internationalisierte Programmausgaben.
?ltere Version; nicht mehr unterstützt: 1.2 21. Mai 2005 Bearbeitungssperren für Dateien, was für bin?re Dateien von Vorteil sein kann.
?ltere Version; nicht mehr unterstützt: 1.3 30. Dezember 2005 Verbesserungen in den Bereichen Server-Logging, Autorisierung, Programmiersprachen-Anbindungen, Kommando-Optionen und Performance.
?ltere Version; nicht mehr unterstützt: 1.4 10. September 2006 Neues Programm svnsync, welches das Spiegeln von Projektarchiven (Repositorien) erm?glicht.
?ltere Version; nicht mehr unterstützt: 1.5 19. Juni 2008 Neue Funktionalit?t Merge-Tracking, das dokumentierte Zusammenführen verschiedener Teilb?ume.
?ltere Version; nicht mehr unterstützt: 1.6 20. M?rz 2009 Verbesserungen des Merge-Tracking und der Sicherheitsfunktionen.
?ltere Version; nicht mehr unterstützt: 1.7 11. Oktober 2011 ?nderung der Metadatenverwaltung: Anstatt Metadaten in .svn-Ordnern in jedem Unterverzeichnis zu speichern, werden diese jetzt zentral in einem einzigen .svn-Ordner im Hauptverzeichnis der Arbeitskopie in einer SQLite-Datenbank gespeichert.
?ltere Version; nicht mehr unterstützt: 1.8 18. Juni 2013 Lokales (Working copy) Verschieben/Umbenennen von Dateien wird transparent unterstützt, Vereinfachungen des Re-Integrierens von Teilb?umen, vererbte Eigenschaften und Einstellungen direkt im Projektarchiv.
?ltere Version; nicht mehr unterstützt: 1.8.18 7. Juli 2017 Kleinere Fehlerbehebungen, unter anderem für m?gliche SHA1-Kollisionen[11][12]
?ltere Version; nicht mehr unterstützt: 1.8.19 10. August 2017 Sicherheitsupdate um Client-seitige Ausführung von beliebigem Code zu verhindern (CVE-2017-9800).[13][14]
?ltere Version; nicht mehr unterstützt: 1.9 5. August 2015 Neues, verbessertes FSFS-Dateiformat Version 7, neues Tool svnfsfs, experimentelles FSX-Dateiformat, neues svn-Unterkommando auth, Server-seitige Performance-Verbesserungen, Erweiterung der Tools svnadmin und svnbench, 3-Wege-Konflikt- und diff3-Verbesserungen, vorausschauendes blame.
?ltere Version; nicht mehr unterstützt: 1.9.6 6. Juli 2017 Speicherbedarf bei Verwendung gro?er Mengen an Merge-Metadaten reduziert, einzelne Fehlermeldungen verbessert, Konsistenzprüfung nun unabh?ngig von Hash-Algorithmen um beispielsweise SHA1-Kollisionen zu entgehen, weitere kleine Fehlerbehebungen.[15][16]
?ltere Version; nicht mehr unterstützt: 1.9.10 11. Januar 2019 Sicherheitsupdate um Client-seitige Ausführung von beliebigem Code zu verhindern (CVE-2017-9800).[17][18]
?ltere Version; nicht mehr unterstützt: 1.10.4 11. Januar 2019 Improved path-based authz, new interactive conflict resolver, LZ4 compression, FSFS format 8, shelving.[19]
?ltere Version; nicht mehr unterstützt: 1.10.8 12. April 2022 Letzte Version des 1.10.x-Astes mit Langzeitunterstützung (LTS), mit Erscheinen des 1.14.x-LTS-Asts wurde dieser Ast zum aktuellen ?Old-Stable“. Die Unterstützung endete am 24. September 2023. Anwender- und entwicklungsseitige Verbesserungen siehe ?nderungshistorie.[20] Enth?lt weiterhin Patches gegen CVE-2021-28544 SVN authz protected copyfrom paths regression und CVE-2022-24070 Subversion's mod_dav_svn is vulnerable to memory corruption, siehe Beschreibung in Release Announcement for Apache Subversion 1.10.8 sowie dort verlinkte Schwachstellenmeldungen.[21]
?ltere Version; nicht mehr unterstützt: 1.11.1 11. Januar 2019 Improved shelving, checkpointing, improved tree conflict resolution.[22]
?ltere Version; nicht mehr unterstützt: 1.12.0 24. April 2019 Improved shelving, improved checkpointing, improvements to the interactive conflict resolver.[23]
?ltere Version; nicht mehr unterstützt: 1.13.0 30. November 2019 [24]
?ltere Version; nicht mehr unterstützt: 1.14.0 27. Mai 2020 [25]
?ltere Version; nicht mehr unterstützt: 1.14.2 12. April 2022[26] Vorherige stabile Version des 1.14.x-Astes mit Langzeitunterstützung (LTS).

Anwender- und entwicklungsseitige Verbesserungen siehe ?nderungshistorie.[27]

Enth?lt weiterhin Patches gegen CVE-2021-28544 SVN authz protected copyfrom paths regression und CVE-2022-24070 Subversion's mod_dav_svn is vulnerable to memory corruption, siehe Beschreibung in Release Announcement for Apache Subversion 1.14.2 sowie dort verlinkte Schwachstellenmeldungen.[28]

?ltere Version; nicht mehr unterstützt: 1.14.3 28. Dezember 2023[29]
?ltere Version; nicht mehr unterstützt: 1.14.4 8. Oktober 2024[30]
Aktuelle Version: 1.14.5 8. Dezember 2024[31] Aktuelle stabile Version des 1.14.x-Astes mit Langzeitunterstützung (LTS).
Vorabversion: 1.14.6 2025[32] N?chste geplante stabile Version des 1.14.x-Astes mit Langzeitunterstützung (LTS).
Zukünftige Version: 1.15.0 20XX[33] Zukünftige stabile Hauptversion (neuer 1.15.x-Ast).

Geplante Client-seitige Verbesserungen: Gleichzeitige Unterstützung mehrerer Arbeitskopieformate in einem Projekt (ab 1.8 bis 1.15). Geschwindigkeitssteigerung.

Legende:
?ltere Version; nicht mehr unterstützt
?ltere Version; noch unterstützt
Aktuelle Version
Aktuelle Vorabversion
Zukünftige Version

Das Versionsschema von Subversion bezieht sich nicht auf einzelne Dateien, sondern auf das ganze Projektarchiv. Dieses bekommt bei jeder ?nderung eine neue ?Revisionsnummer“ zugeordnet. Somit kann einfach und konsistent eine exakte Version des Projektarchivs beschrieben werden (z. B. ?Revision 2841“ statt ?Version vom 23. M?rz 2004 20:56:31 UTC“). Die Revisionsnummer einer Datei entspricht dabei der Revisionsnummer des Projektarchivs zum Zeitpunkt der letzten ?nderung der Datei. Die Revisionsnummer eines Verzeichnisses entspricht der h?chsten Revisionsnummer aller enthaltenen Dateien und Verzeichnisse. Die Abfolge der Revisionsnummern einer einzelnen Datei kann also durchaus lückenhaft sein, wenn die Datei nicht bei jeder ?nderung (Commit) am Repositorium ge?ndert wurde. Beispielsweise k?nnte eine Datei bei der Revision 40 zum Projektarchiv hinzugefügt und jeweils einmal in der Revision 48 und der Revision 52 ver?ndert worden sein. Beim Abrufen (Checkout) einer Datei wird die gr??te Revisionsnummer abgerufen, die kleiner oder gleich der angeforderten ist. Wird in dem Beispiel die Revision 52 angefordert, so wird die Revision 52 der Datei abgerufen; wird hingegen die Revision 51 angefordert, liefert Subversion die Inhalte von Revision 48.

?nderungsverfolgung

[Bearbeiten | Quelltext bearbeiten]

Subversion speichert Client-seitig bei jedem Checkout, Update und Commit einer Datei eine Kopie, welche im .svn-Verzeichnis abgelegt wird. Dadurch verdoppelt sich der Speicherbedarf einer Arbeitskopie, allerdings bietet dies bei entfernten Projektarchiven auch einige Vorteile. So k?nnen einige Aktionen, wie Anzeige der lokalen ?nderungen, ganz ohne Netzwerkzugriff erfolgen, und Subversion muss beim übertragen nur die ge?nderten Teile einer Datei übertragen. Auch ist es m?glich, jederzeit die ?nderungen einer Datei gegenüber ihrer Basisversion zu ermitteln oder zurückzunehmen, ohne das Projektarchiv zu konsultieren.

Export-Kommando

[Bearbeiten | Quelltext bearbeiten]

Da die im .svn-Ordner enthaltenen Metadaten etwa auf einem Produktivsystem nicht erwünscht sind, gibt es in Subversion das export-Kommando, welches die Dateien ohne die Metadaten des .svn-Ordners ins Dateisystem schreibt. Dies unterscheidet einen Export von einem Checkout.

Atomare Commits

[Bearbeiten | Quelltext bearbeiten]

Commits geschehen in Subversion atomar, das hei?t, eine ?nderung – auch mehrerer Dateien – wird entweder ganz oder gar nicht ins Repositorium gespeichert. Verbindungsabbrüche und mehrere gleichzeitige Zugriffe k?nnen somit nicht zu inkonsistenten Zust?nden führen.

?Billige Kopien“

[Bearbeiten | Quelltext bearbeiten]

Subversion ist in der Lage, Kopien von Dateien so zu verwalten, dass den Kopien derselbe Bearbeitungsverlauf gemeinsam ist. Dieser Umstand ist besonders dann nützlich, wenn ?nderungen an einer der Dateien in die andere portiert werden sollen. Zur Erstellung einer Kopie werden die Dateien auch nicht dupliziert, sondern es wird eine Datenbank-interne Verknüpfung angelegt, die im weiteren Verlauf genauso weiterverwendet werden kann wie das Original. Von dieser Technik wird h?ufig als billige Kopie[34] gesprochen.

Umbenennungs- und Verschiebungskonzept

[Bearbeiten | Quelltext bearbeiten]

Das Kopie-Konzept wird bei der Umbenennung und Verschiebung von Dateien eingesetzt: Subversion realisiert diese, indem es eine Kopie anlegt und das Original als gel?scht markiert, dabei kommt es zu keinem Bruch im Versionsverlauf.

Eine native Unterstützung für Verschiebung und Umbenennung ist auf der Entwicklerseite als mittelfristiges Ziel genannt.[35]

Tag- und Branchkonzept

[Bearbeiten | Quelltext bearbeiten]

Neben dem ge?nderten Datenbank-Modell sticht das zu anderen Versionsverwaltungssystemen v?llig unterschiedliche Konzept im Bereich der Benennung von Dateiversionen (sogenanntes Tagging) und der Verzweigung in Varianten (sogenanntes Branching) hervor. W?hrend die Benennung von Tags und Branches in den meisten anderen Versionsverwaltungssystemen wie Git, Mercurial oder auch CVS eine klare semantische Bedeutung hat, kennt Subversion nur das Konzept der ?billigen Kopie“, die je nach Nutzungsart ?Tag-“ oder ?Branch-Charakter“ haben kann. Jede Kopie in Subversion ist demnach automatisch eine Variante dieser Datei oder des Verzeichnisses. Namentliche Kennzeichnungen entstehen in Subversion durch eine Kopie, die sp?ter nicht mehr ver?ndert werden sollte. Wegen des Fehlens einer Tag- oder Branch-Semantik obliegt die Strukturierung und Verwaltung von Kennzeichnungen und Verzweigungen dem Benutzer und Administrator. Dabei hat es sich bew?hrt, für Projekte die Basisverzeichnisse trunk (dt. ?Stamm“), branches (dt. ?Verzweigungen“) und tags (dt. ?Markierungen“) anzulegen. Das Verzeichnis trunk enth?lt dabei die Hauptentwicklungslinie des Projekts, in branches werden weitere Unterverzeichnisse mit alternativen Entwicklungspfaden verwaltet und in tags eine Kopie von trunk oder einem der branches als Unterverzeichnis angelegt. Zur besseren übersicht werden je nach Projektanforderungen tags und branches noch in weitere Unterverzeichnisse unterteilt. Als HEAD bezeichnet man die neueste Version (engl. ?top revision“) innerhalb einer Verzweigung.

Visualisierung eines Subversion-Projektes

Da branches und tags nur Kopien im Dateisystem sind, entsteht bei deren Erstellung zwangsl?ufig ein neuer Commit. Zudem muss sich jeder Entwickler an die vorgegebene Semantik halten. So ist es etwa m?glich, tags und branches von Teilen des Dateisystems oder gar vom ganzen Dateisystem inklusive aller bisherigen tags und branches zu erstellen, in einen tag nachtr?glich ?nderungen zu committen oder Dateien oder Verzeichnisse au?erhalb der vorgesehenen Dateistruktur anzulegen. So ein regelwidriges Verhalten kann durch serverseitige Skripte unterbunden werden.

Da Dateien in Subversion auch versionskontrolliert umbenannt werden k?nnen, kann die Projektstruktur jederzeit gestiegenen oder gesunkenen Anforderungen angepasst werden.

Verzeichnisse und Metadaten

[Bearbeiten | Quelltext bearbeiten]

In CVS und anderen Versionskontrollsystemen wie SCCS, RCS oder Git werden nur die Dateien verwaltet. Die Verzeichnisstruktur existiert, entsteht und verschwindet implizit – gem?? der Pfade der verwalteten Dateien. Im Gegensatz dazu geh?ren in Subversion auch die Verzeichnisse zu den verwalteten Inhalten. Insbesondere verschwindet ein geleertes Verzeichnis nicht automatisch, sondern müsste dazu explizit als gel?scht markiert werden. Hierdurch k?nnen in Subversion auch leere Verzeichnisse ein- und ausgecheckt werden.

Weiterhin k?nnen in Subversion Metadaten verwaltet werden. Sie werden nicht wie die Inhalte im Verzeichnisbaum abgelegt, sondern direkt in der internen Datenbank gespeichert, und daher bei Verwendung des Export-Befehls auch nicht mit exportiert. ?nderungen an den Metadaten werden wie Inhalts?nderungen eingecheckt und erh?hen die Revisionsnummer der annotierten Inhalte.

Subversion bietet einen verbesserten Umgang mit Bin?rdaten. Es erkennt solche Dateien (beispielsweise Bilder oder Audiodateien) weitgehend automatisch, und es werden (wie bei Textdateien) nur die Differenzen zwischen den ge?nderten Versionen gespeichert.

Dateien, die bereits durch einen Commit im Repositorium gespeichert wurden, k?nnen als gel?scht markiert werden, sind dann aber immer noch mit ihrer gesamten Historie vorhanden. Ein vollst?ndiges Entfernen von Dateien (mitsamt Versionshistorie) entspricht nicht den Grunds?tzen von Subversion und l?sst sich nur mit gro?em Aufwand als Administrator durchführen.

Die Metadaten erlauben die Speicherung von Attributen wie etwa Dateien, die ignoriert werden sollen, oder solche, die auf Systemen, die dies unterstützen, als ausführbar markiert werden sollen. Neben den von SVN vordefinierten Werten, zu denen etwa auch Merge-Informationen geh?ren, k?nnen hier auch beliebige andere Werte hinterlegt werden. Allerdings werden diese Metadaten teilweise als intransparent kritisiert, da sie je nach Client gut versteckt sind und teils von Subversion selbst gesetzt werden.

Wie CVS bietet Subversion den Netzwerkzugriff über einen eigenen Server, auf den mit SSH auch verschlüsselt zugegriffen werden kann. Zus?tzlich hierzu und der Speicherung im lokalen Dateisystem, gibt es auch ein Modul für den Apache-2-Webserver, mit dem die Daten auch mit der HTTP/HTTPS-Erweiterung WebDAV übertragen werden k?nnen. Somit kann die aktuelle Revision einer Datei auch mit einem gew?hnlichen Webbrowser abgerufen werden.

Subversion verwaltet das gesamte Repositorium in einer Datenbank, deren Dateien nicht die Struktur des Repositoriums-Inhalts widerspiegeln. Die Integrit?t der Datenbank l?sst sich so verzeichnisübergreifend überprüfen. Es stehen dabei aktuell zwei Backends zur Verfügung. Das in der Version 1.1 hinzugefügte fsfs-Backend verwendet ein eigenes Format. Das andere Backend verwendet das Berkeley-Datenbanksystem, dies hat jedoch den Nachteil, dass die Daten einerseits – abh?ngig von der verwendeten Version – dessen bin?ren Inkompatibilit?ten unterliegen, und andererseits den damit eingebrachten Stabilit?tsproblemen. Dies kann zur Folge haben, dass ein mit einer ?lteren Version erstelltes Repositorium an die neue Version angepasst werden muss. Zudem ist der Zugriff über NFS und Windows-Netzwerkfreigaben dann nicht m?glich.

Subversion definiert selbst die Zeichenkodierung, welche für Dateinamen und Logbuch-Eintr?ge im Repositorium benutzt wird. Damit k?nnen beispielsweise auch Dateien mit Umlauten im Namen auf Systemen mit verschiedenen Zeichen-Codierungen (beispielsweise CP1252 (deutschsprachiges Windows), UTF-8 (Linux)) benutzt werden. Allerdings ergeben sich bei Zeichen in Dateinamen, die in UTF-8 sowohl composed als auch decomposed gespeichert werden k?nnen, Probleme auf macOS-basierten Systemen. Dies betrifft etwa Umlaute, die in UTF-8 als ein Zeichen (?, composed) und als zwei Zeichen (A und ¨, decomposed) gespeichert werden k?nnen.[36]

Abh?ngigkeiten von Subversion

[Bearbeiten | Quelltext bearbeiten]

Für eine Installation der Basisfunktionen muss ab Version 1.1.0 nur die Apache Portable Runtime-Bibliothek vorhanden sein. Zuvor war auch noch eine Berkeley-DB in einer Version 4.0 oder h?her notwendig, was aber hinf?llig ist, seit das Repositorium mit Hilfe des FSFS-Backend optional auch direkt im Dateisystem gespeichert werden kann.

Apache 2 und Neon sind für die WebDAV-Nutzung erforderlich, Python 2.x für einige mitgelieferte Test-Skripte, eine SSL-Implementierung, wenn man WebDAV verschlüsseln will. Ab Version 1.4 kann alternativ auch Serf anstatt Neon für WebDAV verwendet werden.

Repositorien werden – wie bei CVS – mit dem Aufruf eines Befehls eingerichtet. Damit kann bei lokalem Zugriff sofort gearbeitet werden. Eine Server-Konfiguration verl?uft abh?ngig von der gew?hlten Methode unterschiedlich, gleicht aber derjenigen anderer Systeme, CVS eingeschlossen.

Mit dem WebDAV-Modul wird der Apache-HTTP-Server auch direkt zum eigentlichen Serverprozess für Subversion-Repositorien. Die Subversion-Inhalte werden dabei über eine gew?hnliche URL per HTTP oder verschlüsselt per HTTPS adressiert. Mittels eines normalen Web-Browsers kann ein Repositorium durchsucht werden (zumindest die aktuelle Version). Da Subversion damit auch den normalen HTTP-Port 80 verwendet, ist oft keine zus?tzliche Konfiguration von Firewall o. ?. notwendig.

Subversion kann auch mit einem eigenen Apache-unabh?ngigen Serverprozess verwendet werden. Dieser verwendet ein eigenes Netzwerkprotokoll, das – weil für Subversion optimiert – effizienter ist als das Apache-Modul. Der Standard-Port ist 3690, für verschlüsselte Datenübertragungen und eine entsprechend geschützte Authentifizierung kann das SVN-Protokoll mit SSH kombiniert werden.

Unterschiede zu CVS

[Bearbeiten | Quelltext bearbeiten]
Versionsschema
CVS basiert auf dem ?lteren RCS-System und hat hiervon das interne Speicherformat übernommen. Dieses Format ist ausschlie?lich für die Verwaltung der Versionsgeschichte von einzelnen Dateien ausgelegt. CVS hat für die Verwaltung von Projekten mit mehreren Dateien eine sehr einfache L?sung gew?hlt: Das Projekt wird als Sammlung von Dateien betrachtet, von denen jede für sich eine eigene Historie hat. Insbesondere in der Softwareentwicklung geh?ren aber h?ufig ?nderungen an mehreren Dateien in einem logischen Schritt zusammen. So muss beispielsweise in einem C-Projekt bei Anpassung einer Funktionsdeklaration in foo.h immer auch die Implementierung in foo.c angepasst werden. Dass der Schritt von foo.h auf die Version 1.5 mit dem Schritt von foo.c auf die Version 1.9 zusammenh?ngt, kann in CVS nicht abgebildet werden. Es kann nur durch weiche Kriterien wie zeitliche N?he oder gleiche Commit-Nachricht gefolgert werden oder durch Vergabe eines Tags explizit angegeben werden.
?nderungsverfolgung
CVS berechnet ?nderungen Server-seitig und muss somit bei übertragungen jeweils die gesamte Datei übertragen.
Umbenennungen und Verschiebungen
Umbenennungen und Verschiebungen werden in CVS ebenfalls realisiert, indem eine Kopie angelegt und das Original als gel?scht markiert wird. In CVS kommt es dabei aber zu einem Bruch im Versionsverlauf.
L?schmarkierung von Verzeichnissen
In CVS k?nnen nur leere Verzeichnisse gel?scht werden, sie k?nnen nicht ohne Verlust der Historie aller enthaltenen Dateien aus dem Repositorium gel?scht werden.
Bin?rdateiverwaltung
Die Endungen von zu verwaltenden Bin?rdateitypen müssen in CVS in cvswrapper eingetragen werden, verschiedene Versionen von Dateien dieser Typen müssen aber immer vollst?ndig gespeichert werden.
Zeichenkodierung für Dateinamen und Logbuch-Eintr?ge im Repositorium
Wird von CVS nicht selbst kodiert.

Eine gr??ere Anzahl von Freiwilligen pflegt verschiedene Bin?rdistributionen von Subversion, in der Regel mehrere pro Zielsystem. Ebenfalls werden Bin?rdistributionen zu unterschiedlichen Konditionen von einschl?gigen Unternehmen herausgegeben. Das Apache-Subversion-Projekt gibt keine offiziellen Empfehlungen für bestimmte Distributionen heraus, pflegt aber eine Seite mit Weblinks der ihm bekannten Distributionen.[37]

Grafische Benutzeroberfl?chen

[Bearbeiten | Quelltext bearbeiten]

Es gibt einige ausgereifte Grafische Benutzeroberfl?chen (GUIs) für Subversion. Sie machen es den Benutzern besonders leicht, auf ein Subversion-Repositorium zuzugreifen. Hier einige Anwendungen:

  • Cornerstone: Mac OS X, propriet?r
  • KDEsvn: Linux (KDE), Open-Source
  • RapidSVN: Linux (Gnome), Windows, Open-Source
  • SmartSVN: Mac OS X, Windows, Linux, OS/2, propriet?r
  • TkRev: Unix/Linux, Windows, und Mac OS X
  • Versions: Mac OS X, propriet?r

Integriert in Dateibrowser:

Integriert in Entwicklungsumgebungen:

Integriert in Editoren:

Weiterhin sind Plugins für Visual Studio, Visual Studio Code, NetBeans, KDevelop, Code::Blocks, Vim, TYPO3 und ASCET verfügbar. Die globale Administration (Benutzerrechte, Protokolle, …) erfolgt anwendungsabh?ngig über dessen Oberfl?che oder weiterhin über spezielle Subversion-eigene Konfigurationsdateien.

Um auf ein Subversion-Repositorium lesend zuzugreifen, bieten viele Open-Source-Projekte einen Link auf ihren Webdienst an. Dieser pr?sentiert in übersichtlicher Form Inhalte von Dateien, Verzeichnissen und Logbüchern; auch Datei-Vergleiche und Downloads sind m?glich. Werden Subversion-Repositorien durch einen Apache-Webserver mit den Standard-Modulen mod_dav, mod_dav_svn und mod_authz_svn gehostet, ist neben dem vollen Zugriff über einen klassischen Subversion-Client auch ein Zugriff durch beliebige Browser über das WebDAV-Protokoll m?glich. Eine komfortablere Browser-Darstellung und -Bedienung mit gr??erem Funktionsumfang ist über ViewVC, Trac, Web, VisualSVN, Beanstalk oder Atlassian Fisheye m?glich. Diese bieten teilweise einen wesentlich gr??eren Funktionsumfang wie ein integriertes Bugtracking, projektweite Suchfunktionen, Team-Unterstützung für Code Reviews, die Integration weiterer Versionsverwaltungssysteme wie Git, Continuous Integration oder weiterer Team-unterstützende Funktionen Foren, Chatfunktionen und Wikis.

  • C. Michael Pilato, Ben Collins-Sussman, Brian W. Fitzpatrick: Versionskontrolle mit Subversion – Website des freien Buchprojektes.
  • C. Michael Pilato, Ben Collins-Sussman, Brian W. Fitzpatrick, Versionskontrolle mit Subversion, O'Reilly-Verlag, 3. Auflage April 2009, ISBN 978-3-89721-897-0.
  • Tobias Wassermann: Versionsmanagement mit Subversion, mitp-Verlag, 1. Auflage Oktober 2006, ISBN 978-3-8266-1662-4.
  • Frank Budzuhn: Subversion, Galileo Computing, 2. aktualisierte und erweiterte Auflage 2007, ISBN 978-3-89842-879-8.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Daniel Sahlberg: Apache Subversion 1.14.5 released. 9. Dezember 2024 (englisch, abgerufen am 9. Dezember 2024).
  2. a b c d In: Free Software Directory.
  3. subversion.apache.org.
  4. www.opencsw.org.
  5. a b c d e f The subversion Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 29. Dezember 2023).
  6. projects.apache.org. (abgerufen am 8. April 2020).
  7. subversion.tigris.org.
  8. falls bei der Erstellung des Installationspaketes die Internationalisierung berücksichtigt wurde, wie dies zum Beispiel bei alagazam.net der Fall ist. Die Ausgabesprache wird anhand der Systemvariablen LC_ALL automatisch bestimmt; alle Meldungen erscheinen auf Deutsch, falls (Beispiel für Windows:) LC_ALL = de_DE.CP1252 gesetzt ist. Pakete zur sp?teren Nachinstallation einer Sprache stehen beim Kommandozeilenclient nicht zur Verfügung. Diese Situation ist nicht zu verwechseln mit zu Subversion passenden graphischen Oberfl?chen wie TortoiseSVN, wo deutschsprachige Meldungen erst nach Installation eines Sprachpaketes zur Verfügung stehen.
  9. Subversion Buch Subversion’s History
  10. Celebrating a Decade of Open Source Leadership. Abgerufen am 20. August 2020.
  11. Apache Subversion Change Log Version 1.8.18. Apache Software Foundation, 10. Juli 2017, abgerufen am 8. August 2017 (englisch).
  12. Stefan Sperling: Release Announcement for Apache Subversion 1.8.18. Subversion Dev: [ANNOUNCE] Apache Subversion 1.8.18 released. Apache Software Foundation, abgerufen am 8. August 2017 (englisch).
  13. Apache Subversion Change Log Version 1.8.19. Apache Software Foundation, 10. August 2017, abgerufen am 20. November 2017 (englisch).
  14. Philip Martin: Release Announcement for Apache Subversion 1.8.19. [SECURITY][ANNOUNCE] Apache Subversion 1.8.19 released. Apache Software Foundation, 10. August 2017, abgerufen am 20. November 2017 (englisch).
  15. Apache Subversion Change Log Version 1.9.6. Apache Software Foundation, 5. Juli 2017, abgerufen am 8. August 2017 (englisch).
  16. Daniel Shahaf: Release Announcement for Apache Subversion 1.9.6. [ANNOUNCE] Apache Subversion 1.9.6 released. Apache Software Foundation, 6. Juli 2017, abgerufen am 8. August 2017 (englisch).
  17. Apache Subversion Change Log Version 1.9.7. Apache Software Foundation, 10. August 2017, abgerufen am 20. November 2017 (englisch).
  18. Daniel Shahaf: Release Announcement for Apache Subversion 1.9.7. [SECURITY][ANNOUNCE] Apache Subversion 1.9.7 released. Apache Software Foundation, 10. August 2017, abgerufen am 20. November 2017 (englisch).
  19. Apache Subversion 1.10 Release Notes. Apache Software Foundation, abgerufen am 19. Januar 2019 (englisch).
  20. CHANGES - Change log from /branches/1.10.x up to Version 1.10.8 with User-visible changes (Client-side bugfixes & Server-side bugfixes) and Developer-visible changes. Apache Software Foundation / The Subversion Team, 12. April 2022, abgerufen am 12. Mai 2022 (englisch).
  21. Mark Phippard: Release Announcement for Apache Subversion 1.10.8. [SECURITY][ANNOUNCE] Apache Subversion 1.10.8 released. Apache Software Foundation / The Subversion Team, 12. April 2022, abgerufen am 13. Mai 2022 (englisch).
  22. Apache Subversion 1.11 Release Notes. Apache Software Foundation, abgerufen am 19. Januar 2019 (englisch).
  23. Apache Subversion 1.12 Release Notes. Apache Software Foundation, abgerufen am 26. April 2019 (englisch).
  24. Apache Subversion 1.13 Release Notes. Apache Software Foundation, abgerufen am 11. Dezember 2019 (englisch).
  25. Apache Subversion 1.14 Release Notes. Apache Software Foundation, abgerufen am 28. Mai 2020 (englisch).
  26. CHANGES - Change log from /branches/1.14.x up to Version 1.14.2 with User-visible changes (Client-side bugfixes & Server-side bugfixes) and Developer-visible changes. Apache Software Foundation / The Subversion Team, 12. April 2022, abgerufen am 12. Mai 2022 (englisch).
  27. CHANGES - Change log from /branches/1.14.x up to Version 1.14.2 with User-visible changes (Client-side bugfixes & Server-side bugfixes) and Developer-visible changes. Apache Software Foundation / The Subversion Team, 12. April 2022, abgerufen am 12. Mai 2022 (englisch).
  28. Mark Phippard: Release Announcement for Apache Subversion 1.14.2. [SECURITY][ANNOUNCE] Apache Subversion 1.14.2 released. Apache Software Foundation / The Subversion Team, 12. April 2022, abgerufen am 13. Mai 2022 (englisch).
  29. Changelog Version 1.14.3. Apache Software Foundation / The Subversion Team, 20. Dezember 2023, abgerufen am 29. Juli 2025 (englisch).
  30. Changelog Version 1.14.4. Apache Software Foundation / The Subversion Team, 8. Oktober 2024, abgerufen am 27. Juli 2025.
  31. Changelog Version 1.14.5. Apache Software Foundation / The Subversion Team, 7. Dezember 2024, abgerufen am 27. Juli 2025.
  32. STATUS - Status of Version 1.14.4: Candidate changes, Veto-blocked changes, and Approved changes. Apache Software Foundation / The Subversion Team, abgerufen am 27. Juli 2025.
  33. CHANGES - Change log from /branches/1.15.x up to Version 1.15.0 with User-visible changes (Client-side bugfixes & Server-side bugfixes) and Developer-visible changes. Apache Software Foundation / The Subversion Team, 12. Mai 2022, abgerufen am 27. Juli 2025 (englisch).
  34. Erl?uterung der Bubble-Up-Methode als Grundlage ?billiger Kopien“ in SVN (englisch)
  35. Subversion-Bugtracker: Issue 898 (Memento des Originals vom 1. Dezember 2002 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gem?? Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/subversion.tigris.org
  36. Problems with umlauts in file names on Mac OS X (Memento vom 31. August 2012 im Internet Archive)
  37. Apache Subversion Binary Packages. Abgerufen am 20. August 2020.
卵泡回声什么意思 台湾是什么民族 高密度脂蛋白偏高是什么意思 2028年属什么 静夜思是什么季节
毛骨鱼是什么鱼 呼吸不过来要喘大气是什么情况 asia是什么意思 贵州有什么好吃的 学生证件号码是什么
老公梦见老婆出轨是什么意思 古筝是什么乐器 住院医师是什么级别 县团级是什么级别 少将属于什么级别
rdw是什么意思 小腿痒是什么原因 丑未戌三刑 会发生什么 子宫为什么会长息肉 女大七岁有什么说法
got什么意思ff14chat.com 珠颈斑鸠吃什么hcv8jop8ns8r.cn 獐子是什么动物hcv8jop9ns3r.cn 抹茶绿配什么颜色好看hcv8jop1ns7r.cn pph是什么意思hcv8jop2ns0r.cn
感冒什么时候传染性最强hcv8jop7ns3r.cn 心眼小是什么意思hcv8jop3ns3r.cn 7到9点是什么时辰hcv9jop6ns5r.cn 无家可归是什么生肖hcv8jop5ns9r.cn 绿心黑豆有什么功效0297y7.com
为什么屁多是什么原因hcv9jop6ns0r.cn 黍米是什么米hcv9jop4ns7r.cn 依达拉奉注射功效与作用是什么hcv7jop5ns0r.cn 头发爱出油是什么原因hcv8jop0ns6r.cn 众星捧月是什么意思hcv9jop3ns5r.cn
吃什么食物降血压最快最好hcv8jop8ns3r.cn 偷袭是什么意思hcv7jop5ns3r.cn 事倍功半的意思是什么liaochangning.com 排骨煮什么好吃hcv8jop4ns2r.cn chemical是什么意思hcv8jop2ns3r.cn
百度