James Moger
2014-04-14 f254eee8b43efc924a8272f774de4e5a8333a7f5
Improve ticket branch ref deletion push handling
2 files modified
17 ■■■■■ changed files
releases.moxie 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/git/PatchsetReceivePack.java 15 ●●●●● patch | view | raw | blame | history
releases.moxie
@@ -21,8 +21,10 @@
    - Repository mailing lists could not be reset from the Edit Repository page (issue-399)
    - Fix intermittent NPE in determining commit date in RefModel (issue-401)
    - Fix closing ticket on push by parsing commit messages for closes|fixes (issue-404)
    - Fix diffstat display for a ticket with a pending submodule change (issue-407)
    - Ensure the Lucene ticket index is updated on repository deletion.
    - Fixed failure to properly determine hasTicket in RedisTicketService
    - Fixed handling of pushing ticket branch deletions
    changes:
    - Switch from GoogleCharts to self-hosted flotr2 charts (issue-283, ticket-43, pr-166)
    - Specify the --dailyLogFile option for the Ubuntu and CentOS service scripts (issue-348)
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;
@@ -346,6 +347,20 @@
                    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;
                }
                if (patchsetRefCmd != null) {
                    sendRejection(cmd, "You may only push one patchset at a time.");
                    continue;