Ich habe mich jetzt wirklich lang darum gedrückt, mich nie getraut und irgendwie immer gewusst: Da musst du mal ran. Das Update von Gitlab. Immerhin war ich bei Version 2.4.1 während die stable mittlerweile bei 2.7 ist.

Eigentlich ist es ganz einfach und im Wiki auf github gibt es auch eine Anleitung wie es zu bewerkstelligen ist. Nur muss man ein paar Dinge beachten, wenn man es auf einem Uberspace hostet.

Wer derAnleitung von Alexander gefolgt ist, der sollte zunächst einmal ein Backup seiner Installation machen. Zum Beispiel folgendermaßen:

mv -R ~/gitlab ~/gitlab.bak

Nun nehmen wir uns die Anleitung von gitlab vor und dort steht, wir sollen den stable-Branch clonen. Das erledigt man einfach mit folgendem Befehl:

git clone -b stable git://github.com/gitlabhq/gitlabhq.git gitlab

Ab jetzt haben wir den großen Vorteil, dass ein Update mit git pull origin staple  erledigen können, anstatt erst ein Zip zu laden, zu entpacken usw…

Jetzt werden wieder die config-Dateien angepasst, wie man es in der Anleitung von Alexander gelesen hat. Wobei zu beachten ist, dass sich das Format der gitlab.yml ein wenig verändert hat. Anzupassen ist aber weiterhin nur der Abschnitt git_host:

git_host:
 system: gitolite
 admin_uri: <uberspacename>@localhost:gitolite-admin
 base_path: /home/<uberspacename>/repositories/
 host: <uberspacename>.<uberspacehost>.uberspace.de # Oder die Domain auf der es später laufen wird. Gibt an, wie die Clone-Adresse später gerendert wird.
 git_user: <uberspacename>
 upload_pack: true
 receive_pack: true
 # port: 22

Da wir gerade faktisch eine Neuinstallation gemacht haben, müssen wir auch noch einmal die Abhängigkeiten installieren (zumindest schadet es nicht…)

bundle install --without development test

Bevor wir nun zur Initialisierung kommen (bzw. besser der Migration) müssen wir die Datei config/initializers/4_resque_queues.rb anpassen (war vorher die Datei config/initializers/gitlabhq/30_resque_queues.rb ), dort tragen wir vor der Zeile die enthalten ist folgendes ein

Resque.redis = Redis.new(:path => "/home/<euer uberspace name>/.redis/sock")

Eine weiter Anpassung muss noch gemacht werden, nämlich in der Datei lib/post-recieve-hook: Hier, wie bei Alexander beschrieben, das redis-cli durch /home/<euer uberspace name>/.toast/armed/bin/redis-cli -s /home/<euer uberspace name>/.redis/sock ersetzen.

Jetzt endlich kann die Migration stattfinden:

bundle exec rake db:migrate RAILS_ENV=production

Danach den Resque Worker und den thin neustarren und gut ist.