Git und SVN

2010-06-04 Diskussionsfäden Konrad Rosenbaum
Hi,

mal eine Frage an die Git-Experten:

ich will ein externes Projekt, das in Git getrackt wird in meinen SVN-Baum 
importieren und auch einigermaßen synchron halten. Leider hat dieses 
Projekt keinen eigenen Git-SVN-Gateway, also muss ich selbst 
synchronisieren.

Die Doku, die ich finden konnte beschreibt prima wie man von SVN auf Git 
portiert, aber nicht den umgekehrten Weg.

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?




Konrad


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

Re: Git und SVN

2010-06-04 Diskussionsfäden Tobias Schlemmer
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hallo,

Am 04.06.10 08:55, schrieb Konrad Rosenbaum:

 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?

Ich bin jetzt kein Experte.

Ich würde (wenn nur git als Benutzungsmöglichkeit ausscheidet) je nach
Aufwand, ein eigenes SVN-Gateway aufsetzen (Deine lokale Git-Kopie ist
ja auch wieder ein Verzweigungspunkt der dezentralen Hierarchie) oder
die Revisionen per Hand über die ausgecheckte Version synchronisieren,
also den Verzeichnisbaum von zwei Versionskontrollsystemen verwalten lassen.

Soweit ich weiß, kann man auch git mit einem externen SVN-Repository
verheiraten (mit CVS funktioniert das leider nur unter bestimmten
Voraussetzungen), und dann lokal nur noch git verwenden und gelegentlich
Revisionen zum svn hochschieben. Das müsste auch gehen.

Tobias
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.7 (Darwin)
Comment: Diese Datei kann mit GnuPG gelesen werden.
Comment: This file is to be uses with GnuPG.
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iD8DBQFMCMl6XRTLKCIyA4ERAgchAJ9WIkzcSVPKVuok29MRpmTt4phWdQCeM6iM
b4rqy6k5Ti2rTkfw8sB7t54=
=hRo8
-END PGP SIGNATURE-

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


Re: Git und SVN

2010-06-04 Diskussionsfäden Stefan Majewsky
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.


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

Re: Git und SVN

2010-06-04 Diskussionsfäden Konrad Rosenbaum
On Friday 04 June 2010, Stefan Majewsky wrote:
 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.

Muss ja nicht sein. Ich muss nur ab und zu die aktuellste Variante im SVN 
haben - nach Möglichkeit ohne jedesmal ein svn import machen zu müssen.

 Andersherum ist es relativ einfach, siehe git-svn (was 
 Robert in seiner Mail beschrieben hat, aber das geht eben in die falsche
 Richtung).

Man muss tatsächlich so rum gehen, aber mit etwas kreativem gitten geht es 
dann:

1) man macht sich einen git clone des leeren SVN Pfades:
git svn clone -s http://svnserver/pfad
(-s sagt git svn dass man die üblichen trunk/branches/tags verwenden will)

2) man holt sich das originale git-Verzeichnis ran
git remote add origin git://gitserver/pfad
git pull -v

3) man ignoriert alle Warnungen von wegen default merge Pfad, etc.pp.

4) man merged origin mit lokal:
git merge origin/master

5) man pusht local nach SVN:
git dcommit -e

6) jetzt kann ich den SVN Pfad so verwenden wie ich will: als external 
Referenz in einem SVN-basierten Projekt und mit eigenen Modifikationen im 
SVN


Konrad


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