Schlagwort-Archive: git

[git] clone warning: remote HEAD refers to nonexistent ref, unable to checkout.

Beim versuch ein git zu klonen trat der folgende Fehler auf:

warning: remote HEAD refers to nonexistent ref, unable to checkout.

Die Lösung ist ganz simpel, es existiert kein master branch. Das Problem tritt meistens bei neu erstellten Repositorys auf.

Master Branch erstellen

Um den master Branch bei gerrit zu erstellen bin, ich wie folgt vorgegangen.

Nach dem klonen in das Repository Verzeichniss gehen (cd Repository) und Dateien bearbeiten, hinzufügen etc.

Mit git add . und git comment -m „Anpassungen xzy“ Dateien hinzufügen.

Zum Schluss die Dateien auf den gerrit übertragen und den Masterbranch erstellen git push ssh://hermann@git.itbasic.de:29418/projektx master.

[gerrit] kein push/pull möglich

In der Gerrit Version 2.3.1 kann es vorkommen das sich der interne sshd Dienst aufhängt, dann kann nicht mehr auf die Repositorys zugegriffen werden. Das Problem scheint aufzutreten, wenn ein oder mehrere Jenkins Server auf das gerrit zugreifen.
Greift ein Benutzer auf das gerrit zu, kommen in den sshd logs die login, aktion und logout Meldungen. Meldet sich jedoch der im jenkins hinterlegte Benutzer an, gibt es hauptsächlich nur login Meldungen. Irgendwann folgt dann die Meldung das die Verbindung gekilled wurde.
Über netstat -an | grep 29418 sieht man auch, das die Jenkins Server viele Verbindungen öffnen und nicht wieder schließen.

In der error Log Datei kommt dann folgende Meldung:

[2012-09-25 01:11:01,557] WARN org.apache.sshd.server.session.ServerSession : Exception caught
java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:218)
at sun.nio.ch.IOUtil.read(IOUtil.java:191)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:359)
at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:214)
at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:42)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:673)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:646)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:635)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:67)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1079)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
[2012-09-25 01:16:01,279] WARN org.apache.sshd.server.session.ServerSession : Exception caught
java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:218)
at sun.nio.ch.IOUtil.read(IOUtil.java:191)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:359)
at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:214)
at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:42)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:673)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:646)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:635)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:67)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1079)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

Ein Update auf 2.4.1 behebt das Problem.

Kleine Howto für ein gerrit update:http://www.itbasic.de/gerrit-update/

Permission denied beim zuweisen von Benutzerechten im gerrit

In einem Gerrit(git) Projekt sollten Rechte zugewiesen werden, jedoch kam beim speichern der Rechte folgende Fehlermeldung:

Application Error
Server Error
Permission denied

Leider gab es keine Fehlermeldung in der Log Datei, was die Fehlersuche ein wenig erschwerte.
Es stelle sich dann heraus das die Datei HEAD im eigentlichen git Repository nicht dem Benutzer gehörte, unter dem das gerrit lief.
Nachdem die Benutzerrechte angepasst wurden, konnten die Rechte gespeichert werden.

Warum die Datei dem Benutzer gehörte weiß ich leider nicht, angelegt wurde das Repository über die gerrit Weboberfläche.

Gerrit update

Gerrit2 ist eine Möglichkeit um Git Repositorys zu verwalten.

Um ein Update durchzuführen läd man die aktuelle Version hier runter.

Im Anschluss reicht ein

java -jar gerrit-2.3.war init -d Seitenpfad

um das update durchzuführen.

Während der Aktualisierung werden die bereits hinterlegten Einstellungen abgefragt und können bei Bedarf geändert werden.

Steht im übrigen auch in den Release Notes.