summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2011-12-17 14:03:35 -0500
committerJames Moger <james.moger@gitblit.com>2011-12-17 14:03:35 -0500
commitf4759059d4c363f5bd42550c9c35dd21f4d2bf41 (patch)
tree1455de87cec92ec2bee88f51fe007019b368c96e /src/com
parent9be337b389f9edb4c5761fca2c34104ca43c5b08 (diff)
downloadgitblit-f4759059d4c363f5bd42550c9c35dd21f4d2bf41.tar.gz
gitblit-f4759059d4c363f5bd42550c9c35dd21f4d2bf41.zip
Fixed sendemail script to list all commits in a push.
Diffstat (limited to 'src/com')
-rw-r--r--src/com/gitblit/utils/JGitUtils.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/com/gitblit/utils/JGitUtils.java b/src/com/gitblit/utils/JGitUtils.java
index 99c2d0a8..31fd08ff 100644
--- a/src/com/gitblit/utils/JGitUtils.java
+++ b/src/com/gitblit/utils/JGitUtils.java
@@ -965,6 +965,43 @@ public class JGitUtils {
}
/**
+ * Returns a list of commits for the repository within the range specified
+ * by startRangeId and endRangeId. If the repository does not exist or is
+ * empty, an empty list is returned.
+ *
+ * @param repository
+ * @param startRangeId
+ * the first commit (not included in results)
+ * @param endRangeId
+ * the end commit (included in results)
+ * @return a list of commits
+ */
+ public static List<RevCommit> getRevLog(Repository repository, String startRangeId,
+ String endRangeId) {
+ List<RevCommit> list = new ArrayList<RevCommit>();
+ if (!hasCommits(repository)) {
+ return list;
+ }
+ try {
+ ObjectId endRange = repository.resolve(endRangeId);
+ ObjectId startRange = repository.resolve(startRangeId);
+
+ RevWalk rw = new RevWalk(repository);
+ rw.markStart(rw.parseCommit(endRange));
+ rw.markUninteresting(rw.parseCommit(startRange));
+
+ Iterable<RevCommit> revlog = rw;
+ for (RevCommit rev : revlog) {
+ list.add(rev);
+ }
+ rw.dispose();
+ } catch (Throwable t) {
+ error(t, repository, "{0} failed to get revlog for {1}..{2}", startRangeId, endRangeId);
+ }
+ return list;
+ }
+
+ /**
* Search the commit history for a case-insensitive match to the value.
* Search results require a specified SearchType of AUTHOR, COMMITTER, or
* COMMIT. Results may be paginated using offset and maxCount. If the