summaryrefslogtreecommitdiffstats
path: root/src/com/gitblit/utils
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2011-06-09 19:04:24 -0400
committerJames Moger <james.moger@gitblit.com>2011-06-09 19:04:24 -0400
commitf339f5de2ee6d354f55e14e9340bebc4611535b3 (patch)
tree541f02328b2bb92c5f21164c93e73bdb79ae87d2 /src/com/gitblit/utils
parent008322bec70a3a20bd00ed2219215a9f42fe0ca5 (diff)
downloadgitblit-f339f5de2ee6d354f55e14e9340bebc4611535b3.tar.gz
gitblit-f339f5de2ee6d354f55e14e9340bebc4611535b3.zip
Unit testing. Documentation. Simplified settings classes.
Diffstat (limited to 'src/com/gitblit/utils')
-rw-r--r--src/com/gitblit/utils/DiffUtils.java35
-rw-r--r--src/com/gitblit/utils/StringUtils.java22
2 files changed, 41 insertions, 16 deletions
diff --git a/src/com/gitblit/utils/DiffUtils.java b/src/com/gitblit/utils/DiffUtils.java
index 0f569074..c1401f96 100644
--- a/src/com/gitblit/utils/DiffUtils.java
+++ b/src/com/gitblit/utils/DiffUtils.java
@@ -25,6 +25,7 @@ import org.eclipse.jgit.diff.DiffEntry;
import org.eclipse.jgit.diff.DiffFormatter;
import org.eclipse.jgit.diff.RawText;
import org.eclipse.jgit.diff.RawTextComparator;
+import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevTree;
@@ -69,6 +70,7 @@ public class DiffUtils {
public static String getDiff(Repository r, RevCommit baseCommit, RevCommit commit, String path,
DiffOutputType outputType) {
+ String diff = null;
try {
RevTree baseTree;
if (baseCommit == null) {
@@ -107,18 +109,17 @@ public class DiffUtils {
df.setRepository(r);
df.setDiffComparator(cmp);
df.setDetectRenames(true);
- List<DiffEntry> diffs = df.scan(baseTree, commitTree);
+ List<DiffEntry> diffEntries = df.scan(baseTree, commitTree);
if (path != null && path.length() > 0) {
- for (DiffEntry diff : diffs) {
- if (diff.getNewPath().equalsIgnoreCase(path)) {
- df.format(diff);
+ for (DiffEntry diffEntry : diffEntries) {
+ if (diffEntry.getNewPath().equalsIgnoreCase(path)) {
+ df.format(diffEntry);
break;
}
}
} else {
- df.format(diffs);
+ df.format(diffEntries);
}
- String diff;
if (df instanceof GitWebDiffFormatter) {
// workaround for complex private methods in DiffFormatter
diff = ((GitWebDiffFormatter) df).getHtml();
@@ -126,15 +127,15 @@ public class DiffUtils {
diff = os.toString();
}
df.flush();
- return diff;
} catch (Throwable t) {
LOGGER.error("failed to generate commit diff!", t);
}
- return null;
+ return diff;
}
public static String getCommitPatch(Repository r, RevCommit baseCommit, RevCommit commit,
String path) {
+ String diff = null;
try {
RevTree baseTree;
if (baseCommit == null) {
@@ -159,29 +160,31 @@ public class DiffUtils {
df.setRepository(r);
df.setDiffComparator(cmp);
df.setDetectRenames(true);
- List<DiffEntry> diffs = df.scan(baseTree, commitTree);
+ List<DiffEntry> diffEntries = df.scan(baseTree, commitTree);
if (path != null && path.length() > 0) {
- for (DiffEntry diff : diffs) {
- if (diff.getNewPath().equalsIgnoreCase(path)) {
- df.format(diff);
+ for (DiffEntry diffEntry : diffEntries) {
+ if (diffEntry.getNewPath().equalsIgnoreCase(path)) {
+ df.format(diffEntry);
break;
}
}
} else {
- df.format(diffs);
+ df.format(diffEntries);
}
- String diff = df.getPatch(commit);
+ diff = df.getPatch(commit);
df.flush();
- return diff;
} catch (Throwable t) {
LOGGER.error("failed to generate commit diff!", t);
}
- return null;
+ return diff;
}
public static List<AnnotatedLine> blame(Repository r, String blobPath, String objectId) {
List<AnnotatedLine> lines = new ArrayList<AnnotatedLine>();
try {
+ if (StringUtils.isEmpty(objectId)) {
+ objectId = Constants.HEAD;
+ }
BlameCommand blameCommand = new BlameCommand(r);
blameCommand.setFilePath(blobPath);
blameCommand.setStartCommit(r.resolve(objectId));
diff --git a/src/com/gitblit/utils/StringUtils.java b/src/com/gitblit/utils/StringUtils.java
index a881b58c..fa84fe8f 100644
--- a/src/com/gitblit/utils/StringUtils.java
+++ b/src/com/gitblit/utils/StringUtils.java
@@ -18,7 +18,9 @@ package com.gitblit.utils;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
import java.util.List;
+import java.util.regex.PatternSyntaxException;
public class StringUtils {
@@ -142,4 +144,24 @@ public class StringUtils {
}
return relativePath;
}
+
+ public static List<String> getStringsFromValue(String value) {
+ return getStringsFromValue(value, " ");
+ }
+
+ public static List<String> getStringsFromValue(String value, String separator) {
+ List<String> strings = new ArrayList<String>();
+ try {
+ String[] chunks = value.split(separator);
+ for (String chunk : chunks) {
+ chunk = chunk.trim();
+ if (chunk.length() > 0) {
+ strings.add(chunk);
+ }
+ }
+ } catch (PatternSyntaxException e) {
+ throw new RuntimeException(e);
+ }
+ return strings;
+ }
}