From f97bf09263fe8ef7ba4dcf231dfe7b8265b1e0df Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 27 Apr 2011 21:22:12 -0400
Subject: [PATCH] Centralized markdown transforms. Moved config ops to GitBlit.
---
src/com/gitblit/utils/JGitUtils.java | 143 +++++++++++++++--------------------------------
1 files changed, 45 insertions(+), 98 deletions(-)
diff --git a/src/com/gitblit/utils/JGitUtils.java b/src/com/gitblit/utils/JGitUtils.java
index eddd3df..4cfed0d 100644
--- a/src/com/gitblit/utils/JGitUtils.java
+++ b/src/com/gitblit/utils/JGitUtils.java
@@ -4,10 +4,12 @@
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.charset.Charset;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
@@ -43,8 +45,10 @@
import org.eclipse.jgit.revwalk.filter.RevFilter;
import org.eclipse.jgit.treewalk.TreeWalk;
import org.eclipse.jgit.treewalk.filter.AndTreeFilter;
+import org.eclipse.jgit.treewalk.filter.OrTreeFilter;
import org.eclipse.jgit.treewalk.filter.PathFilter;
import org.eclipse.jgit.treewalk.filter.PathFilterGroup;
+import org.eclipse.jgit.treewalk.filter.PathSuffixFilter;
import org.eclipse.jgit.treewalk.filter.TreeFilter;
import org.eclipse.jgit.util.io.DisabledOutputStream;
import org.slf4j.Logger;
@@ -261,12 +265,14 @@
}
public static String getRawContentAsString(Repository r, RevBlob blob) {
- return new String(getRawContent(r, blob));
+ byte [] content = getRawContent(r, blob);
+ return new String(content, Charset.forName("UTF-8"));
}
public static String getRawContentAsString(Repository r, RevCommit commit, String blobPath) {
RevObject obj = getRevObject(r, commit.getTree(), blobPath);
- return new String(getRawContent(r, (RevBlob) obj));
+ byte [] content = getRawContent(r, (RevBlob) obj);
+ return new String(content, Charset.forName("UTF-8"));
}
public static List<PathModel> getFilesInPath(Repository r, String basePath, String objectId) {
@@ -350,6 +356,42 @@
} catch (Throwable t) {
LOGGER.error("failed to determine files in commit!", t);
}
+ return list;
+ }
+
+ public static List<PathModel> getDocuments(Repository r, List<String> extensions) {
+ List<PathModel> list = new ArrayList<PathModel>();
+ RevCommit commit = getCommit(r, Constants.HEAD);
+ final TreeWalk walk = new TreeWalk(r);
+ try {
+ walk.addTree(commit.getTree());
+ if (extensions != null && extensions.size() > 0) {
+ Collection<TreeFilter> suffixFilters = new ArrayList<TreeFilter>();
+ for (String extension:extensions) {
+ if (extension.charAt(0) == '.') {
+ suffixFilters.add(PathSuffixFilter.create(extension));
+ } else {
+ // escape the . since this is a regexp filter
+ suffixFilters.add(PathSuffixFilter.create("\\." + extension));
+ }
+ }
+ TreeFilter filter = OrTreeFilter.create(suffixFilters);
+ walk.setFilter(filter);
+ walk.setRecursive(true);
+ while (walk.next()) {
+ list.add(getPathModel(walk, null, commit));
+ }
+ } else {
+ while (walk.next()) {
+ list.add(getPathModel(walk, null, commit));
+ }
+ }
+ } catch (IOException e) {
+ LOGGER.error("Failed to get files for commit " + commit.getName(), e);
+ } finally {
+ walk.release();
+ }
+ Collections.sort(list);
return list;
}
@@ -733,98 +775,7 @@
return r.toString();
}
- public static String getRepositoryDescription(Repository r) {
- return getRepositoryConfigString(r, "description");
- }
-
- public static void setRepositoryDescription(Repository r, String value) {
- setRepositoryConfigString(r, "description", value);
- }
-
- public static String getRepositoryOwner(Repository r) {
- return getRepositoryConfigString(r, "owner");
- }
-
- public static void setRepositoryOwner(Repository r, String owner) {
- setRepositoryConfigString(r, "owner", owner);
- }
-
- public static String getRepositoryGroup(Repository r) {
- return getRepositoryConfigString(r, "group");
- }
-
- public static void setRepositoryGroup(Repository r, String group) {
- setRepositoryConfigString(r, "group", group);
- }
-
- public static boolean getRepositoryUseTickets(Repository r) {
- return getRepositoryConfigBoolean(r, "useTickets", false);
- }
-
- public static void setRepositoryUseTickets(Repository r, boolean value) {
- setRepositoryConfigBoolean(r, "useTickets", value);
- }
-
- public static boolean getRepositoryUseDocs(Repository r) {
- return getRepositoryConfigBoolean(r, "useDocs", false);
- }
-
- public static void setRepositoryUseDocs(Repository r, boolean value) {
- setRepositoryConfigBoolean(r, "useDocs", value);
- }
-
- public static boolean getRepositoryRestrictedAccess(Repository r) {
- return getRepositoryConfigBoolean(r, "restrictedAccess", false);
- }
-
- public static void setRepositoryRestrictedAccess(Repository r, boolean value) {
- setRepositoryConfigBoolean(r, "restrictedAccess", value);
- }
-
- public static String getRepositoryConfigString(Repository r, String field) {
- StoredConfig c = readConfig(r);
- if (c == null) {
- return "";
- }
- String o = c.getString("gitblit", null, field);
- return o == null ? "" : o;
- }
-
- public static void setRepositoryConfigString(Repository r, String field, String value) {
- StoredConfig c = readConfig(r);
- if (c == null) {
- throw new RuntimeException("Can't find stored config for " + r);
- }
- c.setString("gitblit", null, field, value);
- try {
- c.save();
- } catch (IOException e) {
- LOGGER.error("Failed to save repository config field " + field, e);
- }
- }
-
- public static boolean getRepositoryConfigBoolean(Repository r, String field, boolean defaultValue) {
- StoredConfig c = readConfig(r);
- if (c == null) {
- return defaultValue;
- }
- return c.getBoolean("gitblit", null, field, defaultValue);
- }
-
- public static void setRepositoryConfigBoolean(Repository r, String field, boolean value) {
- StoredConfig c = readConfig(r);
- if (c == null) {
- throw new RuntimeException("Can't find stored config for " + r);
- }
- c.setBoolean("gitblit", null, field, value);
- try {
- c.save();
- } catch (IOException e) {
- LOGGER.error("Failed to save repository config field " + field, e);
- }
- }
-
- private static StoredConfig readConfig(Repository r) {
+ public static StoredConfig readConfig(Repository r) {
StoredConfig c = r.getConfig();
if (c != null) {
try {
@@ -895,10 +846,6 @@
return metrics;
}
- public static RefModel getDocumentsBranch(Repository r) {
- return getTicketsBranch(r);
- }
-
public static RefModel getTicketsBranch(Repository r) {
RefModel ticgitBranch = null;
try {
--
Gitblit v1.9.1