|
|
@@ -317,30 +317,31 @@ public class DiffFormatterTest extends RepositoryTestCase { |
|
|
|
File folder = new File(db.getDirectory().getParent(), "folder"); |
|
|
|
FileUtils.mkdir(folder); |
|
|
|
write(new File(folder, "folder.txt"), "folder"); |
|
|
|
Git git = new Git(db); |
|
|
|
git.add().addFilepattern(".").call(); |
|
|
|
git.commit().setMessage("Initial commit").call(); |
|
|
|
write(new File(folder, "folder.txt"), "folder change"); |
|
|
|
|
|
|
|
ByteArrayOutputStream os = new ByteArrayOutputStream(); |
|
|
|
DiffFormatter dfmt = new DiffFormatter(new SafeBufferedOutputStream(os)); |
|
|
|
dfmt.setRepository(db); |
|
|
|
dfmt.setPathFilter(PathFilter.create("folder")); |
|
|
|
DirCacheIterator oldTree = new DirCacheIterator(db.readDirCache()); |
|
|
|
FileTreeIterator newTree = new FileTreeIterator(db); |
|
|
|
dfmt.format(oldTree, newTree); |
|
|
|
dfmt.flush(); |
|
|
|
|
|
|
|
String actual = os.toString("UTF-8"); |
|
|
|
String expected = |
|
|
|
"diff --git a/folder/folder.txt b/folder/folder.txt\n" |
|
|
|
+ "index 0119635..95c4c65 100644\n" |
|
|
|
+ "--- a/folder/folder.txt\n" + "+++ b/folder/folder.txt\n" |
|
|
|
+ "@@ -1 +1 @@\n" + "-folder\n" |
|
|
|
+ "\\ No newline at end of file\n" + "+folder change\n" |
|
|
|
+ "\\ No newline at end of file\n"; |
|
|
|
|
|
|
|
assertEquals(expected, actual); |
|
|
|
try (Git git = new Git(db); |
|
|
|
ByteArrayOutputStream os = new ByteArrayOutputStream(); |
|
|
|
DiffFormatter dfmt = new DiffFormatter(new SafeBufferedOutputStream(os))) { |
|
|
|
git.add().addFilepattern(".").call(); |
|
|
|
git.commit().setMessage("Initial commit").call(); |
|
|
|
write(new File(folder, "folder.txt"), "folder change"); |
|
|
|
dfmt.setRepository(db); |
|
|
|
dfmt.setPathFilter(PathFilter.create("folder")); |
|
|
|
DirCacheIterator oldTree = new DirCacheIterator(db.readDirCache()); |
|
|
|
FileTreeIterator newTree = new FileTreeIterator(db); |
|
|
|
|
|
|
|
dfmt.format(oldTree, newTree); |
|
|
|
dfmt.flush(); |
|
|
|
|
|
|
|
String actual = os.toString("UTF-8"); |
|
|
|
String expected = |
|
|
|
"diff --git a/folder/folder.txt b/folder/folder.txt\n" |
|
|
|
+ "index 0119635..95c4c65 100644\n" |
|
|
|
+ "--- a/folder/folder.txt\n" + "+++ b/folder/folder.txt\n" |
|
|
|
+ "@@ -1 +1 @@\n" + "-folder\n" |
|
|
|
+ "\\ No newline at end of file\n" + "+folder change\n" |
|
|
|
+ "\\ No newline at end of file\n"; |
|
|
|
|
|
|
|
assertEquals(expected, actual); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
@@ -349,29 +350,30 @@ public class DiffFormatterTest extends RepositoryTestCase { |
|
|
|
File folder = new File(db.getDirectory().getParent(), "folder"); |
|
|
|
FileUtils.mkdir(folder); |
|
|
|
write(new File(folder, "folder.txt"), "folder"); |
|
|
|
Git git = new Git(db); |
|
|
|
git.add().addFilepattern(".").call(); |
|
|
|
RevCommit commit = git.commit().setMessage("Initial commit").call(); |
|
|
|
write(new File(folder, "folder.txt"), "folder change"); |
|
|
|
|
|
|
|
ByteArrayOutputStream os = new ByteArrayOutputStream(); |
|
|
|
DiffFormatter dfmt = new DiffFormatter(new SafeBufferedOutputStream(os)); |
|
|
|
dfmt.setRepository(db); |
|
|
|
dfmt.setPathFilter(PathFilter.create("folder")); |
|
|
|
dfmt.format(null, commit.getTree().getId()); |
|
|
|
dfmt.flush(); |
|
|
|
|
|
|
|
String actual = os.toString("UTF-8"); |
|
|
|
String expected = "diff --git a/folder/folder.txt b/folder/folder.txt\n" |
|
|
|
+ "new file mode 100644\n" |
|
|
|
+ "index 0000000..0119635\n" |
|
|
|
+ "--- /dev/null\n" |
|
|
|
+ "+++ b/folder/folder.txt\n" |
|
|
|
+ "@@ -0,0 +1 @@\n" |
|
|
|
+ "+folder\n" |
|
|
|
+ "\\ No newline at end of file\n"; |
|
|
|
|
|
|
|
assertEquals(expected, actual); |
|
|
|
try (Git git = new Git(db); |
|
|
|
ByteArrayOutputStream os = new ByteArrayOutputStream(); |
|
|
|
DiffFormatter dfmt = new DiffFormatter(new SafeBufferedOutputStream(os))) { |
|
|
|
git.add().addFilepattern(".").call(); |
|
|
|
RevCommit commit = git.commit().setMessage("Initial commit").call(); |
|
|
|
write(new File(folder, "folder.txt"), "folder change"); |
|
|
|
|
|
|
|
dfmt.setRepository(db); |
|
|
|
dfmt.setPathFilter(PathFilter.create("folder")); |
|
|
|
dfmt.format(null, commit.getTree().getId()); |
|
|
|
dfmt.flush(); |
|
|
|
|
|
|
|
String actual = os.toString("UTF-8"); |
|
|
|
String expected = "diff --git a/folder/folder.txt b/folder/folder.txt\n" |
|
|
|
+ "new file mode 100644\n" |
|
|
|
+ "index 0000000..0119635\n" |
|
|
|
+ "--- /dev/null\n" |
|
|
|
+ "+++ b/folder/folder.txt\n" |
|
|
|
+ "@@ -0,0 +1 @@\n" |
|
|
|
+ "+folder\n" |
|
|
|
+ "\\ No newline at end of file\n"; |
|
|
|
|
|
|
|
assertEquals(expected, actual); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
@@ -380,43 +382,45 @@ public class DiffFormatterTest extends RepositoryTestCase { |
|
|
|
File folder = new File(db.getDirectory().getParent(), "folder"); |
|
|
|
FileUtils.mkdir(folder); |
|
|
|
write(new File(folder, "folder.txt"), "folder"); |
|
|
|
Git git = new Git(db); |
|
|
|
git.add().addFilepattern(".").call(); |
|
|
|
RevCommit commit = git.commit().setMessage("Initial commit").call(); |
|
|
|
write(new File(folder, "folder.txt"), "folder change"); |
|
|
|
|
|
|
|
ByteArrayOutputStream os = new ByteArrayOutputStream(); |
|
|
|
DiffFormatter dfmt = new DiffFormatter(new SafeBufferedOutputStream(os)); |
|
|
|
dfmt.setRepository(db); |
|
|
|
dfmt.setPathFilter(PathFilter.create("folder")); |
|
|
|
dfmt.format(commit.getTree().getId(), null); |
|
|
|
dfmt.flush(); |
|
|
|
|
|
|
|
String actual = os.toString("UTF-8"); |
|
|
|
String expected = "diff --git a/folder/folder.txt b/folder/folder.txt\n" |
|
|
|
+ "deleted file mode 100644\n" |
|
|
|
+ "index 0119635..0000000\n" |
|
|
|
+ "--- a/folder/folder.txt\n" |
|
|
|
+ "+++ /dev/null\n" |
|
|
|
+ "@@ -1 +0,0 @@\n" |
|
|
|
+ "-folder\n" |
|
|
|
+ "\\ No newline at end of file\n"; |
|
|
|
|
|
|
|
assertEquals(expected, actual); |
|
|
|
try (Git git = new Git(db); |
|
|
|
ByteArrayOutputStream os = new ByteArrayOutputStream(); |
|
|
|
DiffFormatter dfmt = new DiffFormatter(new SafeBufferedOutputStream(os));) { |
|
|
|
git.add().addFilepattern(".").call(); |
|
|
|
RevCommit commit = git.commit().setMessage("Initial commit").call(); |
|
|
|
write(new File(folder, "folder.txt"), "folder change"); |
|
|
|
|
|
|
|
dfmt.setRepository(db); |
|
|
|
dfmt.setPathFilter(PathFilter.create("folder")); |
|
|
|
dfmt.format(commit.getTree().getId(), null); |
|
|
|
dfmt.flush(); |
|
|
|
|
|
|
|
String actual = os.toString("UTF-8"); |
|
|
|
String expected = "diff --git a/folder/folder.txt b/folder/folder.txt\n" |
|
|
|
+ "deleted file mode 100644\n" |
|
|
|
+ "index 0119635..0000000\n" |
|
|
|
+ "--- a/folder/folder.txt\n" |
|
|
|
+ "+++ /dev/null\n" |
|
|
|
+ "@@ -1 +0,0 @@\n" |
|
|
|
+ "-folder\n" |
|
|
|
+ "\\ No newline at end of file\n"; |
|
|
|
|
|
|
|
assertEquals(expected, actual); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testDiffNullToNull() throws Exception { |
|
|
|
ByteArrayOutputStream os = new ByteArrayOutputStream(); |
|
|
|
DiffFormatter dfmt = new DiffFormatter(new SafeBufferedOutputStream(os)); |
|
|
|
dfmt.setRepository(db); |
|
|
|
dfmt.format((AnyObjectId) null, null); |
|
|
|
dfmt.flush(); |
|
|
|
try (ByteArrayOutputStream os = new ByteArrayOutputStream(); |
|
|
|
DiffFormatter dfmt = new DiffFormatter(new SafeBufferedOutputStream(os))) { |
|
|
|
dfmt.setRepository(db); |
|
|
|
dfmt.format((AnyObjectId) null, null); |
|
|
|
dfmt.flush(); |
|
|
|
|
|
|
|
String actual = os.toString("UTF-8"); |
|
|
|
String expected = ""; |
|
|
|
String actual = os.toString("UTF-8"); |
|
|
|
String expected = ""; |
|
|
|
|
|
|
|
assertEquals(expected, actual); |
|
|
|
assertEquals(expected, actual); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private static String makeDiffHeader(String pathA, String pathB, |