/dev/joschi: Wirrer Geist, wirre Texte

Randnotiz: Wie man ein git Repository in Subversion importiert

Bei der Arbeit stand ich kürzlich vor der Aufgabe, ein vorhandenes git Repository (nämlich das mit den Daten meiner Diplomarbeit) in das firmeneigene Subversion Repository zu importieren. Im Internet findet man über die üblichen Kanäle nur Anleitungen, wie man ein Subversion Repository in git importiert oder solche (verhältnismäßig) umfangreichen Anleitungen wie Git back into Subversion, Mostly Automagically. Dabei ist es überhaupt nicht kompliziert, sofern man keinen Merge mit bereits im SVN verwalteten Daten durchführen muss.

# Verzeichnis auf im Subversion Repository anlegen
$ svn mkdir svn+ssh://example.com/var/svn/my/repo/path

# Mit git-svn das leere Subversion Repository klonen.
$ git svn clone svn+ssh://username@svn.example.com/var/svn/my/repo/path

# In das Arbeitsverzeichnis wechseln und die Änderungen aus dem git Repository mergen
$ cd ./path
$ git pull ssh://username@example.net/MyRepo.git

# Damit Commit und die Historie des git Repositories später in das Subversion Repository überführt werden, muss ein rebase durchgeführt werden.
$  git svn rebase

# Mit git-log wird nun überprüft, ob alle Änderungen aus dem git Repository vorhanden sind.
$  git log

# Und letztendlich werden die Daten in das Subversion Repository committed.
$  git svn dcommit

Bei Bedarf kann nun auch ein entferntes git Repository zusätzliche als remote hinzugefügt werden.

/etc Versionierung mit $VCS

Wer unter Linux oder *BSD einmal "aus Versehen" eine wichtige Konfigurationsdatei gelöscht oder unbrauchbar gemacht hat, wird in Zukunft vorsichtiger sein. Ein Backup nach größeren Änderungen ist praktisch Pflicht. Doch manchmal ist es auch sehr praktisch, wenn man zur Vorvor- oder Vorvorvorversion einer Datei zurückkehren kann.
Dazu eignen sich Version Control Systeme, kurz VCS. Bekannte Vertreter dieser Softwaregattung sind CVS, Subversion, Mercurial oder git.

Hier nun ein paar nützliche Links, wie man /etc unter Mercurial, git oder SVK (einer Spielart von Subversion) verwaltet:


Alle recht debianlastig, aber mit ein wenig Nachdenken auch auf eine beliebige andere Linux Distribution oder BSD-Derivat anwendbar.