Git vs. SVN

Diskussionen über Subversion, WebSVN, TortoiseSVN, ...

Git vs. SVN

Beitragvon Josef Pötzl » Do 3. Mär 2011, 12:26

Hallo!

Hat jemand Erfahrung mit Git?

Ich probierte die letzten Tage Git aus und es gefällt mir ganz gut. Vor allem das Anlegen von lokalen Branches finde ich praktisch.
Für die Verwendung mit Access testete ich den GIT SCC proxy von PushOK mit dem Microsoft SCC-Add-In.
Mit TortoiseGit kann man Git direkt aus dem Windows-Explorer bedienen.

Im Prinzip kann man mit Git alles machen was man mit SVN möglich ist - nur mit der Besonderheit, dass Git auch lokale Branches/Repositories ermöglicht, die man bei Bedarf mit einem "zentralen" Repo synchronisieren kann. SVN kann man zwar auch lokale Repos einrichten, man kann diese allerdings nicht mit einem anderen Repo synchronisieren.

mfg
Josef
Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016

Re: Git vs. SVN

Beitragvon Christoph Jüngling » Sa 12. Mär 2011, 18:47

Wie es der Zufall will, bin ich durch einen anderen Kollegen auch zu Git gekommen. TortoiseGit macht sich gut, und wenn man sich mal in das andere Konzept von Git eingelesen hat, müsste auch vernünftig damit zu arbeiten sein.

Für eine direkte Integration in VBA sehe ich übrigens inzwischen gar keinen Bedarf mehr. OASIS leistet für Access gute Dienste (für GIT nutzt man dann eben nur den Import-/Export-Teil), und zumindest für Excel und Visio habe ich eigenen Code zum Exportieren (kann ich bei Interesse gerne bereitstellen). Im Ergebnis habe ich dann lauter Dateien, die ich mit TortoiseSVN (oder dann eben TortoiseGIT) ganz normal weiterverarbeiten kann.

Einzig Microsoft setzt mit Visual SourceForge und TeamFoundationServer immer noch auf File Locks, was eine Integration in die Entwicklungsumgebung sinnvoll macht. SVN kann das auch, man empfiehlt aber es möglichst nicht zu nutzen. Bei GIT weiß ich es noch nicht, vermute aber, dass Locks wegen des "Distributed"-Gedankens eher nicht existieren.

Laut diversen Artikeln ist eine Sache möglich, die in SVN wohl nicht geht: Mit GIT kann ich ein nur lokal existierendes Changeset per eMail an einen Kollegen schicken, der das dann in sein lokales Repository integriert, testet, ggf. verändert und wieder zurückschickt. In dieser Phase kriegt das niemand mit, und peinliche Programmierfehler bleiben unter Freunden ;) anstatt sie gleich in's zentrale SVN-Repository zu committen.

Auch das Kommando "git svn clone --stdlayout url localfolder" funktionierte bei einem entfernten SVN-Server gut, kostet aber je nach Größe des Repos etwas Zeit.

Das Thema interessiert mich auf jeden Fall, aber da gibt es noch einiges zu lesen :?
Christoph Jüngling
Tester
 
Beiträge: 43
Registriert: Mi 13. Okt 2010, 08:29
Wohnort: Kassel, Deutschland, Europa, Terra
Accessversion: 2003, 2010
Access-Erfahrung: Experte

Re: Git vs. SVN

Beitragvon Josef Pötzl » Sa 12. Mär 2011, 19:09

Je mehr ich mich mit Git beschäftige, desto besser gefällt es mir. ;)
Bezüglich Tools hat meiner Meinung nach aber SVN noch die Nase vorne.
Gerade bei der Zusammenarbeit mit mehreren Entwicklern stellte ich mir die Arbeit mit lokalen "Wegwerf-Brances" praktisch vor, da man das gemeinsame "öffentliche" Repo nicht mit Spielereien & Co. versaut.
Übrigens: man kann ein lokales Git-Repo auch gegen ein SVN-Repo synchronisieren.

Für eine direkte Integration in VBA sehe ich übrigens inzwischen gar keinen Bedarf mehr.

Das direkte Öffnen von Diff & Co. finde ich schon ganz praktisch.

Mit GIT kann ich ein nur lokal existierendes Changeset per eMail an einen Kollegen schicken

Sind das diese "Patches"?

mfg
Josef
Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016

Re: Git vs. SVN

Beitragvon Christoph Jüngling » So 13. Mär 2011, 12:25

Josef Pötzl hat geschrieben:
Mit GIT kann ich ein nur lokal existierendes Changeset per eMail an einen Kollegen schicken

Sind das diese "Patches"?


Ich glaube ja, siehe diesen Artikel. Wenn ich mir vorstelle, dass ich die dort beschriebene Datei "0001-implement-function.patch" einfach per eMail verschicken kann, müsste das dem Konzept entsprechen. Allerdings muss der Kollege immer noch wissen, auf welchem Stand er den Patch aufspielen darf.

