Git und SVN zusammen?

G

Gast2

Gast
Hallo zusammen,

besteht die Möglichkeit Git und SVN zusammen zu betreiben für eine Übergangsphase? Oder funktioniert "nur" entweder oder?
Kennt jemand gute Tools für Git? Bin für Eclipse auf EGit gestoßen...

Danke
 
Zuletzt bearbeitet von einem Moderator:

schalentier

Gesperrter Benutzer
Du kannst auf ein Subversion Repo mittels Git zugreifen. git-svn(1)

So kann man Git benutzen, ohne das irgendein anderer Entwickler was davon mitbekommt.

Zu den Tools: Das wichtigste Tool ist die Kommandozeile. Am besten du nimmst die Console von einem Linux deiner Wahl oder von MacOS. Wenn du unter Windows entwickelst, nimm Cygwin.

EGit find ich furchtbar. Muss es aber nur ab und an bei den Kollegen sehen. Da ich IntelliJ benutze, nehm ich deren Git Integration, die mir sehr gut gefaellt. Aber vieles machen ich nach wie vor auf der Cmdline.
 
G

Gast2

Gast
Wenn ich das richtig verstanden haben, gehen ja beide Richtungen (also genau das was ich suche)...
Ich greife von git auf svn zu und comitte in das svn repo und von svn kann ich was ins git repo committen?
Mal testen ;)
 

schalentier

Gesperrter Benutzer
Ne nicht ganz. Mit git-svn benutzt du git nur bei dir lokal. Remote gibt es weiterhin nur und ausschliesslich das SVN Repo.

Es gibt auch noch ein Tool irgendwo, was ein SVN Repo und ein zweites Git-Repo miteinander synchronisiert. Dann kannst du per SVN auf das SVN Repo und per Git auf das Git Repo. Bei jedem Commit oder zeitlich gesteuert wird das dann synchronisiert. Bei uns hat sich das aber als ziemlich fehleranfaellig herausgestellt (ein paar Commits sind einfach verschwunden) und wir haben es ziemlich schnell sein gelassen und nur noch git verwendet.
 
G

Gast2

Gast
Ne nicht ganz. Mit git-svn benutzt du git nur bei dir lokal. Remote gibt es weiterhin nur und ausschliesslich das SVN Repo.

Es gibt auch noch ein Tool irgendwo, was ein SVN Repo und ein zweites Git-Repo miteinander synchronisiert. Dann kannst du per SVN auf das SVN Repo und per Git auf das Git Repo. Bei jedem Commit oder zeitlich gesteuert wird das dann synchronisiert. Bei uns hat sich das aber als ziemlich fehleranfaellig herausgestellt (ein paar Commits sind einfach verschwunden) und wir haben es ziemlich schnell sein gelassen und nur noch git verwendet.

Ok danke...

Dann wäre eigentlich das zweitere das was ich wollte, vielleicht weißt ja noch zufällig wie Tool geheißen hat, mal zum Testen in der Hoffnung, dass es besser geworden ist :p

Eine Frage ist mir noch Unklar, sagen wir das wäre alles zuverlässig, dann könnte ein paar im Team mit SVN committen und ein paar mit Git?
 
Zuletzt bearbeitet von einem Moderator:

TheDarkRose

Gesperrter Benutzer
Eine Frage ist mir noch Unklar, sagen wir das wäre alles zuverlässig, dann könnte ein paar im Team mit SVN committen und ein paar mit Git?

Nein, entweder nur das eine oder das andere. Irgendwann bekommst noch große merge Probleme. Gewöhnt euch z.b git an, für die Übergangsphase dürfte es auch ein SVN-Frontend auf das git-repo geben.
 

schalentier

Gesperrter Benutzer
Ich hab grad mal mit dem zustaendigen Kollegen geredet, der hat das damals selbst gebaut. Einige Bashscripte, die git-svn verwenden. Aber wie gesagt, das ist weder "mal-eben-so" zu installieren, noch funktioniert es wirklich zuverlaessig.

Es gibt auch noch git-cvs, damit kannst du per CVS auf ein Git Repo zugreifen (bzw. eben mit jedem CVS Tool). Evtl. waere das noch was...

