Es scheint so zu sein als würde Git Extensions seit einiger Zeit Git Hooks verstehen. Was zur Folge hat, dass man mit Git Extensions auch für Qt Gerrit Commits erzeugen kann.
(Meine bisherige Version war zumindest so alt, dass sie es nicht konnte...)
Gerrit Codereview unterstützt es auch direkt, da muss ich aber erst noch rausfinden, wie man da das jeweilige Gerrit einrichtet.
Dienstag, 30. Oktober 2012
Montag, 29. Oktober 2012
Qt, Git, Gerrit, ssh und Proxy. Teil 3. (Hooks)
Hat man das alles ans Laufen gebracht, funktioniert übrigens auch:
>scp -p BENUTZER@codereview.qt-project.org:hooks/commit-msg .git/hooksDamit bekommt man dann die Git Hooks in sein eigenes Repository, die zwingend notwendig sind, damit die Commits eine eindeutige Id bekommen. Sonst muss man die von Hand runterladen und in den richtigen Ordner kopieren.
Qt, Git, Gerrit, ssh und Proxy. Teil 2. (Push)
Kommt man dann mit:
Steht dort nicht der Port 443, wahrscheinlich aber sogar die URL codereview.qt-project.org, dann ändert man es so um:
Auch hier wieder Private/Public Schlüsselpaar muss erzeugt seien und Gerrit bekannt gemacht werden.
(BENUTZER: Gerrit Benutzername; MODUL: das zum Repository gehörende Qt Modul.)
>git push BENUTZER@codereview.qt-project.org:29418/qt/MODUL HEAD:ref/for/masteroder üblicher (sofern man sich an die Anleitung gehalten hat):
>git push gerrit HEAD:ref/for/masternicht durch und erhält folgenden Fehler:
ssh: connect to host codereview.qt-project.org port 22: Bad file numberSo sollte es testweise hiermit gehen:
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
>git push ssh://BENUTZER@ssh.qt-project.org:443/qt/MODUL HEAD:ref/for/master
Hängt man nämlich hinter einem Proxy, so darf man Port 29418 nicht benutzen und der Shortcut gerrit wird in der Regel mit diesem Port angelegt. Hier funktioniert es nur über den Port 443. Kommt man jetzt also durch, sollte man sich mit:
>git config --listmal ansehen was dort unter remote.gerrit.url eingetragen ist.
Steht dort nicht der Port 443, wahrscheinlich aber sogar die URL codereview.qt-project.org, dann ändert man es so um:
>git config remote.gerrit.url ssh://BENUTZER@ssh.qt-project.org:443/qt/MODULMit:
>git push gerrit HEAD:ref/for/mastersollte man dann endlich durchkommen.
Auch hier wieder Private/Public Schlüsselpaar muss erzeugt seien und Gerrit bekannt gemacht werden.
(BENUTZER: Gerrit Benutzername; MODUL: das zum Repository gehörende Qt Modul.)
Qt, Git, Gerrit, ssh und Proxy. (SSH Test)
Die testweise Verbindung mit dem Qt Codereview Gerrit mit ssh durch einen Proxy funktioniert so:
(BENUTZER: der Benutzername für Gerrit.)
ssh -p 443 BENUTZER@ssh.qt-project.orgDann, sofern man schön seinen Public/Private Schlüsselpaar angelegt hat, wird man nach seinem Passwort gefragt und der Server meldet:
**** Welcome to Gerrit Code Review ****Hi BENUTZER, you have successfully connected over SSH.
Unfortunately, interactive shells are disabled.
To clone a hosted Git repository, use:
git clone ssh://egonuel@codereview.qt-project.org:29418/REPOSITORY_NAME.gitMan kommt also rein.
(BENUTZER: der Benutzername für Gerrit.)
Freitag, 26. Oktober 2012
Git und Proxy unter Windows.
Um Git (msysgit) unter Windows durch einen Proxy durchzubohren, erstellt man im Git Unterordner bin eine Textdatei mit dem Inhalt:
Dann führt man in der Git Bash Shell im Git Hauptordner folgenden Befehl aus:
Mit
und ersetzt dort PROXYADDRESS und PROXYPORT gegen den zu durchbohrenden Proxy und speichert die Datei als bat ab, beispielsweise proxy.bat.@echo offset CONNECT=connect.exe
set PROXY=PROXYADDRESS:PROXYPORT
"%CONNECT%" -H %PROXY% %*
Dann führt man in der Git Bash Shell im Git Hauptordner folgenden Befehl aus:
git config --global core.gitproxy proxy.batDas wars.
Mit
git ls-remote git:://ADDRESS/REPO.gitkann man dann testen ob die Verbindung durchgeht, wobei natürlich ADDRESS und REPO durch das gewünschte Repository ersetzt werden müssen.
Abonnieren
Posts (Atom)