James Moger
2014-09-26 7a273c783e31a9e87b702af8ac865df1d2d57c58
src/main/java/com/gitblit/git/PatchsetReceivePack.java
@@ -309,6 +309,7 @@
         }
         if (isPatchsetRef(cmd.getRefName()) && processPatchsets) {
            if (ticketService == null) {
               sendRejection(cmd, "Sorry, the ticket service is unavailable and can not accept patchsets at this time.");
               continue;
@@ -343,6 +344,20 @@
               LOGGER.error("{} already has refs in the {} namespace",
                     repository.name, Constants.R_FOR);
               sendRejection(cmd, "Sorry, a repository administrator will have to remove the {} namespace", Constants.R_FOR);
               continue;
            }
            if (cmd.getNewId().equals(ObjectId.zeroId())) {
               // ref deletion request
               if (cmd.getRefName().startsWith(Constants.R_TICKET)) {
                  if (user.canDeleteRef(repository)) {
                     batch.addCommand(cmd);
                  } else {
                     sendRejection(cmd, "Sorry, you do not have permission to delete {}", cmd.getRefName());
                  }
               } else {
                  sendRejection(cmd, "Sorry, you can not delete {}", cmd.getRefName());
               }
               continue;
            }
@@ -521,8 +536,10 @@
                  break;
               }
            }
            sendError("Sorry, {0} already merged {1} from ticket {2,number,0} to {3}!",
            if (mergeChange != null) {
               sendError("Sorry, {0} already merged {1} from ticket {2,number,0} to {3}!",
                  mergeChange.author, mergeChange.patchset, number, ticket.mergeTo);
            }
            sendRejection(cmd, "Ticket {0,number,0} already resolved", number);
            return null;
         } else if (!StringUtils.isEmpty(ticket.mergeTo)) {
@@ -1185,11 +1202,15 @@
      if (ticket != null) {
         ticketNotifier.queueMailing(ticket);
         // update the reflog with the merge
         if (oldRef != null) {
            ReceiveCommand cmd = new ReceiveCommand(oldRef.getObjectId(),
                  ObjectId.fromString(mergeResult.sha), oldRef.getName());
            RefLogUtils.updateRefLog(user, getRepository(), Arrays.asList(cmd));
            cmd.setResult(Result.OK);
            List<ReceiveCommand> commands = Arrays.asList(cmd);
            logRefChange(commands);
            updateIncrementalPushTags(commands);
            updateGitblitRefLog(commands);
         }
         // call patchset hooks