Forum: PC Hard- und Software SVN zu GIT - Fork einer Open Source Software


von Andreas (Gast)


Lesenswert?

Hallo!

Für die Forschung haben wir eine linux Open Source Software modifiziert 
und einige spzielle Erweiterungen vorgenommen. Versioniert wird das 
ganze momentan mit SVN.

Der öffentliche (nicht von uns gepflegte) Hauptzweig wird mit GIT 
versioniert. Um nun den Updates des Hauptzweiges zu folgen bedarf es 
daher immer einer vergleichsweise umständlichen Prozedur, welche darin 
besteht die Änderungen des Hauptzweiges nach dem letzten Update als 
Patch zusammen zu fassen und dann über unser SVN zu patchen. Hinzu 
kommen gelöschte und neu hinzugefügte Dateien. Natürlich gehen auch die 
einzelnen GIT-Commits "verloren", sind also nicht mehr einzeln 
identifizierbar.

Wunschvorstellung wäre jetzt: Umstellung unseres SVN auf GIT. Ziehen der 
aktuellen offentlichen Revision, patchen (evtl. mit Beibehaltung der 
einzelnen SVN-Commits?) mit unseren Modifikationen und dann die 
parallele Pflege der öffentlichen Commits und unserer Commits. Quasi ein 
Branch/Fork der öffentlichen Software. Da auf unserer seite auch noch 
mehrere Leute an der Software Arbeiten müsste das ganze auch bei uns auf 
einem eigenen Server laufen:
1
öffentliches Repo -> Firmen-Repo -> Mitarbeiter-Repo
2
3
öfft. GIT-Commits ->      x      <- private GIT-Commits
4
5
                          x      -> GIT pull

Bei den Tutorials wird leider vielmals davon ausgegangen, dass es kein 
zwischengeschaltetes Firmenrepository gibt. Dies soll aber bei einem 
"git commit && git push" angesprochen werden, nicht das öffentliche.

Jemand Tipps?

Vielen Dank
Andreas

von Simon B. (nomis)


Lesenswert?

Andreas schrieb:
>
1
> öffentliches Repo -> Firmen-Repo -> Mitarbeiter-Repo
2
> 
3
> öfft. GIT-Commits ->      x      <- private GIT-Commits
4
> 
5
>                           x      -> GIT pull
6
>
>
> Bei den Tutorials wird leider vielmals davon ausgegangen, dass es kein
> zwischengeschaltetes Firmenrepository gibt. Dies soll aber bei einem
> "git commit && git push" angesprochen werden, nicht das öffentliche.

Das macht doch auch nix. Einer muss jetzt in den sauren Apfel beißen und 
aus eurem SVN-Repository ein Git-Repository machen, eine Anleitung dazu 
findet sich z.B. unter
http://john.albin.net/git/convert-subversion-to-git (wobei ich das 
selber allerdings noch nie gemacht habe). Dann fügt ihr das öffentliche 
Git-Repository hinzu, macht davon einen lokalen Checkout und versucht - 
das wird der lästige und schwierige Teil - Eure eigenen Änderungen aus 
dem SVN-branch in den lokalen Branch zu importieren, ggf. auch die den 
öffentlichen SVN-Checkins entsprechenden öffentlichen Git-Checkins 
identifizieren, diese dann verwenden um eure Änderungen zum jeweiligen 
Zeitpunkt anzuwenden und so schritt für Schritt einen Git-Tree zu 
erzeugen, der möglichst viele von den öffentlichen Git-Checkins 
verwendet.

Das hängt natürlich dramatisch von der Codemenge ab die ihr erzeugt 
habt.

Aber wenn ihr das einmal habt, dann habt ihr quasi gewonnen, dann könnt 
ihr daraus den Git-Server für Eure Arbeitsgruppe hochziehen. Die 
jeweiligen Mitarbeiter können dann in ihren lokalen Repositories sowohl 
euren Server als auch den öffentlichen Server referenzieren und mit dem 
Material dann arbeiten.

Viele Grüße,
        Simon

von Daniel K. (epyx)


Lesenswert?

Ich würde sagen, dass hört sich nach einem Hook an.

Also wenn du im Firmenrepo was hinein pushst, dann wird der hook 
ausgeführt und das Mitarbeiterrepo gesynct.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.