From ee4ef4efef65c834f722381c012928df602ceff3 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 28 Mar 2014 20:06:00 -0400
Subject: [PATCH] Fix close ticket on push by commit message parsing (issue-404)
---
src/main/java/com/gitblit/wicket/pages/TicketPage.java | 24 +++++++++++++++---------
1 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/gitblit/wicket/pages/TicketPage.java b/src/main/java/com/gitblit/wicket/pages/TicketPage.java
index 569818f..8571b08 100644
--- a/src/main/java/com/gitblit/wicket/pages/TicketPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/TicketPage.java
@@ -64,6 +64,7 @@
import com.gitblit.models.PathModel.PathChangeModel;
import com.gitblit.models.RegistrantAccessPermission;
import com.gitblit.models.RepositoryModel;
+import com.gitblit.models.RepositoryUrl;
import com.gitblit.models.SubmoduleModel;
import com.gitblit.models.TicketModel;
import com.gitblit.models.TicketModel.Change;
@@ -79,6 +80,7 @@
import com.gitblit.tickets.TicketLabel;
import com.gitblit.tickets.TicketMilestone;
import com.gitblit.tickets.TicketResponsible;
+import com.gitblit.utils.ArrayUtils;
import com.gitblit.utils.JGitUtils;
import com.gitblit.utils.JGitUtils.MergeStatus;
import com.gitblit.utils.MarkdownUtils;
@@ -732,10 +734,10 @@
*/
if (currentPatchset == null) {
// no patchset available
- if (ticket.isOpen() && app().tickets().isAcceptingNewPatchsets(repository)) {
+ String repoUrl = getRepositoryUrl(user, repository);
+ if (ticket.isOpen() && app().tickets().isAcceptingNewPatchsets(repository) && !StringUtils.isEmpty(repoUrl)) {
// ticket & repo will accept a proposal patchset
// show the instructions for proposing a patchset
- String repoUrl = getRepositoryUrl(user, repository);
Fragment changeIdFrag = new Fragment("patchset", "proposeFragment", this);
changeIdFrag.add(new Label("proposeInstructions", MarkdownUtils.transformMarkdown(getString("gb.proposeInstructions"))).setEscapeModelStrings(false));
changeIdFrag.add(new Label("ptWorkflow", MessageFormat.format(getString("gb.proposeWith"), "Barnum")));
@@ -1159,7 +1161,7 @@
String displayPath = entry.path;
String path = entry.path;
if (entry.isSymlink()) {
- RevCommit commit = JGitUtils.getCommit(getRepository(), Constants.R_TICKETS_PATCHSETS + ticket.number);
+ RevCommit commit = JGitUtils.getCommit(getRepository(), PatchsetCommand.getTicketBranch(ticket.number));
path = JGitUtils.getStringContent(getRepository(), commit.getTree(), path);
displayPath = entry.path + " -> " + path;
}
@@ -1203,8 +1205,8 @@
};
panel.add(pathsView);
- addPtReviewInstructions(user, repository, panel);
- addGitReviewInstructions(user, repository, panel);
+ addPtCheckoutInstructions(user, repository, panel);
+ addGitCheckoutInstructions(user, repository, panel);
panel.add(createMergePanel(user, repository));
return panel;
@@ -1278,13 +1280,13 @@
return x;
}
- protected void addGitReviewInstructions(UserModel user, RepositoryModel repository, MarkupContainer panel) {
+ protected void addGitCheckoutInstructions(UserModel user, RepositoryModel repository, MarkupContainer panel) {
panel.add(new Label("gitStep1", MessageFormat.format(getString("gb.stepN"), 1)));
panel.add(new Label("gitStep2", MessageFormat.format(getString("gb.stepN"), 2)));
String ticketBranch = Repository.shortenRefName(PatchsetCommand.getTicketBranch(ticket.number));
- String step1 = "git fetch";
+ String step1 = "git fetch origin";
String step2 = MessageFormat.format("git checkout {0} && git pull --ff-only\nOR\ngit checkout {0} && git reset --hard origin/{0}", ticketBranch);
panel.add(new Label("gitPreStep1", step1));
@@ -1294,7 +1296,7 @@
panel.add(createCopyFragment("gitCopyStep2", step2.replace("\n", " && ")));
}
- protected void addPtReviewInstructions(UserModel user, RepositoryModel repository, MarkupContainer panel) {
+ protected void addPtCheckoutInstructions(UserModel user, RepositoryModel repository, MarkupContainer panel) {
String step1 = MessageFormat.format("pt checkout {0,number,0}", ticket.number);
panel.add(new Label("ptPreStep", step1));
panel.add(createCopyFragment("ptCopyStep", step1));
@@ -1476,7 +1478,11 @@
*/
protected String getRepositoryUrl(UserModel user, RepositoryModel repository) {
HttpServletRequest req = ((WebRequest) getRequest()).getHttpServletRequest();
- String primaryurl = app().gitblit().getRepositoryUrls(req, user, repository).get(0).url;
+ List<RepositoryUrl> urls = app().gitblit().getRepositoryUrls(req, user, repository);
+ if (ArrayUtils.isEmpty(urls)) {
+ return null;
+ }
+ String primaryurl = urls.get(0).url;
String url = primaryurl;
try {
url = new URIish(primaryurl).setUser(null).toString();
--
Gitblit v1.9.1