Migration von Subversion nach Mercurial und Einsatz dezentraler - - PowerPoint PPT Presentation

migration von subversion nach mercurial und einsatz
SMART_READER_LITE
LIVE PREVIEW

Migration von Subversion nach Mercurial und Einsatz dezentraler - - PowerPoint PPT Presentation

Migration von Subversion nach Mercurial und Einsatz dezentraler Versionskontrolle in Unternehmen Christoph Mewes Otto-von-Guericke-Universit at Magdeburg 17. August 2011 Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial 17.


slide-1
SLIDE 1

Migration von Subversion nach Mercurial und Einsatz dezentraler Versionskontrolle in Unternehmen

Christoph Mewes

Otto-von-Guericke-Universit¨ at Magdeburg

  • 17. August 2011

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

1 / 12

slide-2
SLIDE 2

Motivation

Subversion wurde als Versionskontrollsystem im Unternehmen eingesetzt. Probleme zentrales System wenig geeignet f¨ ur Open Source Entwicklung lokaler Cache als deutlicher Overhead verhindert Einsatz von gewohnten Dateiverwaltungswerkzeugen L¨

  • sungssuche

dezentrales System (Open Source) gute Unterst¨ utzung f¨ ur Windows / GUI gute Performance ⇒ Mercurial (hg) als L¨

  • sung

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

2 / 12

slide-3
SLIDE 3

Motivation

Subversion wurde als Versionskontrollsystem im Unternehmen eingesetzt. Probleme zentrales System wenig geeignet f¨ ur Open Source Entwicklung lokaler Cache als deutlicher Overhead verhindert Einsatz von gewohnten Dateiverwaltungswerkzeugen L¨

  • sungssuche

dezentrales System (Open Source) gute Unterst¨ utzung f¨ ur Windows / GUI gute Performance ⇒ Mercurial (hg) als L¨

  • sung

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

2 / 12

slide-4
SLIDE 4

Motivation

Subversion wurde als Versionskontrollsystem im Unternehmen eingesetzt. Probleme zentrales System wenig geeignet f¨ ur Open Source Entwicklung lokaler Cache als deutlicher Overhead verhindert Einsatz von gewohnten Dateiverwaltungswerkzeugen L¨

  • sungssuche

dezentrales System (Open Source) gute Unterst¨ utzung f¨ ur Windows / GUI gute Performance ⇒ Mercurial (hg) als L¨

  • sung

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

2 / 12

slide-5
SLIDE 5

Motivation

Subversion wurde als Versionskontrollsystem im Unternehmen eingesetzt. Probleme zentrales System wenig geeignet f¨ ur Open Source Entwicklung lokaler Cache als deutlicher Overhead verhindert Einsatz von gewohnten Dateiverwaltungswerkzeugen L¨

  • sungssuche

dezentrales System (Open Source) gute Unterst¨ utzung f¨ ur Windows / GUI gute Performance ⇒ Mercurial (hg) als L¨

  • sung

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

2 / 12

slide-6
SLIDE 6

Hintergrund

zentraler & dezentraler Workflow

Repository Client

update commit push & pull

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

3 / 12

slide-7
SLIDE 7

Vor- & Nachteile

Nachteile zentraler Systeme Verbindung zum Server n¨

  • tig

Commits sind sofort ¨

  • ffentlich

(wenn man keine Branches verwendet ⇒ Namenskonflikte) Schreibzugriff zur effizienten VCS-Nutzung n¨

  • tig

bei Mergeproblemen kein Zur¨ ucksetzen m¨

  • glich

Vorteile dezentraler Systeme Arbeiten auch offline m¨

  • glich; l¨

adt zum Experimentieren ein private Commits (bis man sie pusht) auch ohne Schreibzugriff VCS-Nutzung m¨

  • glich

Zur¨ ucksetzen jederzeit m¨

  • glich

”Commit before Merge“

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

4 / 12

slide-8
SLIDE 8

Vor- & Nachteile

Nachteile zentraler Systeme Verbindung zum Server n¨

  • tig

