• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

SVN -> Git

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
Hallo Leute,

ich habe eine ganze Menge gestackoverflowed und habe nur halbgute Lösungen für eines meiner Probleme gefunden.

Undzwar:
Ich habe ein Subversion-Repo mit ~ 3000 Revisionen.
Struktur:
+ trunk
|--- Tests
|------ Foo
|------ Foo2
|--- Main
|------ Bar
|------ Bar2
+ branch
|--- Branch1
|------ Tests
|--------- Foo
|--------- Foo2
|------ Main
|--------- Bar
|--------- Bar2
|--- Branch2
|------ Tests
|--------- Foo
|--------- Foo2
|------ Main
|--------- Bar
|--------- Bar2

...
Nun möchte ich ein Git-Repo daraus bauen. Inklusive der Historie von trunk und allen Branches. Dazu versuche ich gerade dieses Tutorial.
Ich möchte in den git-Repo aber als master nur entsprechend Main verfolgen. Tests ist sozusagen ein anderes Repo und gehört da gar nicht rein.
Nun habe ich entsprechend den Befehl zu Beginn so abgeändert das ich diesen nutze:
[src=bash]git svn init SVN_URL -T trunk/Main -b branch --prefix=svn/[/src]
Das folgende [src=bash]git svn fetch[/src] dauert eine wahrliche Ewigkeit.
Danach würde ich das entsprechend nach dem Tutorial zuende Übersetzen und dann vielleicht noch sowas machen, dass ich in allen Commits die Tests-Ordner entferne.
Siehe dazu hier

Ich hoffe das klappt soweit auch. Sicher bin ich mir dabei nicht. Mal abgesehen davon, dass ich nicht verstehe, wieso das alles so dermaßen lange dauert... Weder die Internetverbindung noch die CPU oder Festplatte(SSD) ist nennenswert ausgelastet bei dem fetch-Befehl.

Nun habe ich aber ein weiteres Problem, das ich so nicht lösen / finden konnte.
Ich besitze bereits ein Git repo, dass auf den Stand aus dem SVN-Repo basiert und darauf Commits inklusive Branches usw. gemacht wurden.
Wie kann ich diese Commits später auf mein jetzt generierendes Repo wieder draufpacken?

Leider ist git und besonders diese Feinheiten noch recht neu für mich.
Kann mir da jemand einen Tipp geben?
 

_GirAffe_

// TODO: set usertitle

Registriert
26 Juli 2014
Beiträge
20
Hi,
ich habe mal für eine Firma alle CVS und SVN-Repositories nach Git umgezogen, habe mich also ein bisschen mit dem Thema beschäftigt. :)

Bezüglich der langen Migrationszeit: Git bietet zwar den import von SVN an, dennoch ist dies eine aufwändige Sache bei dieser Anzahl an Commits. Im Gegensatz zu SVN ist Git ein verteiltes VCS, d.h. du speicherst/kopierst dir immer das *komplette* Repository auf deinen eigenen Rechner, samt aller 3000 Revisionen. Je nachdem, was dort dann commited wurde, kann dies auch einen sehr viel höheren Speicherverbrauch als bei SVN zur Folge haben.
Beispiel: Commit 1 fügt Datei A (500MB) hinzu, Commit 2 löscht Datei A, Commit 3 fügt Datei B (100MB) hinzu ==> dann ist dein Repository schon mal 600MB groß, obwohl die Datei A in der aktuellen Revision gar nicht mehr vorhanden ist. Git hält trotzdem alles lokal vor, was wiederum zum Vorteil hat, dass du sehr schnell zwischen Revisionen/Branches/.. springen kannst.

  • Ich würde mir bei mehreren Branches in deinem Repository die Frage stellen ob du wirklich immer die Historie brauchst. Oft reicht ein einzelner (ggf. manueller) Stand für einige Branches aus.
  • machst du die Migration auf Windows? Ich empfehle auf jeden Fall das ganze auf Linux zu machen, siehe https://stackoverflow.com/a/21599759
  • alternativ kannst du dir auch mal https://subgit.com/ anschauen, das soll bei der Migration scheinbar schneller sein (nie selbst benutzt)

Bezüglich des anderen/neueren Git Repos: Das sollte mit Git ansich kein Problem sein. Du kannst mehrere Remote-Endpunkte in deinem migrierten Git Repository eintragen und diese dann synchronisieren. Siehe https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes. Wenn du verschiedene lokale Branches erstellst, kannst du die stände anschließend mergen (oder rebasen).
 

sia

gesperrt

Registriert
26 März 2015
Beiträge
5.931
Ort
FFM (NSFW)
Windows hat auch git bash und msys2.

Den Umzug würde ich aber direkt aufm Git-Server machen. Subgit ist ein ganz guter Tipp.

Außerdem würde ich nicht "nacktes" Git verwenden, sondern einen self-hosted service wie Gogs oder Gitlab.

dauert eine wahrliche Ewigkeit.
Joah, so ist das :D
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #4
ich habe mal für eine Firma alle CVS und SVN-Repositories nach Git umgezogen, habe mich also ein bisschen mit dem Thema beschäftigt. :)
Wieso hast du dich nicht früher gemeldet? :(

Ich würde mir bei mehreren Branches in deinem Repository die Frage stellen ob du wirklich immer die Historie brauchst. Oft reicht ein einzelner (ggf. manueller) Stand für einige Branches aus.
Das stimmt. Daher wollte ich auch nur die meisten Branches irgendwie vorhanden haben, mit dem entsprechend aktuellen Stand. Allerdings ist es bei mehr als dem master-branch notwendig die Historie ebenfalls zu erhalten - das habe ich wie in meinem Eingangspost umgesetzt. Es hat EWIG gedauert und war auch nicht hübsch. Da die Historie aber nur selten verwendet wird, geht es aber noch irgendwie.

alternativ kannst du dir auch mal https://subgit.com/ anschauen
Diesen Tipp hätte ich auch früher gebraucht :D Vielleicht kommt das ja irgendwann in Zukunft mal zum Einsatz. Danke.
 
Oben