From 790c3829edafcb41d6eeb14301a23db22c559e96 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 01 Jul 2011 17:45:23 -0400 Subject: [PATCH] Documentation. Added upgrade info to site. Moved todos to GoogleCode. --- src/com/gitblit/utils/JGitUtils.java | 33 ++++++++++++++++++--------------- 1 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/com/gitblit/utils/JGitUtils.java b/src/com/gitblit/utils/JGitUtils.java index f6d7108..1c607ca 100644 --- a/src/com/gitblit/utils/JGitUtils.java +++ b/src/com/gitblit/utils/JGitUtils.java @@ -96,7 +96,8 @@ return r.toString().trim(); } - public static FetchResult cloneRepository(File repositoriesFolder, String name, String fromUrl) throws Exception { + public static FetchResult cloneRepository(File repositoriesFolder, String name, String fromUrl) + throws Exception { FetchResult result = null; if (!name.toLowerCase().endsWith(Constants.DOT_GIT_EXT)) { name += Constants.DOT_GIT_EXT; @@ -402,35 +403,29 @@ public static List<PathChangeModel> getFilesInCommit(Repository r, RevCommit commit) { List<PathChangeModel> list = new ArrayList<PathChangeModel>(); RevWalk rw = new RevWalk(r); - TreeWalk tw = new TreeWalk(r); try { if (commit == null) { ObjectId object = r.resolve(Constants.HEAD); commit = rw.parseCommit(object); } - RevTree commitTree = commit.getTree(); - tw.reset(); - tw.setRecursive(true); if (commit.getParentCount() == 0) { - tw.addTree(commitTree); + TreeWalk tw = new TreeWalk(r); + tw.reset(); + tw.setRecursive(true); + tw.addTree(commit.getTree()); while (tw.next()) { list.add(new PathChangeModel(tw.getPathString(), tw.getPathString(), 0, tw .getRawMode(0), commit.getId().getName(), ChangeType.ADD)); } + tw.release(); } else { RevCommit parent = rw.parseCommit(commit.getParent(0).getId()); - RevTree parentTree = parent.getTree(); - tw.addTree(parentTree); - tw.addTree(commitTree); - tw.setFilter(TreeFilter.ANY_DIFF); - - RawTextComparator cmp = RawTextComparator.DEFAULT; DiffFormatter df = new DiffFormatter(DisabledOutputStream.INSTANCE); df.setRepository(r); - df.setDiffComparator(cmp); + df.setDiffComparator(RawTextComparator.DEFAULT); df.setDetectRenames(true); - List<DiffEntry> diffs = df.scan(parentTree, commitTree); + List<DiffEntry> diffs = df.scan(parent.getTree(), commit.getTree()); for (DiffEntry diff : diffs) { if (diff.getChangeType().equals(ChangeType.DELETE)) { list.add(new PathChangeModel(diff.getOldPath(), diff.getOldPath(), 0, diff @@ -447,7 +442,6 @@ LOGGER.error("failed to determine files in commit!", t); } finally { rw.dispose(); - tw.release(); } return list; } @@ -532,6 +526,9 @@ public static List<RevCommit> getRevLog(Repository r, String objectId, String path, int offset, int maxCount) { List<RevCommit> list = new ArrayList<RevCommit>(); + if (maxCount == 0) { + return list; + } if (!hasCommits(r)) { return list; } @@ -597,6 +594,9 @@ final SearchType type, int offset, int maxCount) { final String lcValue = value.toLowerCase(); List<RevCommit> list = new ArrayList<RevCommit>(); + if (maxCount == 0) { + return list; + } if (!hasCommits(r)) { return list; } @@ -683,6 +683,9 @@ private static List<RefModel> getRefs(Repository r, String refs, boolean fullName, int maxCount) { List<RefModel> list = new ArrayList<RefModel>(); + if (maxCount == 0) { + return list; + } try { Map<String, Ref> map = r.getRefDatabase().getRefs(refs); RevWalk rw = new RevWalk(r); -- Gitblit v1.9.1