Der Befehl "git bundle" könnte auch recht hilfreich sein, siehe hier unter "Git über alles". Dort werden auch Patches beschrieben. Beides arbeitet mit Dateien und hätte den Charme z.B. über eine Dropbox verteilt werden zu können, auch an mehrere Entwickler. So wie ich das sehe, braucht man also für erste Versuche keine Serverinstallation.

Auch gut: Kernel Hackers' Guide to git und Pro Git

Chris

P.S.: Es ist übrigens hilfreich, bei allen Google-Anfragen zu GIT ein "-gitarre" anzuhängen ;)

Update: Ein schöner Vortrag von Linus Torvalds bei Youtube: http://www.youtube.com/watch?v=4XpnKHJAok8
Christoph Jüngling
Tester
 
Beiträge: 43
Registriert: Mi 13. Okt 2010, 08:29
Wohnort: Kassel, Deutschland, Europa, Terra
Accessversion: 2003, 2010
Access-Erfahrung: Experte

Re: Git vs. SVN

Beitragvon Josef Pötzl » So 13. Mär 2011, 18:07

Danke für den Link zum Vortag von Linus Torvalds.
@all: lasst euch von der 1 Stunde Laufzeit nicht abschrecken - der Vortrag wird nicht langweilig. ;)

mfg
Josef
Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016

Re: Git vs. SVN

Beitragvon Christoph Jüngling » So 13. Mär 2011, 21:23

Josef Pötzl hat geschrieben:Danke für den Link zum Vortag von Linus Torvalds.
@all: lasst euch von der 1 Stunde Laufzeit nicht abschrecken - der Vortrag wird nicht langweilig. ;)


Absolut nicht, der Kerl ist echt der Hammer :-)
Christoph Jüngling
Tester
 
Beiträge: 43
Registriert: Mi 13. Okt 2010, 08:29
Wohnort: Kassel, Deutschland, Europa, Terra
Accessversion: 2003, 2010
Access-Erfahrung: Experte

Re: Git vs. SVN

Beitragvon Christoph Jüngling » Mo 21. Mär 2011, 19:01

Nochmal ein Link, falls jemand mit Git erstmal lokal spielen möchte:

Create a new Git Remote Repository from some local files (or local git repository)

Der Artikel beschreibt zwar die Kommandozeilenbefehle in Verbindung mit einem entfernten Linux-Server, aber
  1. geht das auch auf einer lokalen Linux-Maschine
  2. wenn man z.B. TortoiseGIT unter Windows installieren will, braucht man msysgit sowieso, die sind also auch dort vorhanden
  3. wenn man die Verzeichnisse einigermaßen sinnvoll anpasst, sollte sowas auch unter Windows klappen
Christoph Jüngling
Tester
 
Beiträge: 43
Registriert: Mi 13. Okt 2010, 08:29
Wohnort: Kassel, Deutschland, Europa, Terra
Accessversion: 2003, 2010
Access-Erfahrung: Experte

Re: Git vs. SVN

Beitragvon Mark Dörbandt » Di 22. Mär 2011, 09:27

Hallo, zusammen,

interessant - das Thema scheint reif zu sein. Gerade neulich hat mir mein Cousin, auch Softwareentwickler und vorher SVN-Nutzer, das Thema GIT wärmstens ans Herz gelegt. Werde ich also auch mal schauen müssen...

Gruß - Mark
Mark Dörbandt
Entwickler
 
Beiträge: 12
Registriert: So 20. Feb 2011, 12:19
Wohnort: Berlin
Accessversion: 2.0 - 2010
Access-Erfahrung: Experte

Re: Git vs. SVN

Beitragvon Christoph Jüngling » Di 22. Mär 2011, 18:54

Um nicht vorschnell zu entscheiden sollten wir auch einen Blick auf Mercurial (Hg) werfen. Es handelt sich ebenfalls um verteilte Versionsverwaltung und die Kommandozeilenbefehle ähneln sehr stark denen von Git und es gibt für Windows ebenfalls ein TortoiseHg.

Für beide Systeme gibt es offenbar eine Anbindung an einen SVN-Server (gitsvn und hgsubversion), so dass während der Testphase hier mit dem bestehenden Repository gearbeitet werden kann.
Christoph Jüngling
Tester
 
Beiträge: 43
Registriert: Mi 13. Okt 2010, 08:29
Wohnort: Kassel, Deutschland, Europa, Terra
Accessversion: 2003, 2010
Access-Erfahrung: Experte

Re: Git vs. SVN

Beitragvon Josef Pötzl » Di 22. Mär 2011, 20:36

Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016

Nächste

Zurück zu Quellcodeverwaltung (Subversion, Git)

cron