Frage Hosting mehrerer Repositories (svn, hg, git)


Ich habe kürzlich einen dedizierten Server erworben und muss mehrere Repositorys von einem Quellcode-Hosting-Dienst dorthin verschieben. Da ich nicht viel Erfahrung in der Serveradministration habe, habe ich keine Ahnung, wie man es effektiv organisiert. Was ich suche -

  1. svn.host.com, hg.host.com, git.host.com Subdomains, die über SSH-Schlüssel zu den verschiedenen Repos gehören
  2. einfache Erstellung neuer Repositories
  3. Authentifizierung mit der Server-Unix-Benutzerliste, aber auch mit Berechtigungen für jedes Projekt wahlweise schreibgeschützter öffentlicher Zugang für etwas der Repos

Leider führt mich jeder Suchbegriff, den ich auf Google ausprobiere, zu kommerziell gehosteten Lösungen und nicht zu Anleitungen, wie ich meine eigenen zusammenstellen kann. Ich brauche etwas wie eine abgespeckte Hosted-Lösung, aber ohne die Notwendigkeit, dass die Benutzer ihre eigenen Repos erstellen können.

Irgendwelche Vorschläge, Tutorials oder Scripted-Lösungen, wo man Forschung beginnt? Eine Open-Source-Lösung für eine administrative Schnittstelle für den Umgang damit (oder zumindest für einige wäre perfekt ...


8
2018-04-27 19:46


Ursprung




Antworten:


Ich benutze nur Git, also werde ich versuchen, dir zumindest dabei zu helfen:

Wenn Sie keine Probleme bei der Verwaltung Ihrer Repos über die Befehlszeile sehen, sollte Gitosis das ziemlich gut machen.

Wenn Sie wirklich ein Webinterface benötigen, können Sie repo.or.cz (http://repo.or.cz/w/girocco.git) oder gütlich (http://gitorious.org/gitorious). Repo.or.cz ist hässlicher, aber es ist viel einfacher zu installieren (gitorious ist Open-Source, aber es ist auch die Software, die gitorious.org betreibt - sie haben keinen großen Anreiz, nette Anweisungen zu schreiben)

Hier ist eine umfassendere Liste von Optionen: https://git.wiki.kernel.org/index.php/GitHosting

Jede dieser Optionen ermöglicht Ihnen die einfache Erstellung neuer Repositories.

Nun, ein Wort der Warnung: Sie sollten niemals die Unix-Server-Benutzerliste für Repository-Berechtigungen verwenden. Es ist leicht genug, sich damit herumzuärgern, und die Ergebnisse sind leicht katastrophal (Gitosis verwendet eine einfache Dateikonfiguration und SSH-Schlüssel. Sollte den Trick für Sie tun).

Eine andere Sache, ich sehe nicht, warum Sie Subversion, HG und Git-Repositories haben müssen. Die meisten Projekte verwenden nur eine dieser Optionen. Kümmere dich darum, warum?


6
2018-04-27 20:50



Ich habe mehrere Projekte in mehreren Repositorien. Viele Commiters sind nicht besonders technikaffin und daher wären hg und git ein Problem für sie, also halte ich svn für die offeneren Projekte. Persönlich verwende ich HG als mein SCM der Wahl. Ich hostle auch ein paar Projekte für meine Freunde und einige von ihnen verwenden git als SCM ihrer Wahl. Keine Möglichkeit, jedem zu gefallen, wie es scheint :) - Kornel Kisielewicz
Könnten Sie auch mehr über die Gefahren der Verwendung der Unix-Benutzerliste für Repo-Berechtigungen erfahren? - Kornel Kisielewicz
Warum die Verwendung der Unix-Benutzerliste für Repositories eine schlechte Sache ist: Verlust der Granularität, Verlust der Portabilität. Wenn Sie die Repos auf einen anderen Server ändern müssen, müssen Sie die gesamte Unix-Benutzerliste verschieben. Wenn Sie Administratorberechtigungen delegieren möchten, müssen Sie Root-Berechtigungen erteilen. Nun, auf Gitosis, wenn Sie den Server ändern möchten, müssen Sie nur den Repo klonen. Wenn Sie Administratorberechtigungen delegieren möchten, müssen Sie den Benutzer nur zur Gruppe gitosis-admin hinzufügen. - Tiago Fassoni
just_testing, einverstanden, gültige Punkte :) - Kornel Kisielewicz


