阴道口痒是什么原因| 信必可为什么轻微哮喘不能用| 饭后痰多是什么原因| 库克是什么| 双乳增生什么意思| 胰岛素是什么意思| 喝酒伤什么| spa是什么服务| 宝宝多吃什么蔬菜好| 筋膜炎吃什么药最有效| 观音殿求什么| 有眼不识泰山是什么意思| 第一次同房要注意什么| 无什么不什么| 电子邮件地址是什么意思| 脸色发黑是什么原因| 磨蹭是什么意思| gigi是什么意思| 茯苓生长在什么地方| 水鱼是什么| 六味地黄丸有什么功效| 什么叫平年什么叫闰年| 执业药师什么时候考试| 刘字五行属什么| 高血压是什么| 晚上喝牛奶有什么好处| jdk是什么| 鼠标dpi是什么| 胃胀呕吐是什么原因| 梦见死人是什么意思| 不来例假也没怀孕是什么原因| 一个h是什么牌子| 高铁服务员叫什么| 泡打粉是什么| 耳朵上长痣代表什么| 回笼是什么意思| 肉字是什么结构| ram是什么动物| 舌苔发黄是什么原因引起的| dep是什么意思| 脑筋急转弯什么东西越洗越脏| 梦见修路是什么预兆| 化学专业学什么| 脸色发红什么原因| 右肺下叶纤维灶是什么意思| 甲状腺钙化是什么意思| c14检查前需要注意什么| 爱是什么偏旁| 888红包代表什么意思| 陈丽华是慈禧什么人| 感冒挂号挂什么科| 头疼流鼻血是什么原因| 什么狗不掉毛适合家养| 恨铁不成钢什么意思| 一个车一个罔是什么字| 高锰酸钾用什么能洗掉| 吃善存片有什么好处| 什么是深海鱼| 莲蓬什么时候成熟| 戊辰五行属什么| 巴不得是什么意思| 履新是什么意思| 尿臭是什么原因男性| 男人下面有异味什么原因| 西凤酒什么香型| 长痘痘是什么原因| 晕3d是什么原因| 什么是满汉全席| 什么解酒快| 冻雨是什么| 孩子改姓需要什么手续| 散瞳是什么| 有伤口吃什么消炎药| 例假淋漓不尽是什么原因造成的| 角瓜念什么| 吃完晚饭就犯困是什么原因| 想呕吐是什么原因| 澳大利亚属于什么气候| 什么是普世价值| 自古红颜多薄命是什么意思| 是什么原因导致肥胖| 酚咖片是什么药| 舌头边缘有齿痕是什么原因| 大拇指疼是什么原因| 部长助理是什么级别| 含金量什么意思| 癌胚抗原偏高说明什么| qc是什么| 什么枯石烂| 什么病不能吃海参| 特需门诊和专家门诊有什么区别| 十二生肖本领强是什么生肖| 甲状腺4b级是什么意思| 热天不出汗是什么原因| 印度属于什么亚| 武则天属什么生肖| 骨质增生吃什么药好| 汉语拼音是什么时候发明的| 脸部浮肿是什么原因| 室性早搏是什么意思| 司法警察是做什么的| ochirly是什么牌子| 脚底长鸡眼是什么原因| 胃溃疡适合吃什么水果| 白玉菩提是什么材质| 生生不息是什么意思| 先自度其足的度是什么意思| 11.22什么星座| 一什么方向| 湖北属于什么地区| 欣喜若狂是什么意思| 射手是什么星座| 着床什么意思| 秘鲁说什么语言| 什么是t| 身体出现白斑有可能患什么病| 男性生殖器官叫什么| 刷单是什么意思| 地奥心血康软胶囊主治什么病| 喉咙有痰是什么原因引起的| 什么是公历| 疝气有什么症状| 补办户口本需要什么材料| 女性什么时候绝经| 避孕药叫什么| 加拿大属于什么洲| 令坦是对方什么人的尊称| 心跳快吃什么药| 弱冠之年是什么意思| 孕期吃什么好| 花心什么意思| 胡子白了是什么原因| 唐僧代表什么生肖| 6月19日是什么日子| 62年的虎是什么命| 亮相是什么意思| 精囊炎吃什么药| 肝火大吃什么药| 冲击波治疗有什么效果| 吃什么子宫肌瘤会消除| 蛇进家里是什么预兆| 君子兰不开花是什么原因| 短头发烫什么发型好看| 台风什么时候到福建| 木薯是什么| 健康证照片用什么底色| 表是什么意思| 巨蟹座和什么最配| messi是什么意思| 今年什么生肖年| esrd医学上是什么意思| 阑尾有什么作用| 背靠背协议是什么意思| 白芍有什么功效和作用| moco是什么牌子| 多吃香蕉有什么好处和坏处| 梦见屎是什么意思| 经常头痛是什么原因| 压力与什么有关| 女人乳房疼是什么原因| 厘清和理清的区别是什么| 艾滋病什么时候能查出来| 尿酸高什么水果不能吃| 产后抑郁症有什么表现症状| 肠穿孔有什么症状| 碗打碎了预示着什么| 处暑是什么时候| 心律不齐吃什么食物好| 看病人送什么水果| 指检是什么| 什么星球最大| 环球中心有什么好玩的| 8朵玫瑰花代表什么意思| 甄别是什么意思| 冥冥之中是什么意思| 碘伏遇到什么会变白| 水命中什么水命最好| 小儿割包皮挂什么科| 吃什么清肺养肺| 安享晚年是什么意思| 不打狂犬疫苗会有什么后果| 大咖什么意思| o型血是什么血| 褪黑素是什么东西| 什么花没有叶子| 身份证有x代表什么| 药流后吃什么药| 护肝吃什么好| 汗斑用什么药擦最有效| ccg是什么意思| 幻听一般会听到什么| 什么是相位| 孕妇肾积水是什么原因引起的| 家里狗死了预示着什么| 肝是什么器官| 请问尿路感染吃什么药最好| 什么是阴道| 宫颈病变是什么原因引起的| 带下病是什么病| 吃完海鲜不能吃什么水果| 吗丁啉有什么功效| 窥什么意思| 万岁是什么意思| 有脚气用什么药| 医生和医师有什么区别| 一个虫一个夫念什么| 胎盘做成胶囊吃有什么好处| 蹭饭吃是什么意思| 不修边幅是什么意思| 下丘脑分泌什么激素| 胆囊炎要吃什么药| 寂寞难耐是什么意思| 耳前瘘管有什么危害| 什么是中元节| 祸起萧墙的萧墙指什么| 卜卜脆是什么意思| molly什么意思| 悬雍垂发炎吃什么药| ba是什么元素| 肌肉萎缩有什么症状| 不爱喝水是什么原因| 右手无名指戴戒指是什么意思| 舌苔少是什么原因| ssr是什么意思| 黄疸高是什么原因| 什么动物吃蛇| NT是检查什么| 婴儿喝什么奶粉| 胆囊结石用什么药好| 一个虫一个圣念什么| 八八年属什么| 狗肉炖什么好吃| 人为什么会长痔疮| 比目鱼又叫什么鱼| tags是什么意思| 荔枝和什么吃会中毒| 自由职业可以做什么| 癫疯病早期有什么症状| 为什么端午安康| 红日是什么意思| 家里停电了打什么电话| 学分是什么意思| 咳嗽有黄痰吃什么消炎药| 何炅和谢娜是什么关系| 1992年属猴的是什么命| 梦见蛇预示着什么| 团委书记是什么级别| 前列腺按摩什么感觉| 冥币是什么意思| 不什么而同| guess是什么意思| 伙计是什么意思| 9.10是什么星座| 医生为什么会建议竖切| 胰腺检查挂什么科| 端坐呼吸常见于什么病| 哥谭市是什么意思| 午时属什么生肖| 溜冰是什么意思| 1997年7月1日属什么生肖| 导管扩张是什么意思| sop是什么意思| 牛百叶是什么部位| iga肾病是什么意思| 百度Zum Inhalt springen

