Intelligente Lösungen
in neuer Dimension

Probleme mit Gitbucket-Benutzern - Fehlermeldung bei GIT PUSH

Vorbereitung

  • Sicherstellen: JDK-8 ist verfügbar (java -version)
  • Gitbucket-Repo clonen: git clone https://github.com/gitbucket/gitbucket
  • In den Clone wechseln: cd gitbucket
  • Version 4.7.1 auschecken: git checkout -b v4.7.1 4.7.1
  • Version 4.7.1 bauen: ./sbt.sh executable
  • Gitbucket starten: java -jar target/executable/gitbucket.war
  • Gitbucket im Browser öffnen: Gitbucket@localhost
    • Oben links: 4.7.1
    • Linke Leiste: Keinerlei repositories

Ablauf

Test mit 4.7.1

  • Anmelden (Sign in): root/root
  • Oben rechts: System administration – User Management
  • New user: u/u/u/u@dummy.de/Administrator – Create User
  • Abmelden (Sign out)
  • Anmelden (Sign in): u/u
  • Oben rechts: System administration – User Management
    • root – Edit – Disable – Update User
    • New Group: d
      • Members: u – Add – Manager
      • Create Group
    • New Group: m
      • Members: u – Add – Manager
      • Create Group
    • New Group: p
      • Members: u – Add – Manager
      • Create Group
  • Oben rechts: New repository
    • p/pwb
    • private
    • Initialize … with a README
    • Create repository
  • Oben rechts: System administration – User Management
    • New user: s/s/s/s@dummy.de/Normal – Create User
  • Oben rechts: New repository
    • d/pa
    • private
    • Initialize … with a README
    • Create repository
  • Oben recht: Gitbucket – d/pa – Settings
    • Danger Zone
      • Transfer Ownership – p – Transfer
  • Oben rechts: New repository
    • p/pl
    • private
    • Initialize … with a README
    • Create repository
  • Oben rechts: System administration – User Management
    • New user: n/n/n/n@dummy.de/Normal – Create User
  • Oben rechts: New repository
    • d/na
    • private
    • Initialize … with a README
    • Create repository
  • Oben rechts: System administration – User Management
    • d – Edit
      • Members – s – Add
      • Members – n – Add
      • Update Group
    • m – Edit
      • Members – s – Add
      • Members – n – Add
      • Update Group
    • p – Edit
      • Members – s – Add
      • Members – n – Add
      • Update Group
  • Sicherung: issue-1363.01.tar.xz
    • tar --exclude ".gitbucket/tmp/*" -cvf - .gitbucket|xz -c9 >git/forked/gitbucket/issue-1363.01.tar.xz
    • Besser wär’s natürlich, wenn gitbucket gestoppt wäre…
  • Clone-Tests
    • for u in u n s; do git clone http://${u}@localhost:8080/git/d/na.git ${u}-na; done
    • for u in u n s; do git clone http://${u}@localhost:8080/git/p/pa.git ${u}-pa; done
    • for u in u n s; do git clone http://${u}@localhost:8080/git/p/pl.git ${u}-pl; done
  • Repos verändern: for u in u n s; do for r in na pa pl; do ( cd ${u}-${r}; date>"${u}-${r}.txt"; git add .; git commit -m "${u}-${r}" .); done; done
  • Push-Tests
    • Benutzer: u, Repo: na
      • cd u-na
      • git push –> klappt
      • cd ..
    • Benutzer: u, Repo: pa
      • cd u-pa
      • git push –> klappt
      • cd ..
    • Benutzer: u, Repo: pl
      • cd u-pl
      • git push –> klappt
      • cd ..
    • Benutzer: n, Repo: na
      • cd n-na
      • git push –> klappt nicht
      • git pull --rebase
      • git push –> klappt
      • cd ..
    • Benutzer: n, Repo: pa
      • cd n-pa
      • git pull --rebase
      • git push –> klappt (hätte eigentlich nicht klappen sollen)
      • cd ..
    • Benutzer: n, Repo: pl
      • cd n-pl
      • git pull --rebase
      • git push –> klappt (hätte eigentlich nicht klappen sollen)
      • cd ..
  • Sicherung: issue-1363.02.tar.xz
    • Gitbucket gestoppt
    • tar --exclude ".gitbucket/tmp/*" -cvf - .gitbucket|xz -c9 >git/forked/gitbucket/issue-1363.02.tar.xz

Test mit 4.6

  • Anmelden (Sign in): root/root
  • Oben rechts: System administration – User Management
  • New user: u/u/u/u@dummy.de/Administrator – Create User
  • Abmelden (Sign out)
  • Anmelden (Sign in): u/u
  • Oben rechts: System administration – User Management
    • New Group: d
      • Members: u – Add – Manager
      • Create Group
    • New Group: m
      • Members: u – Add – Manager
      • Create Group
    • New Group: p
      • Members: u – Add – Manager
      • Create Group
  • Oben rechts: New repository
    • p/pwb
    • private
    • Initialize … with a README
    • Create repository
  • Oben rechts: System administration – User Management
    • New user: s/s/s/s@dummy.de/Normal – Create User
  • Oben rechts: New repository
    • d/pa
    • private
    • Initialize … with a README
    • Create repository
  • Oben recht: Gitbucket – d/pa – Settings
    • Danger Zone
      • Transfer Ownership – p – Transfer
  • Oben rechts: New repository
    • p/pl
    • private
    • Initialize … with a README
    • Create repository
  • Oben rechts: System administration – User Management
    • New user: n/n/n/n@dummy.de/Normal – Create User
  • Oben rechts: New repository
    • d/na
    • private
    • Initialize … with a README
    • Create repository
  • Oben rechts: System administration – User Management
    • d – Edit
      • Members – s – Add
      • Members – n – Add
      • Update Group
    • m – Edit
      • Members – s – Add
      • Members – n – Add
      • Update Group
    • p – Edit
      • Members – s – Add
      • Members – n – Add
      • Update Group
  • Sicherung: issue-1363.03.tar.xz
    • Gitbucket stoppen
    • tar --exclude ".gitbucket/tmp/*" -cvf - .gitbucket|xz -c9 >git/forked/gitbucket/issue-1363.03.tar.xz
    • Gitbucket starten
  • Clone-Tests
    • for u in u n s; do git clone http://${u}@localhost:8080/git/d/na.git ${u}-na; done
    • for u in u n s; do git clone http://${u}@localhost:8080/git/p/pa.git ${u}-pa; done
    • for u in u n s; do git clone http://${u}@localhost:8080/git/p/pl.git ${u}-pl; done
  • Repos verändern: for u in u n s; do for r in na pa pl; do ( cd ${u}-${r}; date>"${u}-${r}.txt"; git add .; git commit -m "${u}-${r}" .); done; done
  • Push-Tests
    • Benutzer: u, Repo: na
      • cd u-na
      • git push –> klappt
      • cd ..
    • Benutzer: u, Repo: pa
      • cd u-pa
      • git push –> klappt
      • cd ..
    • Benutzer: u, Repo: pl
      • cd u-pl
      • git push –> klappt
      • cd ..
    • Benutzer: n, Repo: na
      • cd n-na
      • git push –> klappt nicht
      • git pull --rebase
      • git push –> klappt
      • cd ..
    • Benutzer: n, Repo: pa
      • cd n-pa
      • git pull --rebase
      • git push –> klappt (hätte eigentlich nicht klappen sollen)
      • cd ..
    • Benutzer: n, Repo: pl
      • cd n-pl
      • git pull --rebase
      • git push –> klappt (hätte eigentlich nicht klappen sollen)
      • cd ..
  • Sicherung: issue-1363.04.tar.xz
    • Gitbucket gestoppt
    • tar --exclude ".gitbucket/tmp/*" -cvf - .gitbucket|xz -c9 >git/forked/gitbucket/issue-1363.04.tar.xz
  • Aktualisierung auf 4.7.1
  • Gitbucket gestartet
  • Repos verändern: for u in u n s; do for r in na pa pl; do ( cd ${u}-${r}; date>"${u}-${r}-471.txt"; git add .; git commit -m "${u}-${r}" .); done; done
  • Push-Tests
    • Benutzer: u, Repo: na
      • cd u-na
      • git pull --rebase –> klappt
      • git push –> klappt
      • cd ..
    • Benutzer: u, Repo: pa
      • cd u-pa
      • git pull --rebase –> klappt
      • git push –> klappt
      • cd ..
    • Benutzer: u, Repo: pl
      • cd u-pl
      • git pull --rebase –> klappt
      • git push –> klappt
      • cd ..
    • Benutzer: n, Repo: na
      • cd n-na
      • git pull --rebase –> klappt
      • git push –> klappt
      • cd ..
    • Benutzer: n, Repo: pa
      • cd n-pa
      • git pull --rebase –> klappt
      • git push –> klappt
      • cd ..
    • Benutzer: n, Repo: pl
      • cd n-pl
      • git pull --rebase –> klappt
      • git push –> klappt (hätte eigentlich nicht klappen sollen)
      • cd ..

