From 16ef06d210bec7dd5b44d82f70d9f7bb9e4dbf6f Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 01 May 2014 14:26:28 -0400
Subject: [PATCH] Documentation
---
src/main/java/com/gitblit/tickets/BranchTicketService.java | 48 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 38 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/gitblit/tickets/BranchTicketService.java b/src/main/java/com/gitblit/tickets/BranchTicketService.java
index fc0bd8f..284b1be 100644
--- a/src/main/java/com/gitblit/tickets/BranchTicketService.java
+++ b/src/main/java/com/gitblit/tickets/BranchTicketService.java
@@ -30,8 +30,6 @@
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
-import javax.inject.Inject;
-
import org.eclipse.jgit.api.errors.ConcurrentRefUpdateException;
import org.eclipse.jgit.api.errors.JGitInternalException;
import org.eclipse.jgit.dircache.DirCache;
@@ -45,6 +43,8 @@
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.ObjectInserter;
import org.eclipse.jgit.lib.PersonIdent;
+import org.eclipse.jgit.lib.Ref;
+import org.eclipse.jgit.lib.RefRename;
import org.eclipse.jgit.lib.RefUpdate;
import org.eclipse.jgit.lib.RefUpdate.Result;
import org.eclipse.jgit.lib.Repository;
@@ -58,6 +58,7 @@
import com.gitblit.Constants;
import com.gitblit.git.ReceiveCommandEvent;
import com.gitblit.manager.INotificationManager;
+import com.gitblit.manager.IPluginManager;
import com.gitblit.manager.IRepositoryManager;
import com.gitblit.manager.IRuntimeManager;
import com.gitblit.manager.IUserManager;
@@ -82,7 +83,7 @@
*/
public class BranchTicketService extends ITicketService implements RefsChangedListener {
- public static final String BRANCH = "refs/gitblit/tickets";
+ public static final String BRANCH = "refs/meta/gitblit/tickets";
private static final String JOURNAL = "journal.json";
@@ -90,14 +91,15 @@
private final Map<String, AtomicLong> lastAssignedId;
- @Inject
public BranchTicketService(
IRuntimeManager runtimeManager,
+ IPluginManager pluginManager,
INotificationManager notificationManager,
IUserManager userManager,
IRepositoryManager repositoryManager) {
super(runtimeManager,
+ pluginManager,
notificationManager,
userManager,
repositoryManager);
@@ -190,23 +192,45 @@
}
/**
- * Returns a RefModel for the refs/gitblit/tickets branch in the repository.
+ * Returns a RefModel for the refs/meta/gitblit/tickets branch in the repository.
* If the branch can not be found, null is returned.
*
* @return a refmodel for the gitblit tickets branch or null
*/
private RefModel getTicketsBranch(Repository db) {
- List<RefModel> refs = JGitUtils.getRefs(db, Constants.R_GITBLIT);
+ List<RefModel> refs = JGitUtils.getRefs(db, "refs/");
+ Ref oldRef = null;
for (RefModel ref : refs) {
if (ref.reference.getName().equals(BRANCH)) {
return ref;
+ } else if (ref.reference.getName().equals("refs/gitblit/tickets")) {
+ oldRef = ref.reference;
+ }
+ }
+ if (oldRef != null) {
+ // rename old ref to refs/meta/gitblit/tickets
+ RefRename cmd;
+ try {
+ cmd = db.renameRef(oldRef.getName(), BRANCH);
+ cmd.setRefLogIdent(new PersonIdent("Gitblit", "gitblit@localhost"));
+ cmd.setRefLogMessage("renamed " + oldRef.getName() + " => " + BRANCH);
+ Result res = cmd.rename();
+ switch (res) {
+ case RENAMED:
+ log.info(db.getDirectory() + " " + cmd.getRefLogMessage());
+ return getTicketsBranch(db);
+ default:
+ log.error("failed to rename " + oldRef.getName() + " => " + BRANCH + " (" + res.name() + ")");
+ }
+ } catch (IOException e) {
+ log.error("failed to rename tickets branch", e);
}
}
return null;
}
/**
- * Creates the refs/gitblit/tickets branch.
+ * Creates the refs/meta/gitblit/tickets branch.
* @param db
*/
private void createTicketsBranch(Repository db) {
@@ -219,7 +243,7 @@
* folder with the remaining characters as a subfolder within that folder.
*
* @param ticketId
- * @return the root path of the ticket content on the refs/gitblit/tickets branch
+ * @return the root path of the ticket content on the refs/meta/gitblit/tickets branch
*/
private String toTicketPath(long ticketId) {
StringBuilder sb = new StringBuilder();
@@ -635,7 +659,9 @@
ticket.number, db.getDirectory()), t);
} finally {
// release the treewalk
- treeWalk.release();
+ if (treeWalk != null) {
+ treeWalk.release();
+ }
}
} finally {
db.close();
@@ -851,7 +877,9 @@
} catch (Exception e) {
log.error(null, e);
} finally {
- db.close();
+ if (db != null) {
+ db.close();
+ }
}
return false;
}
--
Gitblit v1.9.1