My favorites
▼
|
Sign in
gerrit
Gerrit Code Review
Project Home
Downloads
Wiki
Issues
Source
Export to GitHub
New issue
Search
Search within:
All issues
Open issues
New issues
Issues to verify
for
Advanced search
Search tips
Subscriptions
Issue
1142
attachment: 1142.patch
(2.4 KB)
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
From 2883647c2b52d370042ec18c08fef3daf2543a7c Mon Sep 17 00:00:00 2001
From: Deniz Turkoglu <deniz@spotify.com>
Date: Wed, 14 Dec 2011 19:26:45 +0100
Subject: [PATCH] TOOLS-139 Bogus merge claimed by gerrit
When a change set is pending review, it is considered
merged if it is pushed to another branch bypassing
review process. This patch compares the branch names
and closes the change only if they are aimed at the
same branch.
This updated patch also fixes the state issue after
merging the change.
Change-Id: I3751bc3f33181d987fc0c52ed97b53a13af7044a
---
.../java/com/google/gerrit/server/git/MergeOp.java | 2 +-
.../google/gerrit/server/git/ReceiveCommits.java | 6 +++++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
index fd6f94b..681ac6e 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
@@ -336,7 +336,7 @@ public class MergeOp {
}
for (final Ref r : db.getAllRefs().values()) {
- if (r.getName().startsWith(Constants.R_HEADS)
+ if ((r.getName().startsWith(Constants.R_HEADS) && r.getName().startsWith(destBranch.get()))
|| r.getName().startsWith(Constants.R_TAGS)) {
try {
alreadyAccepted.add(rw.parseCommit(r.getObjectId()));
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java
index 5034a04..5fccc70 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java
@@ -1800,7 +1800,11 @@ public class ReceiveCommits implements PreReceiveHook, PostReceiveHook {
final Ref ref = byCommit.get(c.copy());
if (ref != null) {
rw.parseBody(c);
- closeChange(cmd, PatchSet.Id.fromRef(ref.getName()), c);
+ final PatchSet.Id id = PatchSet.Id.fromRef(ref.getName());
+ final Change change = db.changes().get(id.getParentKey());
+ if(cmd.getRefName().equals(change.getDest().get())) {
+ closeChange(cmd, id, c);
+ }
continue;
}
--
1.7.5.4
Powered by
Google Project Hosting