diff options
author | Ismo Haataja <ismo.haataja@digia.com> | 2013-04-23 10:53:21 +0300 |
---|---|---|
committer | Ismo Haataja <ismo.haataja@digia.com> | 2013-06-28 13:54:19 +0200 |
commit | 42d1d7d1aabd0dcfd0a0439c57c4427e5790136e (patch) | |
tree | a0e84c7937e08df79acaa83b74f4d29486a9a04d /gerrit-common/src/main/java/com/google/gerrit/common/data/TopicManageService.java | |
parent | bbce9970221e25f20160dd2c842841988abcf14b (diff) |
Fix failing staging-approve by abandoning certain changes.
Sometimes build refs contain changes not being in INTEGRATING state
and it causes gerrit staging-approve command to fail. This happens
when a merge commit is in build and any of the individual commits
belonging to a merge commit is also separately pushed to gerrit.
Technically what happens is that during staging-approve command, all
change-id field values are read from git commit log. This change-id
is then used to query database and check the status of the change in
destination branch. Usually no record is found for individual commits
belonging to a merge commit because 'git push' command has created
change-id only for merge commit. But if somebody has separately pushed
same individual change to destination branch, a new record is created
to database. Then staging-approve logic finds it and because a change
is not in INTEGRATING state, it is handled as an error.
This patch changes the behavior so that any open change not in state
INTEGRATING is set to state ABANDONED. Comment about this is saved and
email is always sent so people involved get informed and can react
if needed.
Task-number: QTQAINFRA-509
Change-Id: I30a56348e80b8d085e5d315d57c8d5fc8580de81
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Janne Anttila <janne.anttila@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Diffstat (limited to 'gerrit-common/src/main/java/com/google/gerrit/common/data/TopicManageService.java')
0 files changed, 0 insertions, 0 deletions