Git/egit-Konfiguration im Firmennetzwerk

Ich habe gerade zwei Stunden mit einem Kollegen davor gesessen und versucht, git-Repositories hier so zu installieren, dass wir zusammen darauf arbeiten können.

Ich habe früher schon mit cvs gearbeitet, wir haben früher auch mal selbst svn installiert und verwendet, aber git fühlt sich aufgebläht und unnötig umständlich an.

Hilfsmittel waren http://www.vogella.com/articles/EGit/article.html und das Buch “Versionskontrolle mit Git” und unzählige Google-Suchen, trotzdem ist es uns bisher nicht gelungen, zu erreichen, was wir wollten.

Was geklappt hat:

  • Repositories anlegen mit der Commandozeile (git init)
  • Repositories anlegen mit egit aus Eclipse
  • Ein Projekt in das mit egit angelegte Repository einstellen.
  • Änderungen am Projekt wiederum ins Repository übertragen.
  • Ein zentrales Repository aus Eclipse mit angehaktem “bare” Häkchen im Netzwerk anlegen.
  • Ein Benutzerrepository anlegen, das einen Clone vom zentralen darstellt.

Aber bei jedem “commit and push” fragt er wieder auf welches gepusht werden soll und das ist außerordentlich lästig. Außerdem scheint dort nichts anzukommen.

Ich habe im Buch S. 194ff gelesen, dass in den bare repositories kein Arbeitsverzeichnis vorhanden wäre (was - wie ich nur raten kann - vermutlich bedeutet, dass die Quelldateien nicht dorthin übertragen werden, sondern nur irgendwie gepackt vorliegen?).

Insofern sind die Daten vielleicht sogar dort, das ganze fühlt sich aber schwammig, unrund, fehlerbehaftet und unsicher an.

Fast alle Anleitungen beziehen sich auf ein zentrales Repository auf github, da gehört Firmensoftware aber definitiv nicht hin.

Hat irgendwer eine vernünftige, funktionierende Anleitung, wie man das git-Zeug im Firmennetzwerk sinnvoll installiert?

Ich würde Tools wie Atlassian Stash oder scm-manager.org versuchen, alternativ gibt es noch gitorious und andere, welche alle ein wenig komplizierter sind.

[QUOTE=Crian]
Hat irgendwer eine vernünftige, funktionierende Anleitung, wie man das git-Zeug im Firmennetzwerk sinnvoll installiert?[/QUOTE]

Ich persönlich würde auf einen Linuxserver ein Rhodecode aufsetzen und ans LDAP für die Nutzeranmeldung anbinden. Rhodecode war ursprünglich eine Repo-Verwaltung für Mercurial, neuerdings ist auch Git hinzugekommen. Es sieht zwar nicht so stylisch aus wie Github ist jedoch frei sowie recht einfach installierbar (in 2h auf jedenfall) und tut klaglos seinen Dienst.

Edit: Da die derzeit auch so einen Service hochziehen wollen wie BitBucket und GitHub ist die eigentliche Anleitung für die OSS-Versionsinstallation etwas schwieriger zu finden.

https://rhodecode.com/docs/installation.html

Edit: Und ich sehe gerade dass Rhodecode nur noch für 20 User frei ist, wenn man es selbst installiert. Naja irgendwie muss der neue CEO ja sicher bezahlt werden…sigh.

Nice das kannte ich noch nicht :slight_smile:

Ansonsten kann ich noch Gitorious oder Gitlab HQ empfehlen, sollten beide eine LDAP Anbindung haben.

Je nach Projekttyp der Firma kann man solche Dienstleister nutzen. Allgemein aber nicht, finde ich auch.

[QUOTE=Crian;24921]
Hat irgendwer eine vernünftige, funktionierende Anleitung, wie man das git-Zeug im Firmennetzwerk sinnvoll installiert?[/QUOTE]

Schau dir mal die Schritte 6) und 7) an, evtl. hilft dir das weiter:

Würde ich nicht unbedingt unterschreiben. Es gibt genug Dienstleister, die eben genau damit Geld verdienen. Warum sollten die sich den eigenen Hahn abdrehen?

Ich weiß, dass viele Firmen da noch sehr eigen sind, aber ein Jira bei Atlassian oder ein Git-Repository bei gitHub bzw. Atlassian ist eine feine Sache. :slight_smile:

[QUOTE=Sym]
Ich weiß, dass viele Firmen da noch sehr eigen sind, aber ein Jira bei Atlassian oder ein Git-Repository bei gitHub bzw. Atlassian ist eine feine Sache. :)[/QUOTE]

Das stimmt schon, aus Entwicklersicht spricht da auch nichts dagegen. Das ganze hat aber weitaus mehr Auswirkungen als man meint. Es gibt Kunden, die werden sowas nicht akzeptieren, dass deren Code bei einem Dienstleister liegt, der nicht als Vertragspartner im Projekt auftritt. Und solche Projekte bringen meist sehr viel Geld.
Ein neuer online Shop für einen Postkartenverkäufer wird es sicher nicht interessieren, was mit seinem Code passiert. Wahrscheinlich basiert dieser sowieso auf einer Open Source Fertiglösung. Die ambitionierten Mittelständler haben da schon etwas andere Ansichten.

Aber sicherlich macht es auch Sinn für Firmen sich bei so einem Dienstleister einen Account anzulegen. Das hätte so eine Art Social Media Marketing Image Effekt, nur eben für Entwickler.

