Seite 1 von 2

Git vs. SVN

BeitragVerfasst: Do 3. Mär 2011, 12:26
von Josef Pötzl
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

Re: Git vs. SVN

BeitragVerfasst: Sa 12. Mär 2011, 18:47
von Christoph Jüngling
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 :?

Re: Git vs. SVN

BeitragVerfasst: Sa 12. Mär 2011, 19:09
von Josef Pötzl
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

Re: Git vs. SVN

BeitragVerfasst: So 13. Mär 2011, 12:25
von Christoph Jüngling
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

Re: Git vs. SVN

BeitragVerfasst: So 13. Mär 2011, 18:07
von Josef Pötzl
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

Re: Git vs. SVN

BeitragVerfasst: So 13. Mär 2011, 21:23
von Christoph Jüngling
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 :-)

Re: Git vs. SVN

BeitragVerfasst: Mo 21. Mär 2011, 19:01
von Christoph Jüngling
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

Re: Git vs. SVN

BeitragVerfasst: Di 22. Mär 2011, 09:27
von Mark Dörbandt
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

Re: Git vs. SVN

BeitragVerfasst: Di 22. Mär 2011, 18:54
von Christoph Jüngling
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.

Re: Git vs. SVN

BeitragVerfasst: Di 22. Mär 2011, 20:36
von Josef Pötzl