summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/gitblit/tickets
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2014-03-08 11:27:00 -0500
committerJames Moger <james.moger@gitblit.com>2014-03-08 11:27:00 -0500
commitc134a0c3f2440a09c5b8c8c6837c95aba3d4f84f (patch)
treeff373e9298876767b763890f345c10a02eef43a8 /src/main/java/com/gitblit/tickets
parentd8b4e317f116a6da616f8842ebf07f292e77de3f (diff)
downloadgitblit-c134a0c3f2440a09c5b8c8c6837c95aba3d4f84f.tar.gz
gitblit-c134a0c3f2440a09c5b8c8c6837c95aba3d4f84f.zip
Move Gitblit branches to refs/meta/gitblit
Diffstat (limited to 'src/main/java/com/gitblit/tickets')
-rw-r--r--src/main/java/com/gitblit/tickets/BranchTicketService.java28
1 files changed, 26 insertions, 2 deletions
diff --git a/src/main/java/com/gitblit/tickets/BranchTicketService.java b/src/main/java/com/gitblit/tickets/BranchTicketService.java
index a25dac84..0f71d864 100644
--- a/src/main/java/com/gitblit/tickets/BranchTicketService.java
+++ b/src/main/java/com/gitblit/tickets/BranchTicketService.java
@@ -43,6 +43,8 @@ import org.eclipse.jgit.lib.FileMode;
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;
@@ -80,7 +82,7 @@ import com.gitblit.utils.StringUtils;
*/
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";
@@ -193,10 +195,32 @@ public class BranchTicketService extends ITicketService implements RefsChangedLi
* @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;