[linux-l] Nutzt jemand Git?

Volker Grabsch vog at notjusthosting.com
So Mai 17 16:52:04 CEST 2009


Olaf Radicke <briefkasten at olaf-radicke.de> schrieb:
> Zwanzig Künstler wollen eine gemeinsame Ausstellung machen und schreiben an 
> einer Pressemitteilung. Alle haben dynamische IPs von ihren Providern und die 
> meisten schalten ihre PCs nur für zwei Stunden am Tag ein. Die einen sind 
> Frühaufstehe die anderen arbeiten in der Nacht am PC. 
> 
> Wie gleichen die jetzt per P2P untereinander ihre Versionen ab?

Das Beispiel ist gar nicht so abwegig. Bei geographisch weit
verteilten Entwicklern treten ähnliche Probleme auf.

Will man DVCS wirklich im P2P-Stil machen, braucht jeder
Entwickler einen Server, auf dem sein Repository jederzeit
abrufbar ist. Jeder arbeitet lokal und macht einige Commits,
und sobald er einen stabilen/brauchbaren Stand hat, lädt
er seine Sachen auf sein Remote-Repository hoch ("push").

Jeder kann dann die Änderungen aller anderen Repositories
zu sich importieren ("pull"). Oder eben nur die Änderungen
von den Leuten, deren aktuelle Entwicklungen für ihn
interessant sind bzw. um deren Integration er sich zuerst
kümmern möchte.

Wenn es einen Konflikt gibt, kann man diesen bei sich lokal
lösen ("merge") und mit hochladen, und alle anderen haben
diesen Konflikt nicht mehr, d.h. sie "pull"en die Merges
gleich mit. Das heißt, Konflikte eskalieren nicht, weil
die Konfliktlösungen genauso schnell untereinander verteilt
werden. (Ob sich dieser Mechanimus auch auf zwischenmenschliche
Konflikte übertragen lässt, weiß ich leider nicht. ;-))

Es gibt auch eine sehr interessante Möglichkeit, die ohne
Server auskommt. Darcs z.B. bietet "darcs send" an, das
ist wie ein "darcs push", nur werden die Änderungen nicht
in ein anderer Repository hochgeladen, sondern an eine
E-Mail-Adresse versendet. Die Empfängerin kann diese
Changesets dann vollautomatisch in ihr Repository importieren.

Dieser Mechanismus ist konkret in Darcs aber für ein etwas
anderes Szenario gedacht: Ein Projekt hat nen offizielles
Darcs-Respository, ich habe es mir heruntergeladen und ein
paar Commits gemacht. Diese möchte ich dem Projekt zukommen
lassen, habe aber natürlich keine Schreib-Rechte auf das
Repository. Normalerweise würde ich jetzt mehrere Patch-
Dateien an den Maintainer schicken, die dieser bei sich
importieren würde. Mit "darcs send" muss ich diese Patches
nicht per Hand anlegen, sondern es werden automatisch alle
ausgewählt, die noch nicht im Projekt-Repository enthalten
sind. Der Maintainer erhält diese Patches mitsamt Meta-
Informationen, sodass er sie direkt in sein lokales Repository
importieren und austesten kann.

In deinem konkreten Fall der Pressemitteilung wird es
jedoch wahrscheinlich keine "experimentellen" Textstellen
geben, die erst noch überarbeitet und auf Publikumswirksamkeit
getestet werden müssen, bevor man sie weiteren Leuten zugänglich
macht. Von daher wird die Organisationsstruktur eher zentralisiert
ablaufen und nicht in tiefen Hierarchien oder gar Peer-to-Peer.

In der Regel wird sogar eine zentrale Versionkontrolle mit
zentraler Benutzerschnittstelle und integrierter Vorschau
verwendet - aka "Wiki". :-)


HTH,

    Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l