SVN kann mit Apache WebDAV in einem vhost unter Verwendung der Unix-Authentifizierung und der eigenen Benutzer-ACLs von subversion durchgeführt werden. Ich weiß nichts über Mercurial oder Git, aber ich würde hoffen, dass sie auch in DAV eingebunden werden könnten.


2
2018-04-27 20:50





Wenn Sie verwenden möchten SSH, dann muss man im Grunde die Tasten durch Editieren der Tasten einschränken authorized_keys Datei auf dem Server. Für Mercurial sind die wichtigsten Möglichkeiten, dies zu tun:

  • Du kannst den ... benutzen contrib/hg-ssh Skript, um die Befehle einzuschränken, die Personen ausführen können, wenn sie mit SSH angemeldet sind. Die Datei enthält eine Kopfzeile, um zu erklären, wie sie zu verwenden ist, aber Sie fügen im Grunde hinzu

    $ command="hg-ssh path/to/repo"
    

    vor dem Schlüssel in der authorized_keys Datei. Dies schränkt den Schlüssel so ein, dass er nur zum Drücken und Ziehen in das angegebene Repository verwendet werden kann.

  • Sie können auch den Drittanbieter verwenden Mercurial-Server Werkzeug, wenn Sie so etwas wollen Gitois. So können Sie Benutzer und ihre Zugriffsrechte verwalten, indem Sie Dateien in einem speziellen Admin-Repository bearbeiten.

Siehe die Mercurial Wiki für einige andere ähnliche Tools für SSH.

Zum HTTP, es gibt

  • Das eingebaute hgweb (Fast) CGI- oder WSGI-Skript, das mit Mercurial geliefert wird. Diese behandelt Pushs und Pulls, erlaubt aber nicht die Erstellung neuer Repositories - loggen Sie sich dafür auf dem Server ein.

  • Der Dritte RhodeCode Projekt. Dadurch erhalten Sie ein Bitbucket-ähnliches Web-Frontend für Mercurial, in dem Sie Benutzer und ihre Zugriffsrechte konfigurieren können. Es unterstützt die LDAP-Authentifizierung, sodass Sie es in Ihre vorhandene Unix-Benutzerdatenbank einbinden können.

Siehe die Seite zum Publizieren von Repositories für mehr Informationen.


1
2017-12-24 17:12





SCM-Manager könnte perfekt für Ihre Bedürfnisse sein:

Der einfachste Weg, Ihre Git-, Mercurial- und Subversion-Repositorys über http zu teilen und zu verwalten.

  • Sehr einfache Installation
  • Konfigurationsdateien müssen nicht gehackt werden, der SCM-Manager ist über das Web-Interface vollständig konfigurierbar
  • Es ist kein Apache und keine Datenbankinstallation erforderlich
  • Zentrales Benutzer-, Gruppen- und Berechtigungsmanagement
  • Unterstützung für Git, Mercurial und Subversion
  • Vollständige RESTFul Web Service API (JSON und XML)
  • Rich Benutzeroberfläche
  • Einfache Plugin-API
  • Nützliche Plugins verfügbar (zB Ldap-, ActiveDirectory-, PAM-Authentication)

1
2018-02-08 07:01





RhodeCode ist ein Open-Source-Repository-Browser / Management-Tool mit einem integrierten Push / Pull-Server, LDAP / AD, Berechtigungssystem und Volltextsuche.

Sie können es hier leben sehen: http://demo.rhodecode.org/


0
2018-06-09 11:21