Also für Startups und kleine Entwickler ist Github oder privaten Repositories unschlagbar. Bei größeren Unternehmen laufen Git-Lösungen (Gitorious, Atlassian Stash, Gitlab HQ, Githhub:FI) natürlich im Intranet. Höchstens wenn solche Unternehmen im Open Source Bereich mitmischen, haben diese auch bei Github einen Account, dann aber nur für die öffentlichen Open Source Projekte.

Für größere Firmen ist das nicht sinnvoll, weil?

Meint ihr wirklich, es würde eine Firma wie Atlassian den Code durchforsten, in der Hoffnung etwas zu finden, was genutzt werden kann?

Meiner Erfahrung nach, sind in den meisten Firmen eh nur Einzellösungen in der Entwicklung. Spezielle Software, welche nur mit Aufwand einer anderen Firma etwas bringen würde.

Es sagte nicht, das es keinen Nutzen hätte das auszulagern. Aber gewisse Firmen haben ziemlich strikte IT-Richtlinien was das angeht.

Oder weil der Inhouse Betrieb doch billiger ist.

Ja, da hast Du natürlich recht.

Sogar ich hab als einzelner Dev Stash selbst am laufen. Liegt aber daran, dass ich mit vServer Hosting angefangen habe, somit natürlich die Ressourcen da waren und die 10$ für die Starter Lizenz einfach unschlagbar ist ^^

Nochmal zum Thema RhodeCode:

Ich habe nach der sehr hilfreichen Anleitung des CTOs https://gist.github.com/marcinkuzminski/4546398 mal eine Testinstallation vorgenommen und bin schon beeindruckt von dieser Software. Sieht nicht nur gut aus, macht auch einen besseren Eindruck als Gerrit. Das Problem ist leider die Preisgestaltung:

Trotz Open Source und einer eigenen Installation braucht man ab mehr als 20 Benutzern eine Lizenz. Finde ich etwas seltsam diese Strategie, und wird für mich deswegen auch nicht in Frage kommen. Dafür gibt es mit Gerrit eine gute und kostenfreie Alternative.

[QUOTE=deetee][…]

Trotz Open Source und einer eigenen Installation braucht man ab mehr als 20 Benutzern eine Lizenz. Finde ich etwas seltsam diese Strategie, und wird für mich deswegen auch nicht in Frage kommen. Dafür gibt es mit Gerrit eine gute und kostenfreie Alternative.[/QUOTE]

Ist Gerrit nicht ein Tool speziell für Code-Reviews? Kann man zwar auch mit Rhodecode machen ist aber eigentlich nicht die Kernanwendung, obwohl es dieses Feature jetzt gibt. Die Kernkompetenz ist die Repository-Verwaltung für Mercurial und (neuerdings) Git.

Und zu den “Alternativen”, die Sache ist die, Rhodecode gibt es nicht erst seit gestern, das ist schon ein paar Jahre existent und wird auch von größeren Firmen eingesetzt und zwar mit Mercurial.
Es war IMHO lange ein Ein-Mann-Projekt und der Hauptentwickler wurde auch oft von, vor allem größeren, Firmen nach Support gefragt. Wenn also ein eigentliches Hobbyprojekt derartige Ausmaße annimmt das du daran Vollzeit arbeiten musst/möchtest und andere Unternehmen Sicherheiten[1] verlangen wird man das eben kommerzialisieren.
Die Entscheidung das für 20 Entwickler kostenlos zu lassen ist ok. Dazu gab es mal eine Info auf der Website in der Stand das 20 wohl so eine Grenze wäre unter die die meisten Rhodecode-Nutzer drunter fallen und somit nicht von dem Supportvertrag (das ist das was man da kauft) betroffen sind.

[1] Dann kannst du nämlich nicht mehr hinschreiben “provided as it is” und “ich übernehme keine Verantwortung wenn durch das System eure wichtigen Daten verloren gehen” etc.

Da ist kein Bamboo enthalten, oder? Warum nutzt Du dann nicht BitBucket? Weil es lokal installierbar ist?

Nein aber Bamboo kann ich mir ja extra installieren. Und ja, weil es lokal installierbar ist und mir ja die Server Ressourcen zur Verfügung stehen.

Hmm, ich glaube ich würde gerade für so kleine Dinge und nur für einen Entwickler lieber ein Online-Angebot nutzen (wenn mit der Firmenpolitik vereinbar).

Jup, ist eh klar. Wie schon gesagt, ich hatte die Server, hatte auch schon JIRA am laufen und somit ist einfach mal Stash hinzugekommen. Und für mich schadet es auch nicht, sich mit der Konfiguration davon auszukennen um auch das zukünftig anzubieten.

@ThreadPool

Die 20 User sind grundsätzlich nicht schlecht, nur gibt es Firmen, die arbeiten viel mit verschiedenen Freelancern, und dann sind die 20 User relativ schnell erreicht. Andererseits kostet RhodeCode auch nicht die Welt. Ich fände es jedoch besser, wenn die Politik wie bei MySQL wäre, wo man zwar etwas wenige Features bekommt in der freien Version, aber dafür unbegrenzt nutzen kann. RhodeCode hat sich bewusst dagegen entschieden.

Gerrit ist ein Review System für Git, aber wenn man es einsetzt, dann läuft quasi alles über Gerrit. Man klont über Gerrit URLs, wie auch bei RhodeCode, man hat eine Benutzerverwaltung für Git, wie auch bei RhodeCode, man hat eine LDAP Anbindung, wie auch bei RhodeCode, und man hat auch verschiedene Repo Informationen zur Verfügung, über die Web Oberfläche. In erster Linie ist Gerrit aber ein Review System, das stimmt.