2009-08-19 8 views
2

Ich habe Gitosis installiert, aber ich habe seltsame Sache, wenn ich mit Repos arbeite. Ich habe In ConfigGitosis und Git Klon Problem

[gitosis] 

[group gitosis-admin] 
writable = gitosis-admin 
members = [email protected] [email protected] 

[group prj1] 
writable = prj1 
members = [email protected] 

und in/home/git/Repositories habe ich Verzeichnis prj1.git mit leerer git Repo erstellt.

i mit gitosis-admin von Server und Laptop ohne Probleme arbeiten können, aber wenn ich auf git clone PRJ1 auf meinem Laptop versuche ich

$ git clone [email protected]:prj1.git 
Initialized empty Git repository in /Users/alec/temp/prj1/.git/ 
fatal: no matching remote head 

ok zu sehen, lässt Push PRJ1 von Laptop Server:

$ git push origin master:refs/heads/master 
ERROR:gitosis.serve.main:Repository read access denied 
fatal: The remote end hung up unexpectedly 

Was ist los?

Antwort

5

Würde das Folgende, auf Ihrem Laptop, dieses Problem lösen?
Statt eines git clone: ​​

mkdir prj1 
    cd prj1 
    git init 
    touch README 
    git add . 
    git commit -m "Added blank readme" 
    git remote add origin [email protected]:prj1.git 
    git push origin master 

ebneter fügt im Kommentar:

You might mention that the reason this works is that you can't clone an empty repo.
(As my users regularly discover...

Und das erinnert die OP Frage:

... and in /home/git/repositories I have created directory prj1.git with empty git repo

, die genau dort nicht ideal ist.
Diese SO question erwähnt die Ausgabe eines leeren Repo-Klonen:

In other words, don't attempt to clone the empty repo, but rather after creating it, push to it a simple repo containing one innocuous file. Then it is no longer empty and can be cloned.


Seitdem Chris Johnsen Kommentare:

Any Git later than 1.6.2

(so tatsächlich seit März 2009)

can “clone” empty repositories.
(scare quotes because it really just amounts normal initialization plus setting up a remote, and creating a tracking configuration for the presumed, eventual master branch).

+1

das gleiche Ergebnis $ git push origin master ERROR:. Gitosis.serve.main: Repository Lesezugriff verweigert fatal: Die Remote-Ende aufgelegt unerwartet –

+0

huh ... ich entfernte entfernt und fügte dann zurück - es funktioniert jetzt :) Vielen Dank! –

+0

@Tim: Danke für die Bearbeitung. Das habe ich vermisst. – VonC

5

Ich hatte das gleiche Problem, das ev. Bestand en nach dem Befolgen der Schritte in Antwort 1.

sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update 

löste es für mich. Scheinbar ältere Versionen von setuptools können den Post-Update-Hook nicht ausführbar machen. Siehe this page.

1

ich in die gleiche Nachricht lief, nachdem ich in ein neuen Repository schieben will:

git push -u origin master 
ERROR:gitosis.serve.main:Repository read access denied 
fatal: The remote end hung up unexpectedly 

Der Grund war, dass ich 2 gleiche ssh pub-Schlüssel hatte (gleichen Schlüssel, andere Namen) in gitosis- admin/keydir.

Nach einem sie zu löschen, ich neue Repositories schieben kann

+0

Stellen Sie sicher, dass Sie eines von ~ gitosis/.ssh/authorized_keys entfernen – Dror

0

das gleiche Problem hatte, war der Grund, dass ich gitosis.conf auf meinem lokalen bearbeitet und haben es nicht an den Server zu begehen.

0

In meinem Fall wählte SSH-Client den falschen privaten Schlüssel von ~/.ssh.

[gitosis] loglevel = DEBUG geholfen zu sehen, dass der falsche Benutzer angemeldet wurde