Ansonsten kann ich nur nochmal sagen: Entscheidet euch fuer oder gegen Git und nehmt dann nur noch das. Am Anfang wird alles bissel nervig, komisch und fremd wirken - aber das gibt sich. Sinnvollerweise solch ein Umstieg nur machen, wenn grad KEIN wichtiges Release/Deadline ansteht. Grad zur Einfuehrung wird die Produktivitaet des Teams sinken. Dagegen kann man leider nix machen.
 
G

Gast2

Gast
Also ich teste grad ein bischen rum. Mit msysgit geht git svn nicht auf windows.

Aber eigentlich habe ich mir das so überlegt:
1. mit git svn auschecken in lokales git
2. irgendwann in svn committen
3. das lokale git in das zentrale git committen

Sollte doch funktionieren?!?
 

schalentier

Gesperrter Benutzer
Mhhh... Welches System benutzt du? Wie hast du Git installiert? Gehen die restlichen Befehle (z.B. git status, git --version)?

Sehr seltsam, wir hatten hier schon alle denkbaren Probleme, aber die von dir gepostete Meldung kenn ich so nicht (wir haben alle Win hier).
 
G

Gast2

Gast
Mhhh... Welches System benutzt du? Wie hast du Git installiert? Gehen die restlichen Befehle (z.B. git status, git --version)?

Sehr seltsam, wir hatten hier schon alle denkbaren Probleme, aber die von dir gepostete Meldung kenn ich so nicht (wir haben alle Win hier).

Win7, restliche Befehle gehen.
Git habe ich die exe einfach runtergeladen udn ausgeführt.
 
F

freak_007

Gast
Ich benutze nicht Windows, aber ich glaube du musst erst einmal git-svn installieren.
Gruß,
Freak
 
G

Gast2

Gast
Jetzt habe ich mir mal git-svn 1.7.5-1 runtergeladen (also ne ältere Version), damit bekomme ich den Fehler
Code:
$ git svn clone svn://svn......
Initialized empty Git repository in /cygdrive/c/Users/DME/gitLokal/testGit/.git/
W: Eintrag ist nicht lesbar at /usr/lib/git-core/git-svn line 1785

      1 [main] perl 5636 child_info_fork::abort: unable to remap cygldap-2-3-0.dll to same address as parent (01F50000) - try running rebaseall
      0 [main] perl 1052 child_info_fork::abort: unable to remap cygsvn_client-1-0.dll to same address as parent (01F00000) - try running rebaseall
 
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast

Habe ich beide schon runtergeladen und ausprobiert:

Code:
Use of uninitalized value in concatenation (.) or string at /usr/lib/perl5/site_perl/5.8.8/mysys/SVN/Core.pm line 579
W: Item ist not readable at C:\Git/libexex/git-core\git-svn line 2144


Hab jetzt schon SVN 1.7.9 und 1.6.7 probiert. Jetzt finden ich nur SVN 1.7.4.
Git habe ich 1.7.9 und 1.7.4 getestet.

EDIT:

So jetzt habe ich installiert: Subversion 1.7.4-1 git 1.7.9-1
Und bekomme die Nachricht

Code:
user ~/gitLokal
$ git svn init svn:bla.bla
Initialized empty Git repository in /cygdrive/c/Users//gitLokal/.git/

user ~/gitLokal
$ git svn fetch
W: Eintrag ist nicht lesbar at /usr/lib/git-core/git-svn line 2144

      1 [main] perl 5232 child_info_fork::abort: unable to remap cygsvn_client-1-0.dll to same address as parent (00A80000) - try running rebaseall
      1 [main] perl 5528 child_info_fork::abort: address space needed by 'cygsvn_client-1-0.dll' (0xA80000) is already occupied

EDIT EDIT: dann wollte ich das mal testen
Capi’s Corner git-svn fails with fatal error: unable to remap
aber ich hab im usr die datei gar nicht :autsch:
 
Zuletzt bearbeitet von einem Moderator:
F

freak_007

Gast
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben