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