Commits sind sofort ¨

  • ffentlich

(wenn man keine Branches verwendet ⇒ Namenskonflikte) Schreibzugriff zur effizienten VCS-Nutzung n¨

  • tig

bei Mergeproblemen kein Zur¨ ucksetzen m¨

  • glich

Vorteile dezentraler Systeme Arbeiten auch offline m¨

  • glich; l¨

adt zum Experimentieren ein private Commits (bis man sie pusht) auch ohne Schreibzugriff VCS-Nutzung m¨

  • glich

Zur¨ ucksetzen jederzeit m¨

  • glich

”Commit before Merge“

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

4 / 12

slide-9
SLIDE 9

Beispiel: FeatureIDE

Java-Projekt; Entwicklung eines Eclipse-Plugins Vergleich des Speicherplatzbedarf Subversion Mercurial Dateien in der Arbeitskopie 10.881 3.199 Verzeichnisse in der Arbeitskopie 16.803 835 Gr¨

  • ße der Arbeitskopie

202 MiB 100 MiB Gr¨

  • ße inkl. Repository

N/A 240 MiB nur 38 MiB Overhead von Mercurial wesentlich weniger Verzeichnisse in Mercurial

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

5 / 12

slide-10
SLIDE 10

Beispiel: FeatureIDE

Java-Projekt; Entwicklung eines Eclipse-Plugins Vergleich des Speicherplatzbedarf Subversion Mercurial Dateien in der Arbeitskopie 10.881 3.199 Verzeichnisse in der Arbeitskopie 16.803 835 Gr¨

  • ße der Arbeitskopie

202 MiB 100 MiB Gr¨

  • ße inkl. Repository

N/A 240 MiB nur 38 MiB Overhead von Mercurial wesentlich weniger Verzeichnisse in Mercurial

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

5 / 12

slide-11
SLIDE 11

Migration

Projektstruktur Websites auf Basis von SallyCMS (PHP / MySQL) projektunabh¨ angig: Basissystem plus weitere Komponenten projektspezifisch: Umsetzung des Designs und Kundenw¨ unschen parallele Entwicklung von Projekten Ziele Migration bestehender Projekte automatisiertes Erzeugen neuer Projekte (ein Repo. pro Projekt) stetige Aktualisierung von Projekten h¨ aufiges und schnelles Zur¨ uckmergen von Korrekturen

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

6 / 12

slide-12
SLIDE 12

Migration

Projektstruktur Websites auf Basis von SallyCMS (PHP / MySQL) projektunabh¨ angig: Basissystem plus weitere Komponenten projektspezifisch: Umsetzung des Designs und Kundenw¨ unschen parallele Entwicklung von Projekten Ziele Migration bestehender Projekte automatisiertes Erzeugen neuer Projekte (ein Repo. pro Projekt) stetige Aktualisierung von Projekten h¨ aufiges und schnelles Zur¨ uckmergen von Korrekturen

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

6 / 12

slide-13
SLIDE 13

Migration /2

Konvertierung bestehender Projekte

Vorgehensweise Unteilbarkeit von hg-Repositories daher: Zerlegung des SVN-Repositories in viele kleine hg-Repositories 1-mal hg convert pro Projekt Ergebnisse einmaliger Aufwand erzeugte Repositories nicht f¨ ur Langzeitentwicklung geeignet ⇒ nach Bedarf f¨ ur einzelne Projekte durchf¨ uhren

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

7 / 12

slide-14
SLIDE 14

Migration /2

Konvertierung bestehender Projekte

Vorgehensweise Unteilbarkeit von hg-Repositories daher: Zerlegung des SVN-Repositories in viele kleine hg-Repositories 1-mal hg convert pro Projekt Ergebnisse einmaliger Aufwand erzeugte Repositories nicht f¨ ur Langzeitentwicklung geeignet ⇒ nach Bedarf f¨ ur einzelne Projekte durchf¨ uhren

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

7 / 12

slide-15
SLIDE 15

Migration /3