Nachbereitung

  • Gitbucket-Clone löschen: rm -rf gitbucket

Ausgaben

Sicherstellen: JDK-8 ist verfügbar
1
2
3
4
uli@ulinuc:~/tmp$ java -version
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b25)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
Gitbucket-Repo clonen
1
2
3
4
5
6
7
uli@ulinuc:~/tmp$ git clone https://github.com/gitbucket/gitbucket
Klone nach 'gitbucket' ...
remote: Counting objects: 33977, done.
remote: Compressing objects: 100% (74/74), done.
remote: Total 33977 (delta 28), reused 0 (delta 0), pack-reused 33891
Empfange Objekte: 100% (33977/33977), 26.16 MiB | 1.56 MiB/s, Fertig.
Löse Unterschiede auf: 100% (17621/17621), Fertig.
Version 4.7.1 auschecken
1
2
uli@ulinuc:~/tmp/gitbucket$ git checkout -b v4.7.1 4.7.1
Zu neuem Branch 'v4.7,1' gewechselt
Version 4.7.1 bauen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Listening for transport dt_socket at address: 5005
[info] Loading global plugins from /home/uli/.sbt/0.13/plugins
...
[info] Resolving jline#jline;2.12.1 ...
[info] Resolving org.eclipse.jetty#jetty-continuation;9.3.9.v20160517 ...
[info] Done updating.
[info] Compiling 231 Scala sources and 3 Java sources to /home/uli/tmp/gitbucket/target/scala-2.11/classes...
[warn] there were two feature warnings; re-run with -feature for details
[warn] one warning found
[info] Packaging /home/uli/tmp/gitbucket/target/scala-2.11/gitbucket_2.11-4.7.1.jar ...
[info] Done packaging.
[info] Packaging /home/uli/tmp/gitbucket/target/scala-2.11/gitbucket_2.11-4.7.1.war ...
[info] Done packaging.
[info] building executable webapp in /home/uli/tmp/gitbucket/target/executable
[info] built executable webapp /home/uli/tmp/gitbucket/target/executable/gitbucket.war
[success] Total time: 113 s, completed 03.12.2016 07:22:01
Gitbucket starten
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
uli@ulinuc:~/tmp/gitbucket$ java -jar target/executable/gitbucket.war
2016-12-03 07:30:45.725:INFO::main: Logging initialized @117ms
2016-12-03 07:30:45.880:INFO:oejs.Server:main: jetty-9.3.z-SNAPSHOT
2016-12-03 07:30:46.979:INFO:oejw.StandardDescriptorProcessor:main: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
SLF4J: Class path contains multiple SLF4J bindings.
...
07:30:48.923 [main] INFO  o.quartz.impl.DirectSchedulerFactory - Quartz scheduler 'QuartzScheduler~job
07:30:48.923 [main] INFO  o.quartz.impl.DirectSchedulerFactory - Quartz scheduler version: 2.2.1
07:30:48.924 [main] INFO  org.quartz.core.QuartzScheduler - Scheduler QuartzScheduler~job_$_job started.
[INFO] [12/03/2016 07:30:48.933] [main] [[QuartzScheduler~job]] Setting up scheduled job 'Daily', with 'com.typesafe.akka.extension.quartz.QuartzCronSchedule@4fe875be'
07:30:48.950 [main] INFO  o.scalatra.servlet.ScalatraListener - The cycle class name from the config: ScalatraBootstrap
07:30:48.953 [main] INFO  o.scalatra.servlet.ScalatraListener - Initializing life cycle class: ScalatraBootstrap
2016-12-03 07:30:49.587:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@6daf7d37{/,file:///home/uli/.gitbucket/tmp/webapp/,AVAILABLE}{file:/home/uli/tmp/gitbucket/target/executable/gitbucket.war}
2016-12-03 07:30:49.596:INFO:oejs.AbstractConnector:main: Started ServerConnector@2410d378{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
2016-12-03 07:30:49.597:INFO:oejs.Server:main: Started @3993ms

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
uli@ulinuc:/tmp$ for u in u n s; do for r in na pa; do ( cd ${u}-${r}; date>"${u}-${r}.txt"; git add .; git commit -m "${u}-${r}" .); done; done
[master f44998e] u-na
 1 file changed, 1 insertion(+)
 create mode 100644 u-na.txt
[master 12d7f08] u-pa
 1 file changed, 1 insertion(+)
 create mode 100644 u-pa.txt
[master 3311009] n-na
 1 file changed, 1 insertion(+)
 create mode 100644 n-na.txt
[master 696ea6c] n-pa
 1 file changed, 1 insertion(+)
 create mode 100644 n-pa.txt
[master 7748586] s-na
 1 file changed, 1 insertion(+)
 create mode 100644 s-na.txt
[master f572379] s-pa
 1 file changed, 1 insertion(+)
 create mode 100644 s-pa.txt
[master 3a78afa] u-pl
 1 file changed, 1 insertion(+)
 create mode 100644 u-pl.txt
[master 9e7c466] n-pl
 1 file changed, 1 insertion(+)
 create mode 100644 n-pl.txt
[master be4155f] s-pl
 1 file changed, 1 insertion(+)
 create mode 100644 s-pl.txt

Inhaltsverzeichnis für Artikel erzeugen

Umstellungen an Octopress

Die für die automatische Erzeugung von Inhaltsverzeichnissen erforderlichen Umstellungen an Octopress stammen von hier:

http://brizzled.clapper.org/blog/2012/02/04/generating-a-table-of-contents-in-octopress/

Einige Variationen habe ich daran aber vorgenommen:

  • Es wird die JQuery-Version von Octopress verwendet
  • Das JQuery-Plugin zur Erzeugung des Inhaltsverzeichnisses wird in “javascripts/libs” eingespielt (… neben JQuery)
  • Das Erscheinungsbild ist übersetzt auf Deutsch (“Inhalt” statt “Table of Contents”)
  • Hintergrundfarbe wie bei der Navigationsleiste

Aktivierung im Artikel

Damit ein Artikel mit einem Inhaltsverzeichnis versehen wird, muß im Artikelkopf die Zeile

include_toc: true

auftauchen. Bei diesem Artikel sieht der Vorspann momentan also ungefähr so aus:

Vorspann mit automatischer Erzeugung des Inhaltsverzeichnisses
1
2
3
4
5
6
7
8
9
10
11
---
layout: post
title: "Inhaltsverzeichnis für Artikel erzeugen"
date: 2013-05-02 18:00
updated: 2013-05-04 10:00
comments: false
author: Uli Heller
include_toc: true
categories: 
- Octopress
---

Aktualisieren der Web-Seite

Unsere auf Octopress basierende Web-Seite wird üblicherweise ja in Form von einer lokalen Kopie modifiziert und dann mittels

gesichtet. Wer die notwendigen Berechtigungen hat, kann danach die Web-Seite auf unserem offiziellen Web-Server auf die modifizierte Version aktualisieren.

In diesem Artikel steht, wie das funktioniert.

Von Github zu Subversion

Den Prototypen unserer Webseite habe ich erstmal von “unterwegs” auf GitHub angelegt. Dieser Artikel beschreibt, wie die Quelltexte inklusive Versionshistorie umgezogen werden können in ein privates Subversion-Repository.