summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2011-05-19 12:55:39 -0700
committerShawn O. Pearce <sop@google.com>2011-05-19 12:55:39 -0700
commitaee9250e4395c61331985690c581c40ec8157dc5 (patch)
tree3f99009e7862f5dc12fe4d0a3abdacc040810838
parent7ee84a14ca78ca2737146f7c1739c522bbc8f1bc (diff)
Fix connectivity check for new branches
If a branch did not yet exist (e.g. a new project with no commits) Gerrit refused to allow uploading a new change for review, as the new commit was not connected to the history. Change-Id: Ie0beca2c51751d618655dcb739ff94de87ace75b Signed-off-by: Shawn O. Pearce <sop@google.com>
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java7
1 files changed, 7 insertions, 0 deletions
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 969e98c73c..445974fe7b 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
@@ -763,6 +763,13 @@ public class ReceiveCommits implements PreReceiveHook, PostReceiveHook {
walk.markStart(tip);
Ref targetRef = rp.getAdvertisedRefs().get(destBranchName);
+ if (targetRef == null || targetRef.getObjectId() == null) {
+ // The destination branch does not yet exist. Assume the
+ // history being sent for review will start it and thus
+ // is "connected" to the branch.
+ return;
+ }
+
final RevCommit h = walk.parseCommit(targetRef.getObjectId());
h.add(SIDE_HAVE);
walk.markStart(h);