From 1f9daef870a8c7a984955166a542628d69012ed5 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 27 May 2011 23:37:24 -0400 Subject: [PATCH] Codepro analyze dependencies. Documentation. --- src/com/gitblit/utils/JGitUtils.java | 147 ++++-------------------------------------------- 1 files changed, 14 insertions(+), 133 deletions(-) diff --git a/src/com/gitblit/utils/JGitUtils.java b/src/com/gitblit/utils/JGitUtils.java index 088cd00..f99fbfd 100644 --- a/src/com/gitblit/utils/JGitUtils.java +++ b/src/com/gitblit/utils/JGitUtils.java @@ -73,12 +73,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.gitblit.wicket.models.Metric; -import com.gitblit.wicket.models.PathModel; -import com.gitblit.wicket.models.PathModel.PathChangeModel; -import com.gitblit.wicket.models.RefModel; -import com.gitblit.wicket.models.TicketModel; -import com.gitblit.wicket.models.TicketModel.Comment; +import com.gitblit.models.Metric; +import com.gitblit.models.PathModel; +import com.gitblit.models.RefModel; +import com.gitblit.models.TicketModel; +import com.gitblit.models.PathModel.PathChangeModel; +import com.gitblit.models.TicketModel.Comment; public class JGitUtils { @@ -183,11 +183,18 @@ } public static boolean hasCommits(Repository r) { - return new File(r.getDirectory(), Constants.R_HEADS).list().length > 0; + if (r != null && r.getDirectory().exists()) { + return new File(r.getDirectory(), Constants.R_HEADS).list().length > 0; + } + return false; } public static Date getLastChange(Repository r) { if (!hasCommits(r)) { + // null repository + if (r == null) { + return new Date(0); + } // fresh repository return new Date(r.getDirectory().lastModified()); } @@ -458,132 +465,6 @@ } return null; } - } - - public static String getCommitDiff(Repository r, RevCommit commit, DiffOutputType outputType) { - return getCommitDiff(r, null, commit, null, outputType); - } - - public static String getCommitDiff(Repository r, RevCommit commit, String path, - DiffOutputType outputType) { - return getCommitDiff(r, null, commit, path, outputType); - } - - public static String getCommitDiff(Repository r, RevCommit baseCommit, RevCommit commit, - DiffOutputType outputType) { - return getCommitDiff(r, baseCommit, commit, null, outputType); - } - - public static String getCommitDiff(Repository r, RevCommit baseCommit, RevCommit commit, - String path, DiffOutputType outputType) { - try { - RevTree baseTree; - if (baseCommit == null) { - final RevWalk rw = new RevWalk(r); - RevCommit parent = rw.parseCommit(commit.getParent(0).getId()); - rw.dispose(); - baseTree = parent.getTree(); - } else { - baseTree = baseCommit.getTree(); - } - - RevTree commitTree = commit.getTree(); - - final TreeWalk walk = new TreeWalk(r); - walk.reset(); - walk.setRecursive(true); - walk.addTree(baseTree); - walk.addTree(commitTree); - walk.setFilter(TreeFilter.ANY_DIFF); - - final ByteArrayOutputStream os = new ByteArrayOutputStream(); - RawTextComparator cmp = RawTextComparator.DEFAULT; - DiffFormatter df; - switch (outputType) { - case GITWEB: - df = new GitWebDiffFormatter(os); - break; - case GITBLIT: - df = new GitBlitDiffFormatter(os); - break; - case PLAIN: - default: - df = new DiffFormatter(os); - break; - } - df.setRepository(r); - df.setDiffComparator(cmp); - df.setDetectRenames(true); - List<DiffEntry> diffs = df.scan(baseTree, commitTree); - if (path != null && path.length() > 0) { - for (DiffEntry diff : diffs) { - if (diff.getNewPath().equalsIgnoreCase(path)) { - df.format(diff); - break; - } - } - } else { - df.format(diffs); - } - String diff; - if (df instanceof GitWebDiffFormatter) { - // workaround for complex private methods in DiffFormatter - diff = ((GitWebDiffFormatter) df).getHtml(); - } else { - diff = os.toString(); - } - df.flush(); - return diff; - } catch (Throwable t) { - LOGGER.error("failed to generate commit diff!", t); - } - return null; - } - - public static String getCommitPatch(Repository r, RevCommit baseCommit, RevCommit commit, - String path) { - try { - RevTree baseTree; - if (baseCommit == null) { - final RevWalk rw = new RevWalk(r); - RevCommit parent = rw.parseCommit(commit.getParent(0).getId()); - baseTree = parent.getTree(); - } else { - baseTree = baseCommit.getTree(); - } - RevTree commitTree = commit.getTree(); - - final TreeWalk walk = new TreeWalk(r); - walk.reset(); - walk.setRecursive(true); - walk.addTree(baseTree); - walk.addTree(commitTree); - walk.setFilter(TreeFilter.ANY_DIFF); - - final ByteArrayOutputStream os = new ByteArrayOutputStream(); - RawTextComparator cmp = RawTextComparator.DEFAULT; - PatchFormatter df = new PatchFormatter(os); - df.setRepository(r); - df.setDiffComparator(cmp); - df.setDetectRenames(true); - List<DiffEntry> diffs = df.scan(baseTree, commitTree); - if (path != null && path.length() > 0) { - for (DiffEntry diff : diffs) { - if (diff.getNewPath().equalsIgnoreCase(path)) { - df.format(diff); - break; - } - } - } else { - df.format(diffs); - } - String diff = df.getPatch(commit); - df.flush(); - return diff; - } catch (Throwable t) { - LOGGER.error("failed to generate commit diff!", t); - } - return null; } private static PathModel getPathModel(TreeWalk walk, String basePath, RevCommit commit) { -- Gitblit v1.9.1