Skip to content

WIP: Raise, and print git output on git push/pull fail

Michael Kozono requested to merge mk-surface-git-errors into master

Silent git errors have allowed me to bundle rake sync and bundle rake release[...] without knowing that github master has been out-of-date, and new tags haven't been pushed to github. (I needed to ssh-add my github key).

Also it looks like dev and gitlab can get out of sync in such a way as to produce an error (see below).

Sync task before (silent errors)

$ be rake sync
[2017-11-30 10:12:50 -0800] [/Users/monozok/Developer/release-tools] git clone --quiet --depth=1 --origin dev git@dev.gitlab.org:gitlab/gitlab-ee.git /tmp/gitlab-sync-1512065570
[2017-11-30 10:13:15 -0800] [/private/tmp/gitlab-sync-1512065570] git remote add gitlab git@gitlab.com:gitlab-org/gitlab-ee.git
[2017-11-30 10:13:15 -0800] [/private/tmp/gitlab-sync-1512065570] git pull --quiet --depth=1 dev master
[2017-11-30 10:13:17 -0800] [/private/tmp/gitlab-sync-1512065570] git pull --quiet --depth=1 gitlab master
[2017-11-30 10:13:21 -0800] [/private/tmp/gitlab-sync-1512065570] git push dev master:master
[2017-11-30 10:13:23 -0800] [/private/tmp/gitlab-sync-1512065570] git push gitlab master:master
[2017-11-30 10:13:29 -0800] [/Users/monozok/Developer/release-tools] git clone --quiet --depth=1 --origin dev git@dev.gitlab.org:gitlab/gitlabhq.git /tmp/gitlab-sync-1512065609
[2017-11-30 10:13:44 -0800] [/private/tmp/gitlab-sync-1512065609] git remote add gitlab git@gitlab.com:gitlab-org/gitlab-ce.git
[2017-11-30 10:13:44 -0800] [/private/tmp/gitlab-sync-1512065609] git remote add github git@github.com:gitlabhq/gitlabhq.git
[2017-11-30 10:13:44 -0800] [/private/tmp/gitlab-sync-1512065609] git pull --quiet --depth=1 dev master
[2017-11-30 10:13:46 -0800] [/private/tmp/gitlab-sync-1512065609] git pull --quiet --depth=1 gitlab master
[2017-11-30 10:13:53 -0800] [/private/tmp/gitlab-sync-1512065609] git pull --quiet --depth=1 github master
[2017-11-30 10:13:54 -0800] [/private/tmp/gitlab-sync-1512065609] git push dev master:master
[2017-11-30 10:13:56 -0800] [/private/tmp/gitlab-sync-1512065609] git push gitlab master:master
[2017-11-30 10:14:05 -0800] [/private/tmp/gitlab-sync-1512065609] git push github master:master
[2017-11-30 10:14:05 -0800] [/Users/monozok/Developer/release-tools] git clone --quiet --depth=1 --origin dev git@dev.gitlab.org:gitlab/omnibus-gitlab.git /tmp/gitlab-sync-1512065645
[2017-11-30 10:14:08 -0800] [/private/tmp/gitlab-sync-1512065645] git remote add gitlab git@gitlab.com:gitlab-org/omnibus-gitlab.git
[2017-11-30 10:14:08 -0800] [/private/tmp/gitlab-sync-1512065645] git remote add github git@github.com:gitlabhq/omnibus-gitlab.git
[2017-11-30 10:14:08 -0800] [/private/tmp/gitlab-sync-1512065645] git pull --quiet --depth=1 dev master
[2017-11-30 10:14:10 -0800] [/private/tmp/gitlab-sync-1512065645] git pull --quiet --depth=1 gitlab master
[2017-11-30 10:14:13 -0800] [/private/tmp/gitlab-sync-1512065645] git pull --quiet --depth=1 github master
[2017-11-30 10:14:13 -0800] [/private/tmp/gitlab-sync-1512065645] git push dev master:master
[2017-11-30 10:14:15 -0800] [/private/tmp/gitlab-sync-1512065645] git push gitlab master:master
[2017-11-30 10:14:19 -0800] [/private/tmp/gitlab-sync-1512065645] git push github master:master

Sync task after

$ be rake sync
[2017-12-01 13:24:06 -0800] [/Users/monozok/Developer/release-tools] git clone --quiet --depth=1 --origin dev git@dev.gitlab.org:gitlab/gitlab-ee.git /tmp/gitlab-sync-1512163446
[2017-12-01 13:24:41 -0800] [/private/tmp/gitlab-sync-1512163446] git remote add gitlab git@gitlab.com:gitlab-org/gitlab-ee.git
[2017-12-01 13:24:41 -0800] [/private/tmp/gitlab-sync-1512163446] git pull --quiet --depth=1 dev master
[2017-12-01 13:24:43 -0800] [/private/tmp/gitlab-sync-1512163446] git pull --quiet --depth=1 gitlab master
fatal: refusing to merge unrelated histories
rake aborted!
RemoteRepository::CannotPullError: Failed to pull master from gitlab
/Users/monozok/Developer/release-tools/lib/remote_repository.rb:151:in `pull'
/Users/monozok/Developer/release-tools/lib/remote_repository.rb:159:in `block in pull_from_all_remotes'
/Users/monozok/Developer/release-tools/lib/remote_repository.rb:158:in `each'
/Users/monozok/Developer/release-tools/lib/remote_repository.rb:158:in `pull_from_all_remotes'
/Users/monozok/Developer/release-tools/lib/sync.rb:19:in `sync'
/Users/monozok/Developer/release-tools/lib/sync.rb:11:in `execute'
/Users/monozok/Developer/release-tools/Rakefile:62:in `block in <top (required)>'
Tasks: TOP => sync
(See full trace by running task with --trace)

cc @winh @oswaldo @tiagonbotelho @jameslopez

Closes https://gitlab.com/gitlab-org/release-tools/issues/150

Edited by Michael Kozono

Merge request reports