1Git versus SVN
2Wer bin ich? Mario Müller (@xenji) TWT Interactive GmbH - Düsseldorf Java, PHP, Python, Groovy FirstSpirit, JEE, Zend Fra...
3
4Warum Versionierung?
4Warum Versionierung? Protokollierung
4Warum Versionierung? Protokollierung Archivierung
4Warum Versionierung? Protokollierung Archivierung Wiederherstellung
5Zentrale Versionierung
6Merkmale
6Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies)
6Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies) Revisionen werden zentral verwaltet, Versionsnummer...
6Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies) Revisionen werden zentral verwaltet, Versionsnummer...
6Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies) Revisionen werden zentral verwaltet, Versionsnummer...
6Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies) Revisionen werden zentral verwaltet, Versionsnummer...
6Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies) Revisionen werden zentral verwaltet, Versionsnummer...
7Dezentrale Versionierung
8Merkmale
8Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy)
8Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy) Jede Workingcopy ist ein komplette...
8Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy) Jede Workingcopy ist ein komplette...
8Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy) Jede Workingcopy ist ein komplette...
8Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy) Jede Workingcopy ist ein komplette...
8Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy) Jede Workingcopy ist ein komplette...
9  •   Active Responses: The total of responses excluding "No Opinion". (eg for      git: 65 + 19 + 1 + 0)  •   Approval %...
9  •   Active Responses: The total of responses excluding "No Opinion". (eg for      git: 65 + 19 + 1 + 0)  •   Approval %...
10SVN
11Geschichte
11Geschichte Version 1.0 am 20. Oktober 2000
11Geschichte Version 1.0 am 20. Oktober 2000 Enwickelt von CollabNet
11Geschichte Version 1.0 am 20. Oktober 2000 Enwickelt von CollabNet Seit dem 10. Feb. 2010 ein Apache Top- Level Projekt
11Geschichte Version 1.0 am 20. Oktober 2000 Enwickelt von CollabNet Seit dem 10. Feb. 2010 ein Apache Top- Level Projekt ...
12Begriffe
12Begriffe                            Branch     Changeset                 Revision       Tag
13Eine SVN Timeline
14Vorteile
14Vorteile Kostenfrei erhältlich
14Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag
14Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag Stetige Entwicklung als Apache Projekt ge...
14Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag Stetige Entwicklung als Apache Projekt ge...
14Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag Stetige Entwicklung als Apache Projekt ge...
14Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag Stetige Entwicklung als Apache Projekt ge...
14Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag Stetige Entwicklung als Apache Projekt ge...
15Einschränkungen
15Einschränkungen Ohne Server geht nichts
15Einschränkungen Ohne Server geht nichts Es werden nur Deltas verwaltet
15Einschränkungen Ohne Server geht nichts Es werden nur Deltas verwaltet Automatisches Mergen ist in vielen Fällen keine s...
15Einschränkungen Ohne Server geht nichts Es werden nur Deltas verwaltet Automatisches Mergen ist in vielen Fällen keine s...
16Alleinstellungsmerkmale Properties auf Datei / Verzeichnisebene svn:externals um entfernte Repositories transparent „hin...
17Git
18
18
18Wer hat‘s erfunden?
19Linus Torvalds
19Linus Torvalds Initiator der Linux - Bewegung
19Linus Torvalds Initiator der Linux - Bewegung Wahrscheinlich der berühmteste Entwickler der heutigen Zeit
19Linus Torvalds Initiator der Linux - Bewegung Wahrscheinlich der berühmteste Entwickler der heutigen Zeit Entwickelt akt...
19Linus Torvalds Initiator der Linux - Bewegung Wahrscheinlich der berühmteste Entwickler der heutigen Zeit Entwickelt akt...
20Geschichte Gestartet im April 2005 um den damals verwendeten BitKeeper zu ersetzen Aktuell in der Version 1.7.x verfügba...
21Begriffe
21Begriffe                          Clone     Pull              Staging                        Push     Remote
22Clone Unter einem „Clone“ versteht man das Spiegeln einer vollständigen Historie in ein (lokales) Repository. Dabei wird...
23Remotes Branches werden in Git in zwei Zuständen verwaltet. Lokal und Remote. Ein Remote Branch ist eine Referenz auf ei...
24Staging Hinzufügen von Dateien in einen virtuellen Bereich Alle Daten im Stage kommen in den nächsten Commit Commits sin...
25Push Übermittelt den Inhalt eines Branches aus einem lokalen Repository an ein Remote Repository Transferiert Commit-By-...
26Pull „Zieht“ Änderungen aus einem Remote Repository Wenn mehrere Branches aus einem Remote existieren (z. B. nach einem ...
27Funktionsweise
27Funktionsweise Git Repositories bestehen aus drei Komponenten:   Tree Objekte   Commit Objekte   Blobs (Binary Large OBj...
27Funktionsweise
28Arbeitsschritte
29Vorteile Schnell, da eine Vielzahl der Operationen lokal ist Unabhängig, da kein Server benötigt wird Sicher, da jeder a...
30Einschränkungen Autorisierung per SSH unter Windows nur per PuTTY - Toolbox Einsatz unter Windows nur per mingw Kaum gut...
31Workflow Modelle
32Team Organisation Es sind verschiedene Ansätze zur Organisation von Teams entstanden Viele sind auch in der zentralisier...
33Workflow - Ein User Der „Freelancer - Workflow“ Gut für einzelne Programmierer, die   Weder Zeit   noch Resourcen für da...
34Workflow - kleines Team Es gibt ein „blessed“ Repository, also ein zentrales Repository Jeder klont sich dieses Reposito...
35Workflow - Integration Manager
36Workflow - (benevolent) Dictator
37Workflow Integ. Manager / Dictator Für große Teams geeignet Hoher Management-Aufwand Hohe Parallelisierung Sehr guter Zu...
38Enterprising Git
39Anforderungen an Git im Unternehmen Authentifizierung (LDAP, ADS, etc) Autorisierung (Gruppen, Rollen, Rechte) Automatis...
40Authentifizierung Ist mit Linux - Bordmitteln anstrengend Gitosis und Gitorious bieten Hilfe Integrierte directory-basie...
41Autorisierung Gitosis oder Gitorious helfen, man verlagert aber nur die Aufgabe Keine Mechanismen implementiert Implemen...
42 Backupsmmue-mbp:ProwlPHP mario$ git fast-export --all | less                                                           ...
43Alternativen
44Bazaar Von Canonical (Ubuntu) in Python geschrieben Aktivste Plattform: Launchpad Einfacher in der Handhabe Gefühlt lang...
45Mercurial Wir seit Q4 2010 von Atlassian weiter entwickelt Ist ebenfalls in Python geschrieben Aktivste Plattform: Bitbu...
46Vielen Dank für die Aufmersamkeit!
47Fragen
Nächste SlideShare
Wird geladen in …5
×

Git vs SVN DevCon 2011

3.150 Aufrufe

Veröffentlicht am

Meine Slides von der DevCon 2011, eine abgewandelte From der Slides von der PHPUG.

Veröffentlicht in: Technologie
0 Kommentare
2 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
3.150
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
87
Aktionen
Geteilt
0
Downloads
53
Kommentare
0
Gefällt mir
2
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • \n
  • \n
  • \n
  • Protokoll. von Änderungen\nDauerhafte Archiv.\nWiederherst. im Ernstfall oder auch um zu vergleichen!\n
  • Protokoll. von Änderungen\nDauerhafte Archiv.\nWiederherst. im Ernstfall oder auch um zu vergleichen!\n
  • Protokoll. von Änderungen\nDauerhafte Archiv.\nWiederherst. im Ernstfall oder auch um zu vergleichen!\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Git vs SVN DevCon 2011

    1. 1. 1Git versus SVN
    2. 2. 2Wer bin ich? Mario Müller (@xenji) TWT Interactive GmbH - Düsseldorf Java, PHP, Python, Groovy FirstSpirit, JEE, Zend Framework, Oxid NoSQL FTW! Mac-Head & Linux Enthusiast Github: http://github.com/xenji
    3. 3. 3
    4. 4. 4Warum Versionierung?
    5. 5. 4Warum Versionierung? Protokollierung
    6. 6. 4Warum Versionierung? Protokollierung Archivierung
    7. 7. 4Warum Versionierung? Protokollierung Archivierung Wiederherstellung
    8. 8. 5Zentrale Versionierung
    9. 9. 6Merkmale
    10. 10. 6Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies)
    11. 11. 6Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies) Revisionen werden zentral verwaltet, Versionsnummern zentral vergeben
    12. 12. 6Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies) Revisionen werden zentral verwaltet, Versionsnummern zentral vergeben Vergleiche sind nur direkt mit dem Server möglich
    13. 13. 6Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies) Revisionen werden zentral verwaltet, Versionsnummern zentral vergeben Vergleiche sind nur direkt mit dem Server möglich Häufig wird ein Delta-basiertes Speicherverfahren verwendet, so bleiben die zu übertragenden Mengen gering
    14. 14. 6Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies) Revisionen werden zentral verwaltet, Versionsnummern zentral vergeben Vergleiche sind nur direkt mit dem Server möglich Häufig wird ein Delta-basiertes Speicherverfahren verwendet, so bleiben die zu übertragenden Mengen gering Die Versionshistorie ist nur auf dem Server verfügbar
    15. 15. 6Merkmale Es gibt mehr als eine Realität (ein Server, n Workingcopies) Revisionen werden zentral verwaltet, Versionsnummern zentral vergeben Vergleiche sind nur direkt mit dem Server möglich Häufig wird ein Delta-basiertes Speicherverfahren verwendet, so bleiben die zu übertragenden Mengen gering Die Versionshistorie ist nur auf dem Server verfügbar Die Zentralisierung ermöglicht ein Zugriffs- und Rechtemanagement
    16. 16. 7Dezentrale Versionierung
    17. 17. 8Merkmale
    18. 18. 8Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy)
    19. 19. 8Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy) Jede Workingcopy ist ein kompletter Klon mit allen Versionen
    20. 20. 8Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy) Jede Workingcopy ist ein kompletter Klon mit allen Versionen Theoretisch gibt es keinen zentralen Server
    21. 21. 8Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy) Jede Workingcopy ist ein kompletter Klon mit allen Versionen Theoretisch gibt es keinen zentralen Server Das Repository ist lokal und unabhängig
    22. 22. 8Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy) Jede Workingcopy ist ein kompletter Klon mit allen Versionen Theoretisch gibt es keinen zentralen Server Das Repository ist lokal und unabhängig Alle Operationen sind lokal
    23. 23. 8Merkmale Es gibt viele, mehrdimensionale Realitäten (Multi-Master, Multi- Workingcopy) Jede Workingcopy ist ein kompletter Klon mit allen Versionen Theoretisch gibt es keinen zentralen Server Das Repository ist lokal und unabhängig Alle Operationen sind lokal Es ist ein Mechanismus zur Synchronisierung mit einer entfernten Instanz vorhanden
    24. 24. 9 • Active Responses: The total of responses excluding "No Opinion". (eg for git: 65 + 19 + 1 + 0) • Approval %: The sum of best and ok responses divided by active responses, expressed as a percentage. (eg for git: (65 + 19) / 85) Approval in %VCS Survey (von M. Fowler)
    25. 25. 9 • Active Responses: The total of responses excluding "No Opinion". (eg for git: 65 + 19 + 1 + 0) • Approval %: The sum of best and ok responses divided by active responses, expressed as a percentage. (eg for git: (65 + 19) / 85) Approval in %VCS Survey (von M. Fowler)
    26. 26. 10SVN
    27. 27. 11Geschichte
    28. 28. 11Geschichte Version 1.0 am 20. Oktober 2000
    29. 29. 11Geschichte Version 1.0 am 20. Oktober 2000 Enwickelt von CollabNet
    30. 30. 11Geschichte Version 1.0 am 20. Oktober 2000 Enwickelt von CollabNet Seit dem 10. Feb. 2010 ein Apache Top- Level Projekt
    31. 31. 11Geschichte Version 1.0 am 20. Oktober 2000 Enwickelt von CollabNet Seit dem 10. Feb. 2010 ein Apache Top- Level Projekt Weiterentwicklung vom ebenfalls zentralen Versionierungstool „CVS“
    32. 32. 12Begriffe
    33. 33. 12Begriffe Branch Changeset Revision Tag
    34. 34. 13Eine SVN Timeline
    35. 35. 14Vorteile
    36. 36. 14Vorteile Kostenfrei erhältlich
    37. 37. 14Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag
    38. 38. 14Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag Stetige Entwicklung als Apache Projekt gesichert
    39. 39. 14Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag Stetige Entwicklung als Apache Projekt gesichert Hohe Akzeptanz
    40. 40. 14Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag Stetige Entwicklung als Apache Projekt gesichert Hohe Akzeptanz Unterstützt von vielen IDEs, Clients und Project Hosting Anbietern (z. B. SourceForge)
    41. 41. 14Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag Stetige Entwicklung als Apache Projekt gesichert Hohe Akzeptanz Unterstützt von vielen IDEs, Clients und Project Hosting Anbietern (z. B. SourceForge) Einfache Handhabung
    42. 42. 14Vorteile Kostenfrei erhältlich Erprobt im OpenSource- und Unternehmens- alltag Stetige Entwicklung als Apache Projekt gesichert Hohe Akzeptanz Unterstützt von vielen IDEs, Clients und Project Hosting Anbietern (z. B. SourceForge) Einfache Handhabung Authc & Authz abbildbar
    43. 43. 15Einschränkungen
    44. 44. 15Einschränkungen Ohne Server geht nichts
    45. 45. 15Einschränkungen Ohne Server geht nichts Es werden nur Deltas verwaltet
    46. 46. 15Einschränkungen Ohne Server geht nichts Es werden nur Deltas verwaltet Automatisches Mergen ist in vielen Fällen keine schöne Erfahrung
    47. 47. 15Einschränkungen Ohne Server geht nichts Es werden nur Deltas verwaltet Automatisches Mergen ist in vielen Fällen keine schöne Erfahrung Jeder Commit muss einzeln gemergt werden
    48. 48. 16Alleinstellungsmerkmale Properties auf Datei / Verzeichnisebene svn:externals um entfernte Repositories transparent „hineinzulinken“
    49. 49. 17Git
    50. 50. 18
    51. 51. 18
    52. 52. 18Wer hat‘s erfunden?
    53. 53. 19Linus Torvalds
    54. 54. 19Linus Torvalds Initiator der Linux - Bewegung
    55. 55. 19Linus Torvalds Initiator der Linux - Bewegung Wahrscheinlich der berühmteste Entwickler der heutigen Zeit
    56. 56. 19Linus Torvalds Initiator der Linux - Bewegung Wahrscheinlich der berühmteste Entwickler der heutigen Zeit Entwickelt aktiv am Linux Kernel
    57. 57. 19Linus Torvalds Initiator der Linux - Bewegung Wahrscheinlich der berühmteste Entwickler der heutigen Zeit Entwickelt aktiv am Linux Kernel Ist Erfinder von Git, jedoch nicht mehr der Hauptentwickler
    58. 58. 20Geschichte Gestartet im April 2005 um den damals verwendeten BitKeeper zu ersetzen Aktuell in der Version 1.7.x verfügbar Schnell adaptiert worden (GitHub, Gitorious)
    59. 59. 21Begriffe
    60. 60. 21Begriffe Clone Pull Staging Push Remote
    61. 61. 22Clone Unter einem „Clone“ versteht man das Spiegeln einer vollständigen Historie in ein (lokales) Repository. Dabei wird jeder Commit, jeder Tag und jeder Branch mit einbezogen.
    62. 62. 23Remotes Branches werden in Git in zwei Zuständen verwaltet. Lokal und Remote. Ein Remote Branch ist eine Referenz auf einen lokalen Branch in einem entfernten Repository. Remotes werden interessant, wenn mehrere Entwickler am selben Branch arbeiten und den entwickelten Quellcode verteilen wollen.
    63. 63. 24Staging Hinzufügen von Dateien in einen virtuellen Bereich Alle Daten im Stage kommen in den nächsten Commit Commits sind dadurch auf CLI Ebene „zusammenbaubar“
    64. 64. 25Push Übermittelt den Inhalt eines Branches aus einem lokalen Repository an ein Remote Repository Transferiert Commit-By-Commit Aus Sicht des Remote Repositories sieht es aus, als hätte die Person lokal Commit‘ed
    65. 65. 26Pull „Zieht“ Änderungen aus einem Remote Repository Wenn mehrere Branches aus einem Remote existieren (z. B. nach einem Clone eines Repositories mit mehreren Branches), werden diese ebenfalls „gezogen“ Explizites „ziehen“ ist möglich -> nur „master“, nur „2.1.0“, nur „testing“
    66. 66. 27Funktionsweise
    67. 67. 27Funktionsweise Git Repositories bestehen aus drei Komponenten: Tree Objekte Commit Objekte Blobs (Binary Large OBjects) Jedes Objekt bekommt eine repository-weit eindeutige ID in From einer SHA-1 Prüfsumme
    68. 68. 27Funktionsweise
    69. 69. 28Arbeitsschritte
    70. 70. 29Vorteile Schnell, da eine Vielzahl der Operationen lokal ist Unabhängig, da kein Server benötigt wird Sicher, da jeder alles besitzt (= verteiltes Backup) Objekt-orientierte Sichtweise auf die Teilstücke des Versionsbaumes Vollkommene Freiheit, da jeder sich selbst organisieren kann.
    71. 71. 30Einschränkungen Autorisierung per SSH unter Windows nur per PuTTY - Toolbox Einsatz unter Windows nur per mingw Kaum gute GUIs oder IDE Plugins „Ungemütliche Lernkurve“ Vollkommene Freiheit
    72. 72. 31Workflow Modelle
    73. 73. 32Team Organisation Es sind verschiedene Ansätze zur Organisation von Teams entstanden Viele sind auch in der zentralisierten Welt vorhanden, aber wenig genutzt Canonical hat mit der Veröffentlichung von Bazaar in Verbindung mit Launchpad sehr gute Arbeit geleistet und mögliche Workflows dokumentiert (http:// wiki.bazaar.canonical.com/Workflows) Hier stelle ich 3 Modelle beispielhaft vor
    74. 74. 33Workflow - Ein User Der „Freelancer - Workflow“ Gut für einzelne Programmierer, die Weder Zeit noch Resourcen für das Setup eines SVN Servers haben Schlecht, wenn man kein Backup hat und die Festplatte / das Speichermedium verliert
    75. 75. 34Workflow - kleines Team Es gibt ein „blessed“ Repository, also ein zentrales Repository Jeder klont sich dieses Repository ein mal Ab dann werden Änderungen per push & pull verteilt Sinnvoll für kleine Teams (zwischen 2 und 6 Leuten) mit überschaubaren Commit- Zahlen
    76. 76. 35Workflow - Integration Manager
    77. 77. 36Workflow - (benevolent) Dictator
    78. 78. 37Workflow Integ. Manager / Dictator Für große Teams geeignet Hoher Management-Aufwand Hohe Parallelisierung Sehr guter Zustand des Repository Der Integration Manager lohnt sich ab 10-15 Personen Das Dictator Modell lohnt sich erst bei 50+ Personen
    79. 79. 38Enterprising Git
    80. 80. 39Anforderungen an Git im Unternehmen Authentifizierung (LDAP, ADS, etc) Autorisierung (Gruppen, Rollen, Rechte) Automatisierte Backups Support Akzeptanz
    81. 81. 40Authentifizierung Ist mit Linux - Bordmitteln anstrengend Gitosis und Gitorious bieten Hilfe Integrierte directory-basierte Lösungen sind keine Vorhanden HTTP Push ermöglicht jedoch Autorisierung per Webserver Erweiterte Authentifizierung kann man per Hooks hacken
    82. 82. 41Autorisierung Gitosis oder Gitorious helfen, man verlagert aber nur die Aufgabe Keine Mechanismen implementiert Implementierung per Post-Commit / Post-Push Hooks
    83. 83. 42 Backupsmmue-mbp:ProwlPHP mario$ git fast-export --all | less Option 1:commit refs/heads/mastermark :281 Einfach kopierenauthor Mario Mueller <mario.mueller.work@gmail.com> 1305968206 +0200committer Mario Mueller <mario.mueller.work@gmail.com> 1305968206+0200data 55 Option 2:Resolved #6, but need some relyability fixing later onfrom :279 git fast-export --allM 100644 :280 src/Prowl/Connector.php
    84. 84. 43Alternativen
    85. 85. 44Bazaar Von Canonical (Ubuntu) in Python geschrieben Aktivste Plattform: Launchpad Einfacher in der Handhabe Gefühlt langsamer als Git
    86. 86. 45Mercurial Wir seit Q4 2010 von Atlassian weiter entwickelt Ist ebenfalls in Python geschrieben Aktivste Plattform: Bitbucket, Google Code Ist einfacher als Git, einfacher als Bazaar Performanter als Bazaar, wenig langsamer als Git
    87. 87. 46Vielen Dank für die Aufmersamkeit!
    88. 88. 47Fragen

    ×