From 4e84166db5c5538e3984d9d2d6bb1f9902e65ee0 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Tue, 04 Nov 2014 17:38:17 -0500 Subject: [PATCH] Merged #217 "Exclude SSLv3 from Gitblit GO https protocols" --- src/main/java/com/gitblit/utils/DiffUtils.java | 32 ++++++++++++++++++++++++++++++++ 1 files changed, 32 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/gitblit/utils/DiffUtils.java b/src/main/java/com/gitblit/utils/DiffUtils.java index 107f6ab..dd2a780 100644 --- a/src/main/java/com/gitblit/utils/DiffUtils.java +++ b/src/main/java/com/gitblit/utils/DiffUtils.java @@ -346,6 +346,38 @@ return diff; } + /** + * Returns the diffstat between the two commits for the specified file or folder. + * + * @param repository + * @param base + * if base commit is unspecified, the diffstat is generated against + * the primary parent of the specified tip. + * @param tip + * @param path + * if path is specified, the diffstat is generated only for the + * specified file or folder. if unspecified, the diffstat is + * generated for the entire diff between the two commits. + * @return patch as a string + */ + public static DiffStat getDiffStat(Repository repository, String base, String tip) { + RevCommit baseCommit = null; + RevCommit tipCommit = null; + RevWalk revWalk = new RevWalk(repository); + try { + tipCommit = revWalk.parseCommit(repository.resolve(tip)); + if (!StringUtils.isEmpty(base)) { + baseCommit = revWalk.parseCommit(repository.resolve(base)); + } + return getDiffStat(repository, baseCommit, tipCommit, null); + } catch (Exception e) { + LOGGER.error("failed to generate diffstat!", e); + } finally { + revWalk.dispose(); + } + return null; + } + public static DiffStat getDiffStat(Repository repository, RevCommit commit) { return getDiffStat(repository, null, commit, null); } -- Gitblit v1.9.1