BLog |
|
![]() |
|||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Xcode 10 kommt ohne Subversion-IntegrationJetzt muß ich doch tatsächlich alle meine Subversion-Repositories auf dieses verfluchte Git umstellen. Bei Git ist alles so einfach wie Zähneziehen, alles geht immer irgendwie einfach aber eben nicht einfach schmerzfrei. Das beginnt mit der Installation von Git auf meinem FreeBSD-Server. Bei der Standard-Konfiguration von Git in den FreeBSD-Ports fehlt das Subversion-Interface, und daher müssen die Optionen vor der Installation angepaßt werden. Installation von Git auf dem FreeBSD-Server
![]()
Anlegen des Basis-Verzeichnisses für die Git-Repositories
Ich lege das Basis-Verzeichnis für alle Git-Repositories an, und das ist dann auch sofort das Home-Directory für den noch zu erstellenden
Auf meinem Entwicklungs-Rechner transferiere ich mit dem folgenden Kommando meinen öffentlichen SSH-Schlüssel in das soeben auf dem FreeBSD-Server erzeugte Git-Verzeichnis, so daß Xcode ohne jeweilige Anmeldung über
Auf dem FreeBSD-Server lege ich dann noch den User
Git besteht auf der Benennung von E-Mail-Adressen der Autoren
Das ist vielleicht ein Unsinn. Wenn man keine Autoren-Liste mit E-Mail-Adressen bei der Konvertierung von SVN nach Git angibt, dann generiert Um den von SVN gewohnten minimalistischen Autoren-Eintrag im Commit-Log zu erhalten, muß man das folgende Kommando in allen Working-Copies der unter SVN stehenden Projekte ausführen, die nach Git konvertiert werden sollen:
Damit werden die SVN-Commit-Autoren in einer Liste gesammelt, und es wird jeweils die leere E-Mail-Adresse (no author) = rolf <> Rolf = rolf <> rolf = rolf <> root = rolf <> svn = rolf <> design = rolf <> SVN-Repositories in Git-Repositories konvertieren
Die oben erzeugte Liste wird auf den FreeBSD-Server kopiert. Im Basis-Verzeichnis für die Git-Repositories -
Aus irgendeinem Grund bricht der Import einiger Projekte mit einer Fehlermeldung ab:
Ich habe das nicht weiter untersucht, sondern stattdessen sub temp_reset { my ($self, $temp_fd) = _maybe_self(@_); if (truncate $temp_fd, 0) { # or throw Error::Simple("couldn't truncate file"); sysseek($temp_fd, 0, Fcntl::SEEK_SET()) and seek($temp_fd, 0, Fcntl::SEEK_SET()) or throw Error::Simple("couldn't seek to beginning of file"); sysseek($temp_fd, 0, Fcntl::SEEK_CUR()) == 0 and tell($temp_fd) == 0 or throw Error::Simple("expected file position to be reset"); } } Jedenfalls erhalten wir am Ende ein komplettes Projekt-Verzeichnis, daß unter Git-Revisionskontrolle steht, und zwar inklusive einer Arbeitskopie des letzten Stands. Auf dem Server benötigen wir aber nur die Revisions-Historie, und zwar ohne Arbeitskopie. Dazu führt man noch die folgenden Kommandos aus:
Arbeitskopie auf den Entwicklungsrechner laden und in Xcode öffnen
Ich öffne Xcode und lade die Projektdatei der Git-Arbeitskopie: ![]() Copyright © Dr. Rolf Jansen - 2018-09-20 23:23:06 Diskussion auf Twitter: 1082825703056384001 |