2017-03-10 3 views
2

Ich bin von einem SVN-Repository zu git migrieren. Dieses Svn-Repository verfügt über Svn-Externals, die in Svn-Repositories aufbewahrt werden. Diese externen Elemente werden im Verlauf versioniert und gekennzeichnet und sind schreibgeschützt. Wie kann ich richtig migrieren und die svn-externals im neuen git-Repository richtig eingestellt haben?Migration von SVN zu Git halten svn-external

Ich suche in "git svn propset", git Submodule, Teilbaum Merges. Aber wie kann ich ein solches Repository einrichten?

+0

Ich denke, du kannst nicht "git svn propset" für Spur svn: externals, mit Git, oder? –

+0

'git svn propset' tut in Git nichts, es setzt nur SVN-Eigenschaften im überwachten SVN-Repository. Sie können damit die 'svn: externals 'verwalten, die der SVN Repo verfolgt, aber dies hat keine Auswirkungen auf den Git-Klon. – Vampire

Antwort

0

Alternativ schlage ich vor: eine modifizierte Version dieses einfachen alten Python-Skript verwenden, das funktioniert: https://github.com/eneroth/git-externals Dieses Skript alle SVN überprüfen würde: externals definierte zuvor im Unterverzeichnis in einer Datei .gitexternals Problem ist die aufgegebene out-Version ist der HEAD, und sind nicht Teil des Git-Repository

Ich würde eine separate Datei verwenden, um alle SVN-Versionen zu speichern. Diese Datei würde in git gespeichert werden. Jedes Mal, wenn wir ein Update durchführen, wird Diese Datei wird mit dem neuesten Commit aktualisiert. Eine Option im Skript würde es ermöglichen, diese Datei auf die neueste Version von extern zu aktualisieren. Das Skript wird geändert, um die in dieser Datei gespeicherte Version herunterzuladen. Zweige und Tags würden in diesem Fall auch die Version für externe Objekte haben. Für die historischen Daten der Migration, nicht sicher, ob dieser Ansatz funktionieren würde.

Ich würde dieses Skript im Falle von Submodulen auch verwenden, es ist ziemlich flexibel. Aber in diesem Fall werden wir alle externen in git gespiegelt haben