Erzeugung neuer Projekte

Projekte als Klone des Basisrepositories Mergen der Komponenten in die Basis Verzeichnis-Convention vermeidet Konflikte

◮ ⇒ automatisierbar ◮ Vorbereitung der Komponenten n¨

  • tig

AddOn 2 SallyCMS AddOn 1 Original-Komponenten temporäre Repositories

convert pull Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

8 / 12

slide-16
SLIDE 16

Migration /4

Aktualisierung von Projekten

Ziel: Korrekturen und neue Features in Projekte einbringen manueller Aufwand kritisch f¨ ur Aktualisierungsh¨ aufigkeit ⇒ m¨

  • glichst automatisieren

technisch: hg pull & hg merge der Komponenten ⇒ St¨ arken von Mercurial ausnutzen

Original Weiterentwicklung AddOn Projektentwicklung

convert & pull

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

9 / 12

slide-17
SLIDE 17

Migration /5

Zur¨ uckmergen

Ziele Korrekturen aus einem Projekt in die Basis zur¨ uckspielen um mehrfaches Beheben eines Problems vermeiden Probleme Finden von Commits, die zur¨ uckgemergt werden m¨ ussen Export dieser Commits und ¨ Ubertragung in die Basis Ergebnisse Toolunterst¨ utzung m¨

  • glich

automatisches Generieren von Patches dennoch: gr¨

  • ßtenteils manueller Vorgang

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

10 / 12

slide-18
SLIDE 18

Migration /5

Zur¨ uckmergen

Ziele Korrekturen aus einem Projekt in die Basis zur¨ uckspielen um mehrfaches Beheben eines Problems vermeiden Probleme Finden von Commits, die zur¨ uckgemergt werden m¨ ussen Export dieser Commits und ¨ Ubertragung in die Basis Ergebnisse Toolunterst¨ utzung m¨

  • glich

automatisches Generieren von Patches dennoch: gr¨

  • ßtenteils manueller Vorgang

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

10 / 12

slide-19
SLIDE 19

Migration /5

Zur¨ uckmergen

Ziele Korrekturen aus einem Projekt in die Basis zur¨ uckspielen um mehrfaches Beheben eines Problems vermeiden Probleme Finden von Commits, die zur¨ uckgemergt werden m¨ ussen Export dieser Commits und ¨ Ubertragung in die Basis Ergebnisse Toolunterst¨ utzung m¨

  • glich

automatisches Generieren von Patches dennoch: gr¨

  • ßtenteils manueller Vorgang

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

10 / 12

slide-20
SLIDE 20

Evaluierung

Commit-Verhalten in 24 zuf¨ allig ausgew¨ ahlten Projekten Kriterium Subversion Mercurial Commits pro Tag 4,35 8,18 leere Commit-Nachricht 789 (92,8 %) 5 (0,3 %) pro Commit ge¨ anderte Dateien 5,71 4,15 Projekterzeugung & -aktualisierung vollst¨ andig automatisiert h¨ aufigere, besser dokumentierte Commits Bugs nur noch selten mehrfach korrigiert nahtlose Integration von Drittentwicklern (Open Source) ¨ uberwiegend positive Erfahrungen mit Mercurial

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

11 / 12

slide-21
SLIDE 21

Keynotes

Lektionen aus der Migration

Ein dezentrales System ist einem zentralen in vielen Punkten ¨ uberlegen. Aber: gr¨ undliche Auseinandersetzung mit dezentralen Systemen n¨

  • tig

kein ”business as usual“ nach einer Migration zwingende ¨ Uberarbeitung der Repository-Struktur Schulung der Mitarbeiter n¨

  • tig

  • glichkeiten & Perspektiven

Verbesserung des Commit-Verhaltens viele Automatisierungen m¨

  • glich

Integration der Open Source Community in eigene Entwicklungen Unterst¨ utzung f¨ ur (global) verteilte Entwicklungsstandorte

Christoph Mewes (OvGU) Migration zu und Einsatz von Mercurial

  • 17. August 2011

12 / 12