Redmine + Gitolite – Problem mit Repository-Berechtigungen und mehr

Lesezeit: 4 Minuten

Redmine Gitolite Problem mit Repository Berechtigungen und mehr
Daniel Ribeiro

Ich habe eine Redmine-Installation auf demselben Server wie meine Gitolite-Repositories.

Um mein Repository mit meiner Redmine-Instanz zu verknüpfen, habe ich das Repo mit dem folgenden Befehl lokal geklont:

git clone --bare --local /home/git/repositories/my-repo.git

So wie ich das Repo erfolgreich auf dem Server geklont habe, kann ich wie erwartet durch das Repo auf Redmine navigieren.

Die Sache ist, sobald ich das tue, kann ich nichts mehr in das Remote-Repo auf meinem lokalen Rechner schieben.

Wenn ich es versuche

git push

Ich erhalte folgende Fehler:

Counting objects: 15, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (8/8), 695 bytes, done.
Total 8 (delta 6), reused 0 (delta 0)
fatal: loose object 455f30c5243ec5b5cc698b1e51bdfb23ee6c1b22 (stored in     ./objects/45/5f30c5243ec5b5cc698b1e51bdfb23ee6c1b22) is corrupt
error: unpack failed: unpack-objects abnormal exit
To [email protected]:my-repo.git
 ! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to '[email protected]:my-repo.git'

Irgendwelche Ideen dazu?

BEARBEITEN #1

Die Gitolite-Protokolle zeigen Folgendes:

2012-10-22.10:59:59     13121   ssh     ARGV=drgomesp   SOC=git-receive-pack 'my-repo.git'   FROM=187.65.248.7
2012-10-22.11:00:00     13121           access(my-repo, drgomesp, W, 'any'),-> refs/.*
2012-10-22.11:00:00     13121           trigger,Writable,access_1,ACCESS_1,my-repo,drgomesp,W,any,refs/.*
2012-10-22.11:00:00     13121   pre_git my-repo      drgomesp        W       any     -> refs/.*
2012-10-22.11:00:00     13121           system,git,shell,-c,git-receive-pack '/home/git/repositories/my-repo.git'
2012-10-22.11:00:00     13121   END

Redmine Gitolite Problem mit Repository Berechtigungen und mehr
Daniel Ribeiro

Ich habe es geschafft, es zum Laufen zu bringen, indem ich das ursprüngliche Repo auf Redmine verwies, da beide auf demselben Computer sitzen, indem ich einige einfache Schritte befolgte:

  1. Fügen Sie ein Repository auf Redmine mit dem ursprünglichen Repo des Repositorys von gitolite hinzu. Der Pfad wäre so etwas wie /home/git/repositories/my-repo.git.

  2. Anfänglich hat Redmine keine Berechtigungen zum Lesen des Repositorys, also beheben wir das Problem, indem wir den Redmine-Benutzer hinzufügen (normalerweise www-data oder apache) zum git Gruppe durch Laufen usermod -a -G git www-data (Achten Sie auf die Konfiguration Ihres Servers, da diese ein wenig anders sein kann, je nachdem, wie Sie gitolite konfiguriert haben.

  3. Ändere das UMASK Eigentum auf der .gitolite.rc Datei, vom Standardwert von 0077 zu 0022, das Äquivalent von 755 (rwxr-xr-x) für Verzeichnisse u 644 (rw-r--r--) für Dateien.

  4. Für vorhandene Repos müssen Sie möglicherweise eine ausführen chmod -R g+rX

Wenn Sie immer noch die Berechtigungsprobleme mit Redmine haben, öffnet sich a 404Anstelle des Repos auf der Registerkarte „Repository“ müssen Sie möglicherweise a ausführen chmod -R g+rX im Großen und Ganzen /home/git/repositories, um sicherzustellen, dass der Redmine-Benutzer die Repos vollständig lesen kann.

  • Danke für den Tipp. EIN setfacl -R -m git:rX ~git/repositories/ hat es mir angetan

    – Pierre de LESPINAY

    04.09.14 um 15:52 Uhr


  • Ich bekomme stderr: fatal: Not a git repository: ‘/home/git/repositories/myrepo.git’ auf einem bestehenden Repo mit darin enthaltenen Commits. Irgendeine Idee, warum das passieren könnte? Ausführen von Redmine 3.1. Auf der Webseite wird ein 404 angezeigt.

    – Gérard van den Bosch

    18. September 15 um 12:24 Uhr


1642814885 505 Redmine Gitolite Problem mit Repository Berechtigungen und mehr
VonC

Wenn ein git repack remote/origin/master das Problem nicht behebt, überprüfen Sie Ihre umask (umask 0002), um Probleme mit Schreibberechtigungen zu vermeiden, wie in „git: can’t push (unpacker error)“ erwähnt.

Abgesehen davon fasst „Unpacker error Git-pushing from bare repo to staging server“ alle anderen zu prüfenden Punkte zusammen.

  • Der Repack-Befehl behebt das Problem nicht. Über die umask wird nichts angezeigt. Ich bin mir nicht sicher, ob dies ein Berechtigungsproblem ist. Irgendwelche Alternativen?

    – Daniel Ribeiro

    21. Oktober ’12 um 18:00 Uhr


  • @DanielRibeiro-Einstellung umask 0002 auf dem Server wird dennoch empfohlen, nur um zu sehen, ob dies einen Einfluss auf das aktuelle Problem hat. Die meisten Alternativen, die ich kenne, sind in den beiden SO-Fragen aufgeführt, auf die ich in der Antwort verweise.

    – VonC

    21. Oktober 12 um 18:19 Uhr

  • Und wie mache ich das? Einfach den Befehl auf dem Server ausführen?

    – Daniel Ribeiro

    21. Oktober 12 um 18:29 Uhr

  • Server ist ok, wie 0002 und wie es sein sollte. Irgendwelche Alternativen?

    – Daniel Ribeiro

    21. Oktober 12 um 18:59 Uhr


  • Alles scheint gut zu funktionieren, sobald ich Apache auf das Repository chown, damit Redmine es lesen kann. Dann kann ich nicht mehr von lokal pushen. Das scheint seltsam …

    – Daniel Ribeiro

    21. Oktober 12 um 21:07 Uhr

.

583440cookie-checkRedmine + Gitolite – Problem mit Repository-Berechtigungen und mehr

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy