On Freitag, 4. Juni 2010 08:55:44 Konrad Rosenbaum wrote:
> Ich habe: einen Clone des Git-Repos.
> Ich brauche: eine Kopie des master-Branch plus ein paar Erweiterungen von
> mir in meinem SVN
> 
> Was muss ich jetzt machen?

Im Allgemeinen ist es aussichtslos, eine Git-Historie in ein SVN zu 
linearisieren. Andersherum ist es relativ einfach, siehe git-svn (was Robert 
in seiner Mail beschrieben hat, aber das geht eben in die falsche Richtung).

Am Sinnvollsten (wenn man gezwungen ist, mit Git zu arbeiten), wäre 
wahrscheinlich, beide Checkouts im selben Verzeichnis zu haben. Du legst dir 
also einen lokalen SVN-Master an, machst den Initial-Checkout, und kopierst 
dann den gesamten Git-Klon (inklusive .git-Verzeichnis) rein. Dann stellst du 
ein, dass die beiden VCS gegenseitig ihre Datenverzeichnisse ignorieren, 
checkst im Git den Master aus, und commitest das dann ins SVN. Am besten legst 
du dir bei der Gelegenheit bei dem aktuellen Git-Commit eine Branch an, damit 
du den wiederfindest.

Dann kannst du im SVN arbeiten, und wenn du deine SVN-Commits dann ins Git 
pushen möchtest, gehst du per svn up zum ersten Commit nach dem Git-Import, 
und commitest dann die geänderten Dateien wieder ins Git. Dann holst du mit 
svn up den nächsten Commit und fügst auch den ins Git ein. Diese Prozedur kann 
man sicher per Skript automatisieren.

Das ganze Commiten vom SVN nach Git sollte erstmal auf die lokale Branch 
legen, die du dir beim Import angelegt hast. Am Ende machst du einen Rebase 
dieser Branch auf den Git-Master, und pushst das ganze dann auf den Git-
Server.

Gruß
Stefan

P.S. Wahrscheinlich gibts für sowas schon Skripte etc. Tante Google weiß 
hoffentlich Rat.

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Lug-dd maillist  -  Lug-dd@mailman.schlittermann.de
https://ssl.schlittermann.de/mailman/listinfo/lug-dd

Antwort per Email an