天津市孙某信访事项督查情况的报告

aus Wikipedia, der freien Enzyklop?die
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 27. Juli 2025 um 21:47 Uhr durch Jb31 (Diskussion | Beitr?ge) (Ver?ffentlichungen: Versionen 1.14.4, 1.14.5 erg?nzt).
(Unterschied) ← N?chst?ltere Version | Aktuelle Version (Unterschied) | N?chstjüngere Version → (Unterschied)
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.
10mg是什么意思 什么是子宫腺肌症 16年属什么 脚麻挂什么科 芼什么意思
温文尔雅是什么意思 ryan是什么意思 女人手脚发热吃什么药 什么叫湿气 卯是什么生肖
女兔配什么属相最好 排卵期出血是什么颜色 er是什么元素 高密度脂蛋白偏高是什么原因 直博是什么意思
古龙香水什么味道 网约车是什么意思 337是什么意思 为什么不能在一起 太君是什么意思
妊娠纹是什么hcv8jop4ns3r.cn 检查视力挂什么科hcv8jop9ns7r.cn 头发拉焦了有什么补救hcv9jop0ns2r.cn 自言自语是什么意思hcv8jop0ns2r.cn 小孩老是打嗝是什么原因hcv8jop8ns1r.cn
做喉镜能检查出什么病cl108k.com 打呼噜是什么原因imcecn.com 头层牛皮除牛反绒是什么意思hcv8jop3ns9r.cn 毫不犹豫的意思是什么hcv7jop5ns5r.cn 37岁属什么hcv8jop7ns5r.cn
2004属什么生肖hcv9jop3ns4r.cn 黑枸杞有什么功效weuuu.com 血压偏低是什么原因hcv8jop6ns3r.cn 血脂高有什么症状hcv9jop3ns0r.cn 红颜知己是什么hcv9jop5ns7r.cn
扁桃体肥大吃什么药好得快hcv7jop7ns2r.cn 屁的成分是什么气体hcv9jop7ns9r.cn 平板运动试验阳性是什么意思hcv8jop9ns3r.cn 肝功能2项是指什么hcv9jop4ns8r.cn 疯马皮是什么皮hcv8jop9ns7r.cn
百度