SVN zu GIT - Fork einer Open Source Software

Gast #2272117
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
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.