Browse Source

Merge branch 'stable-4.7' into stable-4.8

* stable-4.7:
  JGit v4.7.1.201706071930-r
  ArchiveCommand: Create prefix entry with commit time

Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
Change-Id: Id4df76da84fde253ce04484f3437816dc145b4f2
stable-4.8
David Pursehouse 8 years ago
parent
commit
39ea39e817
  1. 8
      org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ArchiveTest.java
  2. 6
      org.eclipse.jgit/src/org/eclipse/jgit/api/ArchiveCommand.java

8
org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/ArchiveTest.java

@ -348,7 +348,7 @@ public class ArchiveTest extends CLIRepositoryTestCase {
commitBazAndFooSlashBar(); commitBazAndFooSlashBar();
byte[] result = CLIGitCommand.executeRaw( byte[] result = CLIGitCommand.executeRaw(
"git archive --prefix=x/ --format=zip master", db).outBytes(); "git archive --prefix=x/ --format=zip master", db).outBytes();
String[] expect = { "x/baz", "x/foo/", "x/foo/bar" }; String[] expect = { "x/", "x/baz", "x/foo/", "x/foo/bar" };
String[] actual = listZipEntries(result); String[] actual = listZipEntries(result);
Arrays.sort(expect); Arrays.sort(expect);
@ -361,7 +361,7 @@ public class ArchiveTest extends CLIRepositoryTestCase {
commitBazAndFooSlashBar(); commitBazAndFooSlashBar();
byte[] result = CLIGitCommand.executeRaw( byte[] result = CLIGitCommand.executeRaw(
"git archive --prefix=x/ --format=tar master", db).outBytes(); "git archive --prefix=x/ --format=tar master", db).outBytes();
String[] expect = { "x/baz", "x/foo/", "x/foo/bar" }; String[] expect = { "x/", "x/baz", "x/foo/", "x/foo/bar" };
String[] actual = listTarEntries(result); String[] actual = listTarEntries(result);
Arrays.sort(expect); Arrays.sort(expect);
@ -380,7 +380,7 @@ public class ArchiveTest extends CLIRepositoryTestCase {
commitFoo(); commitFoo();
byte[] result = CLIGitCommand.executeRaw( byte[] result = CLIGitCommand.executeRaw(
"git archive --prefix=x// --format=zip master", db).outBytes(); "git archive --prefix=x// --format=zip master", db).outBytes();
String[] expect = { "x//foo" }; String[] expect = { "x/", "x//foo" };
assertArrayEquals(expect, listZipEntries(result)); assertArrayEquals(expect, listZipEntries(result));
} }
@ -389,7 +389,7 @@ public class ArchiveTest extends CLIRepositoryTestCase {
commitFoo(); commitFoo();
byte[] result = CLIGitCommand.executeRaw( byte[] result = CLIGitCommand.executeRaw(
"git archive --prefix=x// --format=tar master", db).outBytes(); "git archive --prefix=x// --format=tar master", db).outBytes();
String[] expect = { "x//foo" }; String[] expect = { "x/", "x//foo" };
assertArrayEquals(expect, listTarEntries(result)); assertArrayEquals(expect, listTarEntries(result));
} }

6
org.eclipse.jgit/src/org/eclipse/jgit/api/ArchiveCommand.java

@ -403,6 +403,12 @@ public class ArchiveCommand extends GitCommand<OutputStream> {
if (!paths.isEmpty()) if (!paths.isEmpty())
walk.setFilter(PathFilterGroup.createFromStrings(paths)); walk.setFilter(PathFilterGroup.createFromStrings(paths));
// Put base directory into archive
if (pfx.endsWith("/")) { //$NON-NLS-1$
fmt.putEntry(outa, tree, pfx.replaceAll("[/]+$", "/"), //$NON-NLS-1$ //$NON-NLS-2$
FileMode.TREE, null);
}
while (walk.next()) { while (walk.next()) {
String name = pfx + walk.getPathString(); String name = pfx + walk.getPathString();
FileMode mode = walk.getFileMode(0); FileMode mode = walk.getFileMode(0);

Loading…
Cancel
Save