|
|
@@ -0,0 +1,75 @@ |
|
|
|
/* |
|
|
|
* Copyright (C) 2021, kylezhao <kylezhao@tencent.com> and others. |
|
|
|
* |
|
|
|
* This program and the accompanying materials are made available under the |
|
|
|
* terms of the Eclipse Distribution License v. 1.0 which is available at |
|
|
|
* https://www.eclipse.org/org/documents/edl-v10.php. |
|
|
|
* |
|
|
|
* SPDX-License-Identifier: BSD-3-Clause |
|
|
|
*/ |
|
|
|
|
|
|
|
package org.eclipse.jgit.pgm; |
|
|
|
|
|
|
|
import static org.junit.Assert.assertEquals; |
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import org.eclipse.jgit.api.Git; |
|
|
|
import org.eclipse.jgit.lib.CLIRepositoryTestCase; |
|
|
|
import org.eclipse.jgit.revwalk.RevCommit; |
|
|
|
import org.junit.Before; |
|
|
|
import org.junit.Test; |
|
|
|
|
|
|
|
public class RevListTest extends CLIRepositoryTestCase { |
|
|
|
|
|
|
|
private Git git; |
|
|
|
|
|
|
|
@Override |
|
|
|
@Before |
|
|
|
public void setUp() throws Exception { |
|
|
|
super.setUp(); |
|
|
|
git = new Git(db); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testWithParentsFlag() throws Exception { |
|
|
|
List<RevCommit> commits = createCommitsForParentsFlag(git); |
|
|
|
String result = toString( |
|
|
|
execute("git rev-list HEAD --parents -- Test.txt")); |
|
|
|
|
|
|
|
String expect = toString( |
|
|
|
commits.get(3).name() + ' ' + commits.get(1).name(), |
|
|
|
commits.get(1).name()); |
|
|
|
|
|
|
|
assertEquals(expect, result); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testWithoutParentsFlag() throws Exception { |
|
|
|
List<RevCommit> commits = createCommitsForParentsFlag(git); |
|
|
|
String result = toString(execute("git rev-list HEAD -- Test.txt")); |
|
|
|
|
|
|
|
String expect = toString(commits.get(3).name(), commits.get(1).name()); |
|
|
|
|
|
|
|
assertEquals(expect, result); |
|
|
|
} |
|
|
|
|
|
|
|
private List<RevCommit> createCommitsForParentsFlag(Git git) |
|
|
|
throws Exception { |
|
|
|
List<RevCommit> commits = new ArrayList<>(); |
|
|
|
writeTrashFile("Test1.txt", "Hello world"); |
|
|
|
git.add().addFilepattern("Test1.txt").call(); |
|
|
|
commits.add(git.commit().setMessage("commit#0").call()); |
|
|
|
writeTrashFile("Test.txt", "Hello world!"); |
|
|
|
git.add().addFilepattern("Test.txt").call(); |
|
|
|
commits.add(git.commit().setMessage("commit#1").call()); |
|
|
|
writeTrashFile("Test1.txt", "Hello world!!"); |
|
|
|
git.add().addFilepattern("Test1.txt").call(); |
|
|
|
commits.add(git.commit().setMessage("commit#2").call()); |
|
|
|
writeTrashFile("Test.txt", "Hello world!!!"); |
|
|
|
git.add().addFilepattern("Test.txt").call(); |
|
|
|
commits.add(git.commit().setMessage("commit#3").call()); |
|
|
|
return commits; |
|
|
|
} |
|
|
|
} |