From e1529ced42a0378fdfdf595ec7396247f705e395 Mon Sep 17 00:00:00 2001 From: Shawn Pearce Date: Fri, 15 Jan 2016 12:58:11 -0800 Subject: [PATCH] debug-rebuild-ref-tree: Add --enable flag to turn the database on Change-Id: Iad8ebdb0c4c0ad6dcd2b12dd56ffe1be6a20840f --- .../org/eclipse/jgit/pgm/debug/RebuildRefTree.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildRefTree.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildRefTree.java index 78ca1a712..3c7ae9bf9 100644 --- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildRefTree.java +++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/RebuildRefTree.java @@ -57,12 +57,17 @@ import org.eclipse.jgit.lib.PersonIdent; import org.eclipse.jgit.lib.Ref; import org.eclipse.jgit.lib.RefDatabase; import org.eclipse.jgit.lib.RefUpdate; +import org.eclipse.jgit.lib.StoredConfig; import org.eclipse.jgit.pgm.Command; import org.eclipse.jgit.pgm.TextBuiltin; import org.eclipse.jgit.revwalk.RevWalk; +import org.kohsuke.args4j.Option; @Command(usage = "usage_RebuildRefTree") class RebuildRefTree extends TextBuiltin { + @Option(name = "--enable", usage = "set extensions.refsStorage = reftree") + boolean enable; + private String txnNamespace; private String txnCommitted; @@ -122,6 +127,15 @@ class RebuildRefTree extends TextBuiltin { default: throw die(String.format("%s: %s", update.getName(), result)); //$NON-NLS-1$ } + + if (enable && !(db.getRefDatabase() instanceof RefTreeDatabase)) { + StoredConfig cfg = db.getConfig(); + cfg.setInt("core", null, "repositoryformatversion", 1); //$NON-NLS-1$ //$NON-NLS-2$ + cfg.setString("extensions", null, "refsStorage", "reftree"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + cfg.save(); + errw.println("Enabled reftree."); //$NON-NLS-1$ + errw.flush(); + } } }