Danke an Alexis Modin für seinen Beitrag zu diesem Tip. Der ursprüngliche Artikel befindet sich hier.
Alexis fand heraus, dass Tags während des Umwandlungsprozesses von Subversion zu Git durcheinander gebracht werden und als Tag-Branches erscheinen, anstatt als umgewandelte Tags. Das kann ziemlich lästig werden, insbesondere wenn mit git branch
ein Haufen anderer Branches wie zum Beispiel tag/1.2
auftaucht. Ein bißchen Scripting und Git-Magie räumt das einfach auf.
Alexis folgte dem Standardprozess zum Umwandeln eines SVN Repositories:
$ mkdir rails $ cd rails $ git svn init -t tags -b branches -T trunk <path to svn repo> Initialized empty Git repository in .git/ $ git svn fetch
Als nächstes nahm er ein kleines Script zu Hilfe, mit dem alle Tag-Branches in richtige Tags umgewandelt werden. Des Weiteren wird sichergestellt, dass die Tag-Branches anständig gelöscht werden.
$ git-for-each-ref refs/remotes/origin/tags | cut -d / -f 5- | while read ref do git tag -a "$ref" -m"say farewell to SVN" "refs/remotes/origin/tags/$ref" git push origin ":refs/heads/tags/$ref" git push origin tag "$ref" done
Wenn du Scripte erstellt hast, die das Umwandeln von anderen SCMs nach Git unterstützen, teile es uns in den Kommentaren mit oder sende uns deinen eigenen Tip!