Skip to content

Commit

Permalink
Including first commit
Browse files Browse the repository at this point in the history
 * Was excluding it when ZERO_COMMIT constant was used
  • Loading branch information
tomasbjerre committed Jan 30, 2016
1 parent 0038494 commit c3da07c
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 8 deletions.
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,13 @@ Changelog of Git Changelog.
## Next release
### Other changes

[ad9f073faa1ba99](https://github.com/tomasbjerre/git-changelog-lib/commit/ad9f073faa1ba99) Tomas Bjerre *2016-01-30 09:15:11*
[1a9c14ecdaa2a6e](https://github.com/tomasbjerre/git-changelog-lib/commit/1a9c14ecdaa2a6e) Tomas Bjerre *2016-01-30 11:54:00*

Including first commit

* Was excluding it when ZERO_COMMIT constant was used

[0038494e3452b52](https://github.com/tomasbjerre/git-changelog-lib/commit/0038494e3452b52) Tomas Bjerre *2016-01-30 09:32:00*

Documentation

Expand Down
14 changes: 9 additions & 5 deletions src/main/java/se/bjurr/gitchangelog/internal/git/GitRepo.java
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,14 @@ public List<GitCommit> getDiff(ObjectId from, ObjectId to) {
Git git = null;
try {
git = new Git(repository);
Iterable<RevCommit> itr = git //
.log() //
.addRange(from, to) //
.call(); //
LogCommand logCommand = git //
.log();
if (from.name().equals(firstCommit().name())) {
logCommand.add(to);
} else {
logCommand.addRange(from, to);
}
Iterable<RevCommit> itr = logCommand.call(); //
return newArrayList(transform(itr, TO_GITCOMMIT));
} catch (Exception e) {
throw new RuntimeException("References:\n" + on("\n").join(repository.getAllRefs().keySet()), e);
Expand Down Expand Up @@ -146,7 +150,7 @@ public ObjectId getCommit(String fromCommit) {
return fromString(fromCommit);
}

private ObjectId firstCommit() {
private RevCommit firstCommit() {
RevWalk walk = null;
try {
walk = new RevWalk(repository);
Expand Down
23 changes: 21 additions & 2 deletions src/test/java/se/bjurr/gitchangelog/internal/git/GitRepoTest.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,24 @@
package se.bjurr.gitchangelog.internal.git;

import static com.google.common.collect.Lists.reverse;
import static org.assertj.core.api.Assertions.assertThat;
import static se.bjurr.gitchangelog.api.GitChangelogApiConstants.REF_MASTER;
import static se.bjurr.gitchangelog.api.GitChangelogApiConstants.ZERO_COMMIT;

import java.io.File;
import java.util.List;

import org.eclipse.jgit.lib.ObjectId;
import org.junit.Before;
import org.junit.Test;

import se.bjurr.gitchangelog.internal.git.model.GitCommit;

import com.google.common.io.Resources;

public class GitRepoTest {
private static final String FIRST_COMMIT_HASH = "a1aa5ff";
private static final String TAG_1_0_HASH = "01484ce71bbc76e1af75ebb07a52844145ce99dc";
private File gitRepoFile;

@Before
Expand All @@ -37,14 +43,27 @@ public void testThatCommitsCanBeRetrieved() {
GitRepo gitRepo = getGitRepo();
ObjectId firstCommit = gitRepo.getCommit(ZERO_COMMIT);
assertThat(firstCommit).isNotNull();
assertThat(firstCommit.name()).startsWith(FIRST_COMMIT_HASH);
}

@Test
public void testThatCommitsBetween2ReferencesCanBeListed() {
public void testThatCommitsBetweenCommitAndReferenceCanBeListed() {
GitRepo gitRepo = getGitRepo();
ObjectId firstCommit = gitRepo.getCommit(ZERO_COMMIT);
ObjectId lastCommit = gitRepo.getRef(REF_MASTER);
assertThat(gitRepo.getDiff(firstCommit, lastCommit)).isNotEmpty();
List<GitCommit> diff = gitRepo.getDiff(firstCommit, lastCommit);
assertThat(diff).isNotEmpty();
assertThat(reverse(diff).get(0).getHash()).startsWith(FIRST_COMMIT_HASH);
}

@Test
public void testThatCommitsBetweenCommitAndCommitCanBeListed() {
GitRepo gitRepo = getGitRepo();
ObjectId firstCommit = gitRepo.getCommit(ZERO_COMMIT);
ObjectId lastCommit = gitRepo.getCommit(TAG_1_0_HASH);
List<GitCommit> diff = gitRepo.getDiff(firstCommit, lastCommit);
assertThat(diff).isNotEmpty();
assertThat(reverse(diff).get(0).getHash()).startsWith(FIRST_COMMIT_HASH);
}

private GitRepo getGitRepo() {
Expand Down

0 comments on commit c3da07c

Please sign in to comment.