Ja, dafür ist git nicht gedacht, und ja, git ist viel besser als SVN.
Aber.
Angenommen, man hat ein Projekt im SVN. Und muss nun zum Kunden, bei dem kein Zugriff auf dieses SVN möglich ist. Dann wäre es doch potentiell elegant, das Projekt als git-Projekt auf einen USB-Stick auszuchecken, und gegen dieses portable Repository zu arbeiten. Gesagt, getan:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# checkout the SVN repo with git [1] git svn clone https://myserver/mypath/myproject/trunk/ # switch directory cd trunk/ # converting svn:ignore to .gitignore [2] git svn show-ignore > .gitignore # creating a repo on the stick [3, see comments] mkdir /Volumes/STICK/repository.git git clone --local --bare --no-hardlinks . /Volumes/STICK/repository.git git remote add usb file:///Volumes/STICK/repository.git git push usb master |
Dann, beim Kunden, checkt man vom USB-Stick aus:
1 2 3 4 |
# check out stuff from the stick [3] git clone file:///Volumes/STICK/repository.git # OR: updating the stuff pulled from USB before git pull origin |
bzw. arbeitet man dort wie (von git) gewohnt. Später synchronisiert man Stick und lokalen SVN-Checkout, und diesen spielt man zurück in’s SVN.