Warum?
Da ich intern bisher auf
subversion entwickle, Code aber auf
GitHub stellen möchte, brauche ich eine¹ Möglichkeit diese Projekte möglichst kompatibel nach
git zu exportieren.
git-svn erlaubt diese Nutzung und erhält die Versionshistorie. Eine Re-Integration nach
subversion ist ebenfalls möglich.
Die Infos stammen zum Teil aus Tutorial zu
git-svn unter
http://viget.com/extend/effectively-using-git-with-subversion.
Eine kleine, nette Einführung zu
git gibt es unter
http://rogerdudler.github.io/git-guide/index.de.html
¹ Erm, ja.
Github kann auch via
subversion Repositories verwalten. Allerdings müsste man dann das Projekt komplett dort hosten. Die obige Lösung umgeht dies.
git-svn installieren
git-svn ist unter Debian im gleichnamigen Paket zu finden und mittels
$> aptitude install git-svn
|
zu installieren.
Es ist ratsam vor der ersten Verwendung im
.bashrc den Suchpfad für
git-svn zu hinterlegen, da Debian das Programm unter
/usr/lib/git-core/ installiert.
Exportieren von subversion in git Arbeitsverzeichnis
Das
jeweilige Projekt, welches exportiert werden soll, sollte vollständig auf dem
Subversionserver vorliegen. Sinnvoll ist es über die URL des Projektes
zu gehen. Im Beispiel wäre das https://localhost/svn/trunk/fixit/fixit_tiff, welches auf das
fixit_tiff Repository zeigt.
Mit folgendem Kommando erzeugt man im /tmp Directory das neue Git-Arbeitsverzeichnis für fixit_tiff:
$> mkdir /tmp/git
$> cd /tmp/git
$> /usr/lib/git-core/git-svn clone https://localhost/svn/trunk/fixit/fixit_tiff ./fixit_tiff
|
Zur Überprüfung können wir mit
git log anschauen, ob unsere History etc. korrekt übernommen wurde:
$> cd fixit_tiff
$> git log
commit 92f8cf068d7bdf8e2a39aab8e3db31f3c055bcd4
Author: romeyke <romeyke@c63e1d0e-0205-4395-96c5-23d0ee883611>
Date: Wed May 28 15:17:12 2014 +0000
- compiles with debugging code
- added TIFFGetAllTagListCount () because TIFFGetTagListCount() only works w
- added TIFFGetAllTagListEntry () because TIFFGetTagListEntry() only works w
- added print_baseline_tags()
- added print_required_tags()
- added check_required()
- check_*() opens tif-files only in read mode
- improved logic, because we call check*() explicitely, also after repair
git-svn-id: https://localhost/svn/trunk/
commit dd30cfa15101c61111ce62f6e83b0bfee3cb10bb
…
|
Übertragen auf github
Auf github sollte schon ein entsprechendes Repository angelegt sein. Zuerst müssen wir
git nun mitteilen, daß wir auf einen anderen Master gehen:
$> export yourusername=maxmustermann
$> export yourreponame=fixit_tiff
$> git remote add origin https://github.com/${yourusername}/${yourreponame}.git
|
Mit folgendem Kommando vollführen wir dann den Export aus unserem obigen
git-Arbeitsverzeichnis:
$> git push origin master
|
Bei Problemen schlage man unter
http://stackoverflow.com/questions/12799719/how-to-upload-a-project-to-github nach
Meine Repos sind unter
https://github.com/art1pirat/ zu finden