SVN oder GIT?



  • Ich will mich mal mit der Versionsverwaltung anfreunden und würde mal gerne eure Meinung zu den beiden Kandidaten SVN und GIT lesen.

    Was bevorzugt ihr und warum?



  • Was ist mit Mercurial (hg), hat die gleichen Befehle wie SVN + pull, push.

    Bei hg und git kannst du einfach Repositories anlegen. Um deine Software dann auf mehreren Computern zu bearbeiten brauchst du nur Onlinespeicher ohne besondere Software.
    Weiter kann man einfach beliebig viele Kopien eines Repositories auf verschieden Datenträgern speichern, und von diesen Pullen Pushen oder sie direkt benutzen.

    Deshalb denke ich, dass hg und git aufgrund ihrer einfachen Einrichtungen und höheren Flexibilität für den Privatgebrauch besser geeignet sind als SVN.



  • Server ist nicht das Problem, ich habe einen Root-Server und zu Hause einen Homeserver, beide mit Linux. Ferner will ich Abends meine Workstation aus machen und im Bett am Laptop weiter arbeiten. Die beiden Rechner sind nie gemeinsam an.



  • Ich benutze privat Git (oftmals mit GitHub) und bin sehr zufrieden damit. Ich habe auch schon SVN verwendet aber mir persönlich gefällt Git besser.

    Fallst du vörig Zeit hast kannst du dir einmal den Vortrag TechTalk: Linus Torvalds on git anschauen. Ich fand den Votrag noch interessant auch wenn man bei Linus immer im Hinterkopf behalten muss dass er oftmals sehr extreme Meinungen vertritt.



  • Danke für den Tipp. Github ist doch aber nur für Leute, die ihren Source veröffentlichen wollen, oder?

    Zu Linus, es sind meist die Leute mit den extremen Meinungen, die etwas bewegen. Leute die immer alles richtig machen und mit dem Strom schwimmen, bewegen so gut wie nie was in der Welt, sie erhalten halt das Vorhandenen, was ja auch wichtig ist.



  • Wir haben in der Firma gitlab laufen. Ist Prinzipiell ein Github-Lite dass man self hosten kann. Und somit keinen Source Code veröffentlichen muss.

    Ich kenne aber auch Firmen die sich private Github repos gekauft haben - dann kannst du auch "geheimen" Source Code dort hosten.

    Github ist halt relativ cool weil es alle Features mit relativ guter GUI anbietet die notwendig sind. Gitlab ist da etwas hinten nach, aber dennoch gut verwendbar.

    Generell würde ich aber kein CVS/SVN mehr verwenden. Die meisten Leute setzen auf git aber auch mercurial ist gut, im Prinzip nimmt sich das nichts. Git hat halt den besseren Support auf Anwender Seite.



  • Starglider schrieb:

    Danke für den Tipp. Github ist doch aber nur für Leute, die ihren Source veröffentlichen wollen, oder?

    Ist das ein Problem?

    icarus2 schrieb:

    TechTalk: Linus Torvalds on git anschauen. Ich fand den Votrag noch interessant auch wenn man bei Linus immer im Hinterkopf behalten muss dass er oftmals sehr extreme Meinungen vertritt.

    Ich finde es gar nicht extrem, dass er seine eigene Software besser findet als fremde. Er hat ja auch technisch völlig recht damit, dass SVN Müll ist und schon immer war.



  • TyRoXx schrieb:

    icarus2 schrieb:

    TechTalk: Linus Torvalds on git anschauen. Ich fand den Votrag noch interessant auch wenn man bei Linus immer im Hinterkopf behalten muss dass er oftmals sehr extreme Meinungen vertritt.

    Ich finde es gar nicht extrem, dass er seine eigene Software besser findet als fremde. Er hat ja auch technisch völlig recht damit, dass SVN Müll ist und schon immer war.

    Ich finde auch dass er hier absolut recht hat. Ich fand seine Argumente sehr überzeugend. Würde mich interessieren was ein SVN-Fanboy (gibt es solche?) dazu sagen würde.

    Der Kommentar war nicht unbedingt im Zusammenhang mit dem geposteten Video gemeint sondern allgemein (hätte ich klarer schreiben sollen). Wie gesagt hat er sehr starke Meinungen und deshalb sind seine Aussagen manchmal auch mit etwas Vorsicht zu geniessen (ein prominentes Beispiel sind die C vs. C++ Mails). Ich möchte hier nicht schlecht über Linus sprechen, ich habe grossen Respekt vor seinen Leistungen.



  • TyRoXx schrieb:

    Starglider schrieb:

    Danke für den Tipp. Github ist doch aber nur für Leute, die ihren Source veröffentlichen wollen, oder?

    Ist das ein Problem?

    Ähm, na klar, ich will schon entscheiden, ob ich meinen Anfänger-Code so einfach jeden präsentiere oder nicht. Falls das aktuelle Projekt fertig wird, dann wird es zwar eh als Freeware-Tool weiter gegeben, aber den Source möchte ich nun nicht gleich jedem unter die Nase binden, auch wenn da keine geheimen Dinge drin passieren. Wenn ich in Blender ein Wallpaper veröffentliche, dann will ich auch nicht dass jeder gleich die .blend Datei mit runter laden kann.

    Ansonsten habe ich mich jetzt erst einmal für Git entschieden und auf dem einen Rechner läuft es schon und ich kann auch das Repo auf dem Server ansprechen und mit dem lokalen Repo abgleichen.



  • Starglider schrieb:

    Ähm, na klar, ich will schon entscheiden, ob ich meinen Anfänger-Code so einfach jeden präsentiere oder nicht.

    Im Zweifelsfall zeig ihn ruhig her, das tut weniger weh als man glauben könnte. Spreche aus Erfahrung; habe auch Projekte mit massig hässlichem Code online.

    Bei GitHub bekommst du als Student oder Schüler übrigens gratis einen "GitHub Micro"-Account, bei dem du fünf private Repos und einen Collaborator haben darfst:
    https://education.github.com



  • Bei GitHub bekommst du als Student oder Schüler übrigens gratis einen "GitHub Micro"-Account, bei dem du fünf private Repos und einen Collaborator haben darfst:

    Ist das irgendwo vermerkt? Ich hab hier mehrere Repositories mit teils bis zu 5 Collaboratoren. Nicht dass ich da in irgendwelche Schwierigkeiten mit gerate...


  • Administrator

    nman schrieb:

    Bei GitHub bekommst du als Student oder Schüler übrigens gratis einen "GitHub Micro"-Account, bei dem du fünf private Repos und einen Collaborator haben darfst:
    https://education.github.com

    Zufällig gerade gesehen. Man sollte hier vielleicht auch noch Bitbucket erwähnen:
    https://bitbucket.org/
    https://bitbucket.org/plans

    Unterstützt Git und Hg. Soviele private Repositories wie man möchte mit bis zu fünf Benutzer, gratis.



  • Danke für die Tipps. Ich habe mich jetzt für GIT entschieden, das Repro kann ich dann auch mal auf einen USB-Stick kopieren, wenn mal wieder die Samba-Freigabe vom Raspberry PI spinnt bzw der eine Mac nicht ohne weiteres darauf zugreifen will.

    Ansonsten will ich auch nichts irgendwo auf fremde Server hoch laden. Ich bin eher dabei das Internet bei mir immer weniger zu benutzen, ich schalte es sogar oft ganz aus. Ich persönlich komme dann endlich wieder zu was. Ich bin sonst doch immer wieder von News, Foren, SocialNetwork etc abgelenkt. Mit dem Handy mache ich das mittlerweile genauso. Das ist vielleicht mal ein Tag in der Woche an.



  • Es gibt auch noch Bitbucket (https://bitbucket.org/plans) für Mercurial oder Git. Mit kostenlosen privaten Repos.
    Bin zufrieden damit.



  • ntldr schrieb:

    Ist das irgendwo vermerkt? Ich hab hier mehrere Repositories mit teils bis zu 5 Collaboratoren. Nicht dass ich da in irgendwelche Schwierigkeiten mit gerate...

    Wenn das nirgends mehr vermerkt ist, dann gilt es vmtl. nicht mehr. Meine Informationen bzgl. private collaborators sind schon etwas älter.

    Ich muss gestehen, dass ich selbst aktuell gerade keinen kostenpflichtigen GitHub-Account habe, weil ich ohnehin eine Gitolite-Instanz auf einem meiner Server laufen habe. Ist einigermaßen anfängertauglich einzurichten, wenn man ein kleines bisschen Admin-Erfahrung hat:
    https://www.digitalocean.com/community/tutorials/how-to-use-gitolite-to-control-access-to-a-git-server-on-an-ubuntu-12-04-vps



  • Starglider schrieb:

    Ich will mich mal mit der Versionsverwaltung anfreunden und würde mal gerne eure Meinung zu den beiden Kandidaten SVN und GIT lesen.

    Was bevorzugt ihr und warum?

    Ich habe Subversion laufen. Heute wird häufig Git den Vorzug gegeben und ich würde auch anraten, sich Git heute zuerst anzuschauen. Ich nutze Subversion aber schon länger als es Git öffentlich gibt und sah bisher keinen wichtigen Grund zu wechseln - im Gegenteil, aber die Probleme, die ich seinerzeit mit Git hatte können heute längst überholt sein.

    Ich nutze SVN weil mein Repository nicht öffentlich ist und ich eine Zugangskontrolle zu einzelnen Repositorys möchte. Das ist mit Subversion sehr einfach und schnell einzurichten. An der Installation eines Git-Servers bin ich vor einigen Jahren zusammen mit einem Git-Begeisterten gescheitert. Damals musste man für unterschiedliche User, den Usern einen Account auf dem Rechner geben. Da ich aber fremden keinen Account auf meinem Root-Server geben wollte, war mir das auch zu heikel. Subversion liefert einen Damon mit, das ist alles in 5 Minuten installiert und eingerichtet.
    Das dürfte inzwischen mit Git auch deutlich einfacher sein, ich möchte das beizeiten auch nochmal probieren, darum solltest Du Git auch nicht gleich aus den Augen verlieren.

    Git erlaubt es mehrere Versionen lokal einzuchecken, es gibt keine Abhängigkeit zu einem zentralen Repository, wie das bei SVN der Fall ist. Bei SVN muss jede Version an das eine zentrale Repository geliefert werden.
    Git ist hier im Vorteil, wenn man unterwegs ist und eine Version erzeugen möchte. Allerdings ist mein Händi über LTE schneller als mein gegenwärtiger DSL-Anschluss, das Argument zieht bei mir also nicht, um zu Git zu wechseln. Und ich will ja, dass meine Modifikationen auf einem anderen Server gesichert werden und damit auch ein Backup haben. Ein Backup auf dem gleichen Rechner ergibt für mich aber keinen Sinn, also will ich auch Kontakt zu einem anderen Server aufnehmen und für mich ist das in Ordnung, wenn der Workflow von Subversion vorgibt, dass das mein Repository-Server sein muss.

    In der Firma habe ich die Umstellung von SourceSafe zu Subversion vollzogen. Hier war von meiner Seite auch kurz Git in Überlegung. Die Gründe für Subversion waren, dass neben mir noch jemand bereits über Erfahrung mit SVN verfügte und dass ich mehrere aufwendige Schulungen halten musste, um den Kollegen die Idee der Arbeitskopie zu vermitteln und dass man mehrere an Dateien arbeiten dürfen, ohne dass man die Dateien "locken" muss. Das "Lock", was unter SourceSafe grundsätzlich genutzt wird, war für die Kollegen unglaublich wichtig, um überhaupt den Umstieg zu wagen (hat nie einer benutzt, war aber für die Entscheidungsträger entscheidend).
    Hätte ich da noch lokale Versionsverwaltung erklären müssen, hätte das überfordert.

    Subversion löst meine Probleme derzeit am Effizientesten. Ich bin bei Git aber eben auch nicht auf dem neusten Stand, Git entwickelt sich scheinbar schneller als Subversion - was ein Vorteil sein kann, aber auch ein Nachteil.
    Subversion ist in den 9 Jahren, wo ich es nutze, bisher in jedem Fall zuverlässig gewesen. Das ist mir wichtiger als schnell neue Features zu bekommen - ich nutze ja nichtmals alles was Svn kann.



  • @Xin: Nur so aus Interesse: Was ist denn der große Unterschied zwischen SVN und TFS? (PS: Ich verwendet git 😉 )



  • Nur so zur Info:
    Git Server und Rechteverwaltung ist easy peasy.
    git ist technisch weiter als svn - und git hat keine Probleme mit instabilität oder kompatibilitäts Brüchen zu älteren Versionen. Und es gibt auch keinen Update wahnsinn. Und um ehrlich zu sein, erinnere ich mich an keine Zeit wo das jemals so war - auch Server mit Rechteverwaltung war eigentlich nie ein Problem.



  • Jochen Kalmbach schrieb:

    @Xin: Nur so aus Interesse: Was ist denn der große Unterschied zwischen SVN und TFS? (PS: Ich verwendet git 😉 )

    Da gibt es mehrere: Wir müssten dafür Geld bezahlen (weil ab 5+ Usern, kostet es) und es kennt sich bei uns keiner damit aus, wir müssten uns also alle einarbeiten und wenn irgendwo hakt, wüsste auch keiner Bescheid.

    Wenn ich mir den Aufwand angucke (MS-SQL, Windows Server 2003+), dann muss da auch noch eine entsprechende Maschine her.
    Wir haben Subversion auf einem QNAP mit Atom-CPU laufen.

    Grundsätzlich kann ich dazu aber wenig sagen, nachdem uns das vorherige Microsoft-Produkt (SourceSafe) mit einem Repository von >4GB teilweise schon um die Ohren geflogen ist und MS selbst sagt, dass SourceSafe mit >5 sich komplett auflöst, hielt sich die Begeisterung hier auch etwas zurück, wieder ein MS Produkt zu verwenden.

    @Shade: Seit wann verwendest Du git, bzw. anders gefragt: Seit wann setzt Du git-Server auf?
    Das muss wohl inzwischen auch recht einfach sein, steht auf meiner Planung mir das auch nochmal anzusehen. Vor 5 Jahren war's aber eher ein Hack, den man dazuinstallieren musste, die Doku dafür war... überschaubar und da ich die (rechtliche) Verantwortung für den Server habe, habe ich git erstmal wieder eingestampft und für die Firma gilt eher 'Never touch a running system'.

    Da git aber tatsächlich als das moderene SVN gilt, müsste ich mich da mal wieder einlesen. Es bestand bisher einfach kein Bedarf, denn SVN läuft. Das einzige Argument ist, dass heute jeder Git nimmt und die Leute deswegen eher Git nachfragen als Svn. Ob derjenige die zusätzlichen Features wirklich braucht, ist wieder eine andere Frage...



  • Git-Server für viele User aufzusetzen, ohne Systemuser anlegen zu müssen, ist _wirklich_ leicht. Im wesentlichen installierst du einfach gitolite, legst einen User dafür an und das übernimmt dann die Rechteverwaltung. User legst du im wesentlichen einfach dadurch an, dass du ihren SSH-Public-Key in das gitolite-admin Repo pusht. Habe oben ein entsprechendes Tutorial verlinkt.


Log in to reply