summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2009-06-15 15:33:38 -0700
committerShawn O. Pearce <sop@google.com>2009-06-15 15:33:52 -0700
commitcd4d4f07444ed342d53833cce472774a90a63cb0 (patch)
treea76e8863aa2dee06b6d9581ab4607b66067939a1
parent1a47d583d9e21170449a8611da82c62f95a3ca3a (diff)
Don't try to auto-close changes on branch delete
On a branch delete, there's no changes to close. On branch create, there's no base commit. Signed-off-by: Shawn O. Pearce <sop@google.com>
-rw-r--r--src/main/java/com/google/gerrit/server/ssh/Receive.java12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/main/java/com/google/gerrit/server/ssh/Receive.java b/src/main/java/com/google/gerrit/server/ssh/Receive.java
index 7d043ef565..e2352ed543 100644
--- a/src/main/java/com/google/gerrit/server/ssh/Receive.java
+++ b/src/main/java/com/google/gerrit/server/ssh/Receive.java
@@ -162,17 +162,19 @@ class Receive extends AbstractGitCommand {
for (final ReceiveCommand c : commands) {
if (c.getResult() == Result.OK) {
if (isHead(c)) {
- // Make sure the branch table matches the repository
- //
switch (c.getType()) {
case CREATE:
insertBranchEntity(c);
+ autoCloseChanges(c);
break;
case DELETE:
deleteBranchEntity(c);
break;
+ case UPDATE:
+ case UPDATE_NONFASTFORWARD:
+ autoCloseChanges(c);
+ break;
}
- autoCloseChanges(c);
}
if (isHead(c) || isTag(c)) {
@@ -1072,7 +1074,9 @@ class Receive extends AbstractGitCommand {
try {
rw.reset();
rw.markStart(rw.parseCommit(cmd.getNewId()));
- rw.markUninteresting(rw.parseCommit(cmd.getOldId()));
+ if (!ObjectId.zeroId().equals(cmd.getOldId())) {
+ rw.markUninteresting(rw.parseCommit(cmd.getOldId()));
+ }
final Map<ObjectId, Ref> changes = changeRefsById();
RevCommit c;