summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2010-08-21 17:55:29 -0700
committerShawn O. Pearce <sop@google.com>2010-08-21 17:57:30 -0700
commitb6adfc74c31cc21245d037b2950c6f8deca9824a (patch)
tree5b2288259a466389bf30a514d20cf19756518f07
parentcbfb04f0810f47fd4390c2aff0761f457479cd79 (diff)
Fix clearing of topic during replace
When uploading a replacement patch set to a change that already has a topic tag, we don't want to clear the topic if the user hasn't specified it on the command line. Bug: issue 676 Change-Id: I89c6b7290dab7bbf37c15cad11004fa886e80a7e Signed-off-by: Shawn O. Pearce <sop@google.com>
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java15
1 files changed, 6 insertions, 9 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 fbcdc09043..a3140ec8a6 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
@@ -620,12 +620,11 @@ public class ReceiveCommits implements PreReceiveHook, PostReceiveHook {
if (split < destBranchName.length()) {
destTopicName = destBranchName.substring(split + 1);
+ if (destTopicName.isEmpty()) {
+ destTopicName = null;
+ }
} else {
- // We use empty string here to denote the topic wasn't
- // supplied, but the caller used the syntax that allows
- // for a topic to be given.
- //
- destTopicName = "";
+ destTopicName = null;
}
destBranch = new Branch.NameKey(project.getNameKey(), //
destBranchName.substring(0, split));
@@ -876,7 +875,7 @@ public class ReceiveCommits implements PreReceiveHook, PostReceiveHook {
final Change change =
new Change(changeKey, new Change.Id(db.nextChangeId()), me, destBranch);
- change.setTopic(destTopicName.isEmpty() ? null : destTopicName);
+ change.setTopic(destTopicName);
change.nextPatchSetId();
final PatchSet ps = new PatchSet(change.currPatchSetId());
@@ -1177,9 +1176,7 @@ public class ReceiveCommits implements PreReceiveHook, PostReceiveHook {
public Change update(Change change) {
if (change.getStatus().isOpen()) {
if (destTopicName != null) {
- change.setTopic(destTopicName.isEmpty() //
- ? null //
- : destTopicName);
+ change.setTopic(destTopicName);
}
change.setStatus(Change.Status.NEW);
change.setCurrentPatchSet(result.info);