From ed2e515ddff192ee8fd121e8bb6566b4e5ab33f2 Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Wed, 22 May 2019 08:03:29 +0200 Subject: [PATCH 01/18] Fix API problem filters Change-Id: I566391d7c51875f30cf580d64e6784819985709f Signed-off-by: Matthias Sohn --- org.eclipse.jgit.lfs.server/.settings/.api_filters | 2 +- org.eclipse.jgit/.settings/.api_filters | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/org.eclipse.jgit.lfs.server/.settings/.api_filters b/org.eclipse.jgit.lfs.server/.settings/.api_filters index ad4b9fc88..84e6b19b6 100644 --- a/org.eclipse.jgit.lfs.server/.settings/.api_filters +++ b/org.eclipse.jgit.lfs.server/.settings/.api_filters @@ -3,7 +3,7 @@ - + diff --git a/org.eclipse.jgit/.settings/.api_filters b/org.eclipse.jgit/.settings/.api_filters index fdacadf9a..da0a3f44c 100644 --- a/org.eclipse.jgit/.settings/.api_filters +++ b/org.eclipse.jgit/.settings/.api_filters @@ -3,7 +3,7 @@ - + From 201bbd6eadabef7f386fa936a505b9312519ab4e Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Wed, 8 May 2019 02:36:30 +0200 Subject: [PATCH 02/18] Fix FileSnapshot's consideration of file size * fix equals() and hashCode() methods to consider size * fix toString() to show size Change-Id: I5485db55eda5110121efd65d86c7166b3b2e93d0 Signed-off-by: Matthias Sohn --- .../internal/storage/file/FileSnapshot.java | 42 ++++++++++++------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java index f26eba336..cd72c8198 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java @@ -50,6 +50,7 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; +import java.util.Objects; import org.eclipse.jgit.util.FS; @@ -235,37 +236,46 @@ public void setClean(FileSnapshot other) { * @return true if the two snapshots share the same information. */ public boolean equals(FileSnapshot other) { - return lastModified == other.lastModified; + return lastModified == other.lastModified && size == other.size; } /** {@inheritDoc} */ @Override - public boolean equals(Object other) { - if (other instanceof FileSnapshot) - return equals((FileSnapshot) other); - return false; + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (!(obj instanceof FileSnapshot)) { + return false; + } + FileSnapshot other = (FileSnapshot) obj; + return equals(other); } /** {@inheritDoc} */ @Override public int hashCode() { - // This is pretty pointless, but override hashCode to ensure that - // x.hashCode() == y.hashCode() when x.equals(y) is true. - // - return (int) lastModified; + return Objects.hash(Long.valueOf(lastModified), Long.valueOf(size)); } /** {@inheritDoc} */ + @SuppressWarnings("nls") @Override public String toString() { - if (this == DIRTY) - return "DIRTY"; //$NON-NLS-1$ - if (this == MISSING_FILE) - return "MISSING_FILE"; //$NON-NLS-1$ - DateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", //$NON-NLS-1$ + if (this == DIRTY) { + return "DIRTY"; + } + if (this == MISSING_FILE) { + return "MISSING_FILE"; + } + DateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.US); - return "FileSnapshot[modified: " + f.format(new Date(lastModified)) //$NON-NLS-1$ - + ", read: " + f.format(new Date(lastRead)) + "]"; //$NON-NLS-1$ //$NON-NLS-2$ + return "FileSnapshot[modified: " + f.format(new Date(lastModified)) + + ", read: " + f.format(new Date(lastRead)) + ", size:" + size + + "]"; } private boolean notRacyClean(long read) { From b513b7747713a505e19e237ac2e7f8d9c699bc4d Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Sun, 5 May 2019 03:18:23 +0200 Subject: [PATCH 03/18] Measure file timestamp resolution used in FileSnapshot FileSnapshot.notRacyClean() assumed a worst case filesystem timestamp resolution of 2.5 sec (FAT has a resolution of 2 sec). Instead measure timestamp resolution to avoid unnecessary IO caused by false positives in detecting the racy git problem caused by finite filesystem timestamp resolution [1]. Cache the measured resolution per FileStore since timestamp resolution depends on the respective filesystem type. If timestamp resolution cannot be measured or fails due to an exception fallback to the worst case FAT timestamp resolution and avoid caching this value. Add a 10% safety margin in FileSnapshot.notRacyClean(), though running FsTest.testFsTimestampResolution() 1000 times which is not using a safety margin didn't fail on Mac using APFS and Java 8, 11, 12. Measured Java file timestamp resolution: [2] [1] https://github.com/git/git/blob/master/Documentation/technical/racy-git.txt [2] https://docs.google.com/spreadsheets/d/1imy0y6WmRqBf0kjCxzxj2X7M50eIVfa7oaUIzEOHmjo Bug: 546891 Change-Id: I493f3b57b6b306285ffa7d392339d253e5966ab8 Signed-off-by: Matthias Sohn --- .../jgit/junit/RepositoryTestCase.java | 4 +- .../tst/org/eclipse/jgit/util/FSTest.java | 37 +++++++ org.eclipse.jgit/.settings/.api_filters | 14 +++ .../internal/storage/file/FileSnapshot.java | 36 +++++-- .../src/org/eclipse/jgit/util/FS.java | 100 ++++++++++++++++++ .../src/org/eclipse/jgit/util/FileUtils.java | 15 +++ 6 files changed, 192 insertions(+), 14 deletions(-) diff --git a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/RepositoryTestCase.java b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/RepositoryTestCase.java index 95fe18b83..5eddb3d08 100644 --- a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/RepositoryTestCase.java +++ b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/RepositoryTestCase.java @@ -374,9 +374,7 @@ public static long fsTick(File lastFile) throws InterruptedException, while (actTime <= startTime) { Thread.sleep(sleepTime); sleepTime *= 2; - try (FileOutputStream fos = new FileOutputStream(tmp)) { - // Do nothing - } + FileUtils.touch(tmp.toPath()); actTime = fs.lastModified(tmp); } return actTime; diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FSTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FSTest.java index 2c8273d03..59c8e31c0 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FSTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FSTest.java @@ -52,9 +52,16 @@ import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.attribute.FileTime; import java.nio.file.attribute.PosixFileAttributeView; import java.nio.file.attribute.PosixFilePermission; +import java.time.Duration; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.Locale; import java.util.Set; +import java.util.concurrent.TimeUnit; import org.eclipse.jgit.errors.CommandFailedException; import org.eclipse.jgit.junit.RepositoryTestCase; @@ -186,4 +193,34 @@ public void testReadPipeCommandStartFailure() new String[] { "this-command-does-not-exist" }, Charset.defaultCharset().name()); } + + @Test + public void testFsTimestampResolution() throws Exception { + DateTimeFormatter formatter = DateTimeFormatter + .ofPattern("uuuu-MMM-dd HH:mm:ss.nnnnnnnnn", Locale.ENGLISH) + .withZone(ZoneId.systemDefault()); + Path dir = Files.createTempDirectory("probe-filesystem"); + Duration resolution = FS.getFsTimerResolution(dir); + long resolutionNs = resolution.toNanos(); + assertTrue(resolutionNs > 0); + for (int i = 0; i < 10; i++) { + Path f = null; + try { + f = dir.resolve("testTimestampResolution" + i); + Files.createFile(f); + FileUtils.touch(f); + FileTime t1 = Files.getLastModifiedTime(f); + TimeUnit.NANOSECONDS.sleep(resolutionNs); + FileUtils.touch(f); + FileTime t2 = Files.getLastModifiedTime(f); + assertTrue(String.format( + "expected t2=%s to be larger than t1=%s\nsince file timestamp resolution was measured to be %,d ns", + formatter.format(t2.toInstant()), + formatter.format(t1.toInstant()), + Long.valueOf(resolutionNs)), t2.compareTo(t1) > 0); + } finally { + Files.delete(f); + } + } + } } diff --git a/org.eclipse.jgit/.settings/.api_filters b/org.eclipse.jgit/.settings/.api_filters index da0a3f44c..a0fafdb1b 100644 --- a/org.eclipse.jgit/.settings/.api_filters +++ b/org.eclipse.jgit/.settings/.api_filters @@ -59,5 +59,19 @@ + + + + + + + + + + + + + + diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java index cd72c8198..d6b5fe57e 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java @@ -48,10 +48,12 @@ import java.nio.file.attribute.BasicFileAttributes; import java.text.DateFormat; import java.text.SimpleDateFormat; +import java.time.Duration; import java.util.Date; import java.util.Locale; import java.util.Objects; +import org.eclipse.jgit.annotations.NonNull; import org.eclipse.jgit.util.FS; /** @@ -85,7 +87,8 @@ public class FileSnapshot { * file, but only after {@link #isModified(File)} gets invoked. The returned * snapshot contains only invalid status information. */ - public static final FileSnapshot DIRTY = new FileSnapshot(-1, -1, UNKNOWN_SIZE); + public static final FileSnapshot DIRTY = new FileSnapshot(-1, -1, + UNKNOWN_SIZE, Duration.ZERO); /** * A FileSnapshot that is clean if the file does not exist. @@ -94,7 +97,8 @@ public class FileSnapshot { * file to be clean. {@link #isModified(File)} will return false if the file * path does not exist. */ - public static final FileSnapshot MISSING_FILE = new FileSnapshot(0, 0, 0) { + public static final FileSnapshot MISSING_FILE = new FileSnapshot(0, 0, 0, + Duration.ZERO) { @Override public boolean isModified(File path) { return FS.DETECTED.exists(path); @@ -115,6 +119,8 @@ public static FileSnapshot save(File path) { long read = System.currentTimeMillis(); long modified; long size; + Duration fsTimerResolution = FS + .getFsTimerResolution(path.toPath().getParent()); try { BasicFileAttributes fileAttributes = FS.DETECTED.fileAttributes(path); modified = fileAttributes.lastModifiedTime().toMillis(); @@ -123,7 +129,7 @@ public static FileSnapshot save(File path) { modified = path.lastModified(); size = path.length(); } - return new FileSnapshot(read, modified, size); + return new FileSnapshot(read, modified, size, fsTimerResolution); } /** @@ -131,6 +137,11 @@ public static FileSnapshot save(File path) { * already known. *

* This method should be invoked before the file is accessed. + *

+ * Note that this method cannot rely on measuring file timestamp resolution + * to avoid racy git issues caused by finite file timestamp resolution since + * it's unknown in which filesystem the file is located. Hence the worst + * case fallback for timestamp resolution is used. * * @param modified * the last modification time of the file @@ -138,7 +149,7 @@ public static FileSnapshot save(File path) { */ public static FileSnapshot save(long modified) { final long read = System.currentTimeMillis(); - return new FileSnapshot(read, modified, -1); + return new FileSnapshot(read, modified, -1, Duration.ZERO); } /** Last observed modification time of the path. */ @@ -155,11 +166,16 @@ public static FileSnapshot save(long modified) { * When set to {@link #UNKNOWN_SIZE} the size is not considered for modification checks. */ private final long size; - private FileSnapshot(long read, long modified, long size) { + /** measured filesystem timestamp resolution */ + private Duration fsTimestampResolution; + + private FileSnapshot(long read, long modified, long size, + @NonNull Duration fsTimestampResolution) { this.lastRead = read; this.lastModified = modified; - this.cannotBeRacilyClean = notRacyClean(read); + this.fsTimestampResolution = fsTimestampResolution; this.size = size; + this.cannotBeRacilyClean = notRacyClean(read); } /** @@ -279,11 +295,9 @@ public String toString() { } private boolean notRacyClean(long read) { - // The last modified time granularity of FAT filesystems is 2 seconds. - // Using 2.5 seconds here provides a reasonably high assurance that - // a modification was not missed. - // - return read - lastModified > 2500; + // add a 10% safety margin + long racyNanos = (fsTimestampResolution.toNanos() + 1) * 11 / 10; + return (read - lastModified) * 1_000_000 > racyNanos; } private boolean isModified(long currLastModified) { diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java index 7e854c750..180123e09 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java @@ -53,23 +53,31 @@ import java.io.OutputStream; import java.io.PrintStream; import java.nio.charset.Charset; +import java.nio.file.AccessDeniedException; +import java.nio.file.FileStore; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.attribute.BasicFileAttributes; +import java.nio.file.attribute.FileTime; import java.security.AccessController; import java.security.PrivilegedAction; import java.text.MessageFormat; +import java.time.Duration; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.Objects; import java.util.Optional; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; +import org.eclipse.jgit.annotations.NonNull; import org.eclipse.jgit.annotations.Nullable; import org.eclipse.jgit.api.errors.JGitInternalException; import org.eclipse.jgit.errors.CommandFailedException; @@ -178,6 +186,83 @@ public int getRc() { } } + private static final class FileStoreAttributeCache { + /** + * The last modified time granularity of FAT filesystems is 2 seconds. + */ + private static final Duration FALLBACK_TIMESTAMP_RESOLUTION = Duration + .ofMillis(2000); + + private static final Map attributeCache = new ConcurrentHashMap<>(); + + static Duration getFsTimestampResolution(Path file) { + try { + Path dir = Files.isDirectory(file) ? file : file.getParent(); + if (!dir.toFile().canWrite()) { + // can not determine FileStore of an unborn directory or in + // a read-only directory + return FALLBACK_TIMESTAMP_RESOLUTION; + } + FileStore s = Files.getFileStore(dir); + FileStoreAttributeCache c = attributeCache.get(s); + if (c == null) { + c = new FileStoreAttributeCache(dir); + attributeCache.put(s, c); + if (LOG.isDebugEnabled()) { + LOG.debug(c.toString()); + } + } + return c.getFsTimestampResolution(); + + } catch (IOException | InterruptedException e) { + LOG.warn(e.getMessage(), e); + return FALLBACK_TIMESTAMP_RESOLUTION; + } + } + + private Duration fsTimestampResolution; + + Duration getFsTimestampResolution() { + return fsTimestampResolution; + } + + private FileStoreAttributeCache(Path dir) + throws IOException, InterruptedException { + Path probe = dir.resolve(".probe-" + UUID.randomUUID()); //$NON-NLS-1$ + Files.createFile(probe); + try { + FileTime startTime = Files.getLastModifiedTime(probe); + FileTime actTime = startTime; + long sleepTime = 512; + while (actTime.compareTo(startTime) <= 0) { + TimeUnit.NANOSECONDS.sleep(sleepTime); + FileUtils.touch(probe); + actTime = Files.getLastModifiedTime(probe); + // limit sleep time to max. 100ms + if (sleepTime < 100_000_000L) { + sleepTime = sleepTime * 2; + } + } + fsTimestampResolution = Duration.between(startTime.toInstant(), + actTime.toInstant()); + } catch (AccessDeniedException e) { + LOG.error(e.getLocalizedMessage(), e); + } finally { + Files.delete(probe); + } + } + + @SuppressWarnings("nls") + @Override + public String toString() { + return "FileStoreAttributeCache[" + attributeCache.keySet() + .stream() + .map(key -> "FileStore[" + key + "]: fsTimestampResolution=" + + attributeCache.get(key).getFsTimestampResolution()) + .collect(Collectors.joining(",\n")) + "]"; + } + } + /** The auto-detected implementation selected for this operating system and JRE. */ public static final FS DETECTED = detect(); @@ -219,6 +304,21 @@ public static FS detect(Boolean cygwinUsed) { return factory.detect(cygwinUsed); } + /** + * Get an estimate for the filesystem timestamp resolution from a cache of + * timestamp resolution per FileStore, if not yet available it is measured + * for a probe file under the given directory. + * + * @param dir + * the directory under which the probe file will be created to + * measure the timer resolution. + * @return measured filesystem timestamp resolution + * @since 5.2.3 + */ + public static Duration getFsTimerResolution(@NonNull Path dir) { + return FileStoreAttributeCache.getFsTimestampResolution(dir); + } + private volatile Holder userHome; private volatile Holder gitSystemConfig; diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java index 97f480dd3..9bba6ca8a 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FileUtils.java @@ -49,6 +49,7 @@ import java.io.File; import java.io.IOException; +import java.io.OutputStream; import java.nio.file.AtomicMoveNotSupportedException; import java.nio.file.CopyOption; import java.nio.file.Files; @@ -908,4 +909,18 @@ public static String pathToString(File file) { } return path; } + + /** + * Touch the given file + * + * @param f + * the file to touch + * @throws IOException + * @since 5.2.3 + */ + public static void touch(Path f) throws IOException { + try (OutputStream fos = Files.newOutputStream(f)) { + // touch the file + } + } } From 91101414ae1378cd6a0a6d2673e0e66f4a858828 Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Tue, 7 May 2019 23:55:54 +0200 Subject: [PATCH 04/18] Include filekey file attribute when comparing FileSnapshots Due to finite filesystem timestamp resolution the last modified timestamp of files cannot detect file changes which happened in the immediate past (less than one filesystem timer tick ago). Some filesystems expose unique file identifiers, e.g. inodes in Posix filesystems which are named filekeys in Java's BasicFileAttributes. Use them as another means to detect file modifications based on stat information. Running git gc on a repository yields a new packfile with the same id as a packfile which existed before the gc if these packfiles contain the same set of objects. The content of the old and the new packfile might differ if a different PackConfig was used when writing the packfile. Considering filekeys in FileSnapshot may help to detect such packfile modifications. Bug: 546891 Change-Id: I711a80328c55e1a31171d540880b8e80ec1fe095 Signed-off-by: Matthias Sohn --- .../storage/file/FileSnapshotTest.java | 28 ++++++++++ .../internal/storage/file/FileSnapshot.java | 52 +++++++++++++++---- 2 files changed, 71 insertions(+), 9 deletions(-) diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java index 9ceaa345d..91273362f 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java @@ -47,6 +47,9 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.StandardCopyOption; +import java.nio.file.attribute.FileTime; import java.util.ArrayList; import java.util.List; @@ -127,6 +130,31 @@ public void testNewFileNoWait() throws Exception { assertTrue(save.isModified(f1)); } + /** + * Simulate packfile replacement in same file which may occur if set of + * objects in the pack is the same but pack config was different. On Posix + * filesystems this should change the inode (filekey in java.nio + * terminology). + * + * @throws Exception + */ + @Test + public void testSimulatePackfileReplacement() throws Exception { + File f1 = createFile("file"); // inode y + File f2 = createFile("fool"); // Guarantees new inode x + // wait on f2 since this method resets lastModified of the file + // and leaves lastModified of f1 untouched + waitNextSec(f2); + waitNextSec(f2); + FileTime timestamp = Files.getLastModifiedTime(f1.toPath()); + FileSnapshot save = FileSnapshot.save(f1); + Files.move(f2.toPath(), f1.toPath(), // Now "file" is inode x + StandardCopyOption.REPLACE_EXISTING, + StandardCopyOption.ATOMIC_MOVE); + Files.setLastModifiedTime(f1.toPath(), timestamp); + assertTrue(save.isModified(f1)); + } + private File createFile(String string) throws IOException { trash.mkdirs(); File f = File.createTempFile(string, "tdat", trash); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java index d6b5fe57e..09e15938e 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java @@ -80,6 +80,8 @@ public class FileSnapshot { */ public static final long UNKNOWN_SIZE = -1; + private static final Object MISSING_FILEKEY = new Object(); + /** * A FileSnapshot that is considered to always be modified. *

@@ -88,7 +90,7 @@ public class FileSnapshot { * snapshot contains only invalid status information. */ public static final FileSnapshot DIRTY = new FileSnapshot(-1, -1, - UNKNOWN_SIZE, Duration.ZERO); + UNKNOWN_SIZE, Duration.ZERO, MISSING_FILEKEY); /** * A FileSnapshot that is clean if the file does not exist. @@ -98,7 +100,7 @@ public class FileSnapshot { * path does not exist. */ public static final FileSnapshot MISSING_FILE = new FileSnapshot(0, 0, 0, - Duration.ZERO) { + Duration.ZERO, MISSING_FILEKEY) { @Override public boolean isModified(File path) { return FS.DETECTED.exists(path); @@ -119,17 +121,26 @@ public static FileSnapshot save(File path) { long read = System.currentTimeMillis(); long modified; long size; + Object fileKey = null; Duration fsTimerResolution = FS .getFsTimerResolution(path.toPath().getParent()); try { BasicFileAttributes fileAttributes = FS.DETECTED.fileAttributes(path); modified = fileAttributes.lastModifiedTime().toMillis(); size = fileAttributes.size(); + fileKey = getFileKey(fileAttributes); } catch (IOException e) { modified = path.lastModified(); size = path.length(); + fileKey = MISSING_FILEKEY; } - return new FileSnapshot(read, modified, size, fsTimerResolution); + return new FileSnapshot(read, modified, size, fsTimerResolution, + fileKey); + } + + private static Object getFileKey(BasicFileAttributes fileAttributes) { + Object fileKey = fileAttributes.fileKey(); + return fileKey == null ? MISSING_FILEKEY : fileKey; } /** @@ -149,7 +160,8 @@ public static FileSnapshot save(File path) { */ public static FileSnapshot save(long modified) { final long read = System.currentTimeMillis(); - return new FileSnapshot(read, modified, -1, Duration.ZERO); + return new FileSnapshot(read, modified, -1, Duration.ZERO, + MISSING_FILEKEY); } /** Last observed modification time of the path. */ @@ -169,13 +181,20 @@ public static FileSnapshot save(long modified) { /** measured filesystem timestamp resolution */ private Duration fsTimestampResolution; + /** + * Object that uniquely identifies the given file, or {@code + * null} if a file key is not available + */ + private Object fileKey; + private FileSnapshot(long read, long modified, long size, - @NonNull Duration fsTimestampResolution) { + @NonNull Duration fsTimestampResolution, @NonNull Object fileKey) { this.lastRead = read; this.lastModified = modified; this.fsTimestampResolution = fsTimestampResolution; this.size = size; this.cannotBeRacilyClean = notRacyClean(read); + this.fileKey = fileKey; } /** @@ -204,15 +223,20 @@ public long size() { public boolean isModified(File path) { long currLastModified; long currSize; + Object currFileKey; try { BasicFileAttributes fileAttributes = FS.DETECTED.fileAttributes(path); currLastModified = fileAttributes.lastModifiedTime().toMillis(); currSize = fileAttributes.size(); + currFileKey = getFileKey(fileAttributes); } catch (IOException e) { currLastModified = path.lastModified(); currSize = path.length(); + currFileKey = MISSING_FILEKEY; } - return (currSize != UNKNOWN_SIZE && currSize != size) || isModified(currLastModified); + return isSizeChanged(currSize) + || isFileKeyChanged(currFileKey) + || isModified(currLastModified); } /** @@ -252,7 +276,8 @@ public void setClean(FileSnapshot other) { * @return true if the two snapshots share the same information. */ public boolean equals(FileSnapshot other) { - return lastModified == other.lastModified && size == other.size; + return lastModified == other.lastModified && size == other.size + && Objects.equals(fileKey, other.fileKey); } /** {@inheritDoc} */ @@ -274,7 +299,8 @@ public boolean equals(Object obj) { /** {@inheritDoc} */ @Override public int hashCode() { - return Objects.hash(Long.valueOf(lastModified), Long.valueOf(size)); + return Objects.hash(Long.valueOf(lastModified), Long.valueOf(size), + fileKey); } /** {@inheritDoc} */ @@ -291,7 +317,7 @@ public String toString() { Locale.US); return "FileSnapshot[modified: " + f.format(new Date(lastModified)) + ", read: " + f.format(new Date(lastRead)) + ", size:" + size - + "]"; + + ", fileKey: " + fileKey + "]"; } private boolean notRacyClean(long read) { @@ -327,4 +353,12 @@ private boolean isModified(long currLastModified) { // return true; } + + private boolean isFileKeyChanged(Object currFileKey) { + return currFileKey != MISSING_FILEKEY && !currFileKey.equals(fileKey); + } + + private boolean isSizeChanged(long currSize) { + return currSize != UNKNOWN_SIZE && currSize != size; + } } From f1577909e7f9c5cd886099ff774ffb83723cdbf0 Mon Sep 17 00:00:00 2001 From: Marc Strapetz Date: Wed, 22 May 2019 23:51:12 +0200 Subject: [PATCH 05/18] ObjectDirectory: fix closing of obsolete packs This resolves a regression introduced in fef78212. Change-Id: Ibb4521635a87012520566efc70870c59d11be874 Signed-off-by: Marc Strapetz --- .../eclipse/jgit/internal/storage/file/ObjectDirectory.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java index 38e822ea7..e35b9c9e4 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java @@ -911,9 +911,10 @@ private PackList scanPacksImpl(PackList old) { final String packName = base + PACK.getExtension(); final File packFile = new File(packDirectory, packName); - final PackFile oldPack = forReuse.remove(packName); + final PackFile oldPack = forReuse.get(packName); if (oldPack != null && !oldPack.getFileSnapshot().isModified(packFile)) { + forReuse.remove(packName); list.add(oldPack); continue; } From 0e33b32ab73f23150802db778bfe43ba6dafa32f Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Wed, 8 May 2019 03:19:15 +0200 Subject: [PATCH 06/18] Fix FileSnapshotTest.testNewFileNoWait() to match its javadoc testNewFileNoWait() was identical to testNewFileWithWait() but claims it doesn't wait at all. Hence remove the waits. Change-Id: I49b8ca5cb49a43c55fe61870c18c42f32fb4b74d Signed-off-by: Matthias Sohn --- .../eclipse/jgit/internal/storage/file/FileSnapshotTest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java index 91273362f..68cc27371 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java @@ -124,9 +124,7 @@ public void testNewFileWithWait() throws Exception { @Test public void testNewFileNoWait() throws Exception { File f1 = createFile("newfile"); - waitNextSec(f1); FileSnapshot save = FileSnapshot.save(f1); - Thread.sleep(1500); assertTrue(save.isModified(f1)); } From 1e8b68cbc5108f7d028c70e005bb401584abedcb Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Wed, 22 May 2019 14:42:43 +0200 Subject: [PATCH 07/18] Tune max heap size for tests This is an attempt to fix crashes observed on the new Jenkins infrastructure running on Kubernetes [1]. Increase it to 512m for - org.eclipse.jgit.ant.test - org.eclipse.jgit.http.test - org.eclipse.jgit.lfs.server.test - org.eclipse.jgit.lfs.test - org.eclipse.jgit.pgm.test Decrease it to 768m for - org.eclipse.jgit.test [1] e.g. https://ci-staging.eclipse.org/jgit/job/stable/job/jgit.gerrit/16074/console Change-Id: Id074ed0f7bcb8a13da649a547342af2a08439d9f Signed-off-by: Matthias Sohn (cherry picked from commit e19e859977525c2a39aaa928dfdef20e5fab7e3c) --- org.eclipse.jgit.ant.test/pom.xml | 2 +- org.eclipse.jgit.http.test/pom.xml | 2 +- org.eclipse.jgit.lfs.server.test/BUILD | 2 +- org.eclipse.jgit.lfs.server.test/pom.xml | 2 +- org.eclipse.jgit.lfs.test/pom.xml | 2 +- org.eclipse.jgit.pgm.test/BUILD | 2 +- org.eclipse.jgit.pgm.test/pom.xml | 2 +- org.eclipse.jgit.test/pom.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/org.eclipse.jgit.ant.test/pom.xml b/org.eclipse.jgit.ant.test/pom.xml index 292d45925..26a33ee43 100644 --- a/org.eclipse.jgit.ant.test/pom.xml +++ b/org.eclipse.jgit.ant.test/pom.xml @@ -105,7 +105,7 @@ maven-surefire-plugin - -Xmx256m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=${project.build.directory} + @{argLine} -Xmx512m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=${project.build.directory} diff --git a/org.eclipse.jgit.http.test/pom.xml b/org.eclipse.jgit.http.test/pom.xml index 3cbfa36ee..4455f9174 100644 --- a/org.eclipse.jgit.http.test/pom.xml +++ b/org.eclipse.jgit.http.test/pom.xml @@ -139,7 +139,7 @@ maven-surefire-plugin - -Djava.io.tmpdir=${project.build.directory} -Xmx300m + @{argLine} -Djava.io.tmpdir=${project.build.directory} -Xmx512m **/*Test.java **/*Tests.java diff --git a/org.eclipse.jgit.lfs.server.test/BUILD b/org.eclipse.jgit.lfs.server.test/BUILD index 1341dd601..fb0d6918f 100644 --- a/org.eclipse.jgit.lfs.server.test/BUILD +++ b/org.eclipse.jgit.lfs.server.test/BUILD @@ -32,7 +32,7 @@ junit_tests( exclude = TEST_BASE, ), jvm_flags = [ - "-Xmx256m", + "-Xmx512m", "-Dfile.encoding=UTF-8", ], tags = ["lfs-server"], diff --git a/org.eclipse.jgit.lfs.server.test/pom.xml b/org.eclipse.jgit.lfs.server.test/pom.xml index 2cbbd021e..2f6b1bd84 100644 --- a/org.eclipse.jgit.lfs.server.test/pom.xml +++ b/org.eclipse.jgit.lfs.server.test/pom.xml @@ -137,7 +137,7 @@ maven-surefire-plugin - -Djava.io.tmpdir=${project.build.directory} -Xmx300m + @{argLine} -Djava.io.tmpdir=${project.build.directory} -Xmx512m diff --git a/org.eclipse.jgit.lfs.test/pom.xml b/org.eclipse.jgit.lfs.test/pom.xml index a7b3acbd6..12daec66f 100644 --- a/org.eclipse.jgit.lfs.test/pom.xml +++ b/org.eclipse.jgit.lfs.test/pom.xml @@ -111,7 +111,7 @@ maven-surefire-plugin - -Djava.io.tmpdir=${project.build.directory} -Xmx300m + @{argLine} -Djava.io.tmpdir=${project.build.directory} -Xmx512m diff --git a/org.eclipse.jgit.pgm.test/BUILD b/org.eclipse.jgit.pgm.test/BUILD index 5bedf9ade..f32fa12de 100644 --- a/org.eclipse.jgit.pgm.test/BUILD +++ b/org.eclipse.jgit.pgm.test/BUILD @@ -7,7 +7,7 @@ junit_tests( name = "pgm", srcs = glob(["tst/**/*.java"]), jvm_flags = [ - "-Xmx256m", + "-Xmx512m", "-Dfile.encoding=UTF-8", ], tags = ["pgm"], diff --git a/org.eclipse.jgit.pgm.test/pom.xml b/org.eclipse.jgit.pgm.test/pom.xml index e4de18d78..d6b87ae10 100644 --- a/org.eclipse.jgit.pgm.test/pom.xml +++ b/org.eclipse.jgit.pgm.test/pom.xml @@ -109,7 +109,7 @@ maven-surefire-plugin - -Djava.io.tmpdir=${project.build.directory} + @{argLine} -Xmx512m -Djava.io.tmpdir=${project.build.directory} diff --git a/org.eclipse.jgit.test/pom.xml b/org.eclipse.jgit.test/pom.xml index b8719b972..ca82a9883 100644 --- a/org.eclipse.jgit.test/pom.xml +++ b/org.eclipse.jgit.test/pom.xml @@ -157,7 +157,7 @@ maven-surefire-plugin - -Xmx1024m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=${project.build.directory} + @{argLine} -Xmx768m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=${project.build.directory} **/*Test.java **/*Tests.java From d31a0c0b5dbdc35cca78beb72df3d75551142d6b Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Wed, 29 May 2019 23:41:43 +0200 Subject: [PATCH 08/18] Skip FileSnapshotTest#testSimulatePackfileReplacement on Windows NTFS does not support FileKey hence ignore this test on Windows. Change-Id: I7b53a591daa5e03eb5e401b5b26d612ab68ce10d Signed-off-by: Matthias Sohn --- .../eclipse/jgit/internal/storage/file/FileSnapshotTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java index 68cc27371..6ef87d8b0 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java @@ -54,7 +54,9 @@ import java.util.List; import org.eclipse.jgit.util.FileUtils; +import org.eclipse.jgit.util.SystemReader; import org.junit.After; +import org.junit.Assume; import org.junit.Before; import org.junit.Test; @@ -138,6 +140,7 @@ public void testNewFileNoWait() throws Exception { */ @Test public void testSimulatePackfileReplacement() throws Exception { + Assume.assumeFalse(SystemReader.getInstance().isWindows()); File f1 = createFile("file"); // inode y File f2 = createFile("fool"); // Guarantees new inode x // wait on f2 since this method resets lastModified of the file From 43b06f51f96dddc3d512904f9e1f0bb6b5cc5984 Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Fri, 10 May 2019 00:58:42 +0200 Subject: [PATCH 09/18] Capture reason for result of FileSnapshot#isModified This allows to verify the expected behavior in FileSnapshotTest#testSimulatePackfileReplacement and enables extending FileSnapshot for packfiles to read the packfile's checksum as another criterion to detect modifications without reading the full content. Also add another field capturing the result of the last check if lastModified was racily clean. Remove unnecessary determination of raciness in the constructor. It was determined twice in all relevant cases. Change-Id: I100a2f49d7949693d7b72daa89437e166f1dc107 Signed-off-by: Matthias Sohn --- .../storage/file/FileSnapshotTest.java | 7 ++ .../internal/storage/file/FileSnapshot.java | 79 +++++++++++++++---- 2 files changed, 71 insertions(+), 15 deletions(-) diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java index 6ef87d8b0..79ede9691 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java @@ -42,6 +42,7 @@ */ package org.eclipse.jgit.internal.storage.file; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.io.File; @@ -154,6 +155,12 @@ public void testSimulatePackfileReplacement() throws Exception { StandardCopyOption.ATOMIC_MOVE); Files.setLastModifiedTime(f1.toPath(), timestamp); assertTrue(save.isModified(f1)); + assertTrue("unexpected change of fileKey", save.wasFileKeyChanged()); + assertFalse("unexpected size change", save.wasSizeChanged()); + assertFalse("unexpected lastModified change", + save.wasLastModifiedChanged()); + assertFalse("lastModified was unexpectedly racily clean", + save.wasLastModifiedRacilyClean()); } private File createFile(String string) throws IOException { diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java index 09e15938e..23cd5ba31 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java @@ -187,13 +187,20 @@ public static FileSnapshot save(long modified) { */ private Object fileKey; + private boolean sizeChanged; + + private boolean fileKeyChanged; + + private boolean lastModifiedChanged; + + private boolean wasRacyClean; + private FileSnapshot(long read, long modified, long size, @NonNull Duration fsTimestampResolution, @NonNull Object fileKey) { this.lastRead = read; this.lastModified = modified; this.fsTimestampResolution = fsTimestampResolution; this.size = size; - this.cannotBeRacilyClean = notRacyClean(read); this.fileKey = fileKey; } @@ -234,9 +241,19 @@ public boolean isModified(File path) { currSize = path.length(); currFileKey = MISSING_FILEKEY; } - return isSizeChanged(currSize) - || isFileKeyChanged(currFileKey) - || isModified(currLastModified); + sizeChanged = isSizeChanged(currSize); + if (sizeChanged) { + return true; + } + fileKeyChanged = isFileKeyChanged(currFileKey); + if (fileKeyChanged) { + return true; + } + lastModifiedChanged = isModified(currLastModified); + if (lastModifiedChanged) { + return true; + } + return false; } /** @@ -263,8 +280,9 @@ public boolean isModified(File path) { */ public void setClean(FileSnapshot other) { final long now = other.lastRead; - if (notRacyClean(now)) + if (!isRacyClean(now)) { cannotBeRacilyClean = true; + } lastRead = now; } @@ -303,6 +321,38 @@ public int hashCode() { fileKey); } + /** + * @return {@code true} if FileSnapshot.isModified(File) found the file size + * changed + */ + boolean wasSizeChanged() { + return sizeChanged; + } + + /** + * @return {@code true} if FileSnapshot.isModified(File) found the file key + * changed + */ + boolean wasFileKeyChanged() { + return fileKeyChanged; + } + + /** + * @return {@code true} if FileSnapshot.isModified(File) found the file's + * lastModified changed + */ + boolean wasLastModifiedChanged() { + return lastModifiedChanged; + } + + /** + * @return {@code true} if FileSnapshot.isModified(File) detected that + * lastModified is racily clean + */ + boolean wasLastModifiedRacilyClean() { + return wasRacyClean; + } + /** {@inheritDoc} */ @SuppressWarnings("nls") @Override @@ -320,37 +370,36 @@ public String toString() { + ", fileKey: " + fileKey + "]"; } - private boolean notRacyClean(long read) { + private boolean isRacyClean(long read) { // add a 10% safety margin long racyNanos = (fsTimestampResolution.toNanos() + 1) * 11 / 10; - return (read - lastModified) * 1_000_000 > racyNanos; + return wasRacyClean = (read - lastModified) * 1_000_000 <= racyNanos; } private boolean isModified(long currLastModified) { // Any difference indicates the path was modified. - // - if (lastModified != currLastModified) + + lastModifiedChanged = lastModified != currLastModified; + if (lastModifiedChanged) { return true; + } // We have already determined the last read was far enough // after the last modification that any new modifications // are certain to change the last modified time. - // - if (cannotBeRacilyClean) + if (cannotBeRacilyClean) { return false; - - if (notRacyClean(lastRead)) { + } + if (!isRacyClean(lastRead)) { // Our last read should have marked cannotBeRacilyClean, // but this thread may not have seen the change. The read // of the volatile field lastRead should have fixed that. - // return false; } // We last read this path too close to its last observed // modification time. We may have missed a modification. // Scan again, to ensure we still see the same state. - // return true; } From 5d0286eb7c206f95b1c0ffb99294abcd7696faa1 Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Wed, 8 May 2019 03:25:53 +0200 Subject: [PATCH 10/18] Add FileSnapshot test testing recognition of file size changes Change-Id: Ibcd76a5e6e4183ada0be1d4436ce957243f2094d Signed-off-by: Matthias Sohn --- .../internal/storage/file/FileSnapshotTest.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java index 79ede9691..5ebdeb6e8 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileSnapshotTest.java @@ -163,6 +163,23 @@ public void testSimulatePackfileReplacement() throws Exception { save.wasLastModifiedRacilyClean()); } + /** + * Append a character to a file to change its size and set original + * lastModified + * + * @throws Exception + */ + @Test + public void testFileSizeChanged() throws Exception { + File f = createFile("file"); + FileTime timestamp = Files.getLastModifiedTime(f.toPath()); + FileSnapshot save = FileSnapshot.save(f); + append(f, (byte) 'x'); + Files.setLastModifiedTime(f.toPath(), timestamp); + assertTrue(save.isModified(f)); + assertTrue(save.wasSizeChanged()); + } + private File createFile(String string) throws IOException { trash.mkdirs(); File f = File.createTempFile(string, "tdat", trash); From 4904a625c902391bbc681d0e4a68c7d057d6824a Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Sun, 26 May 2019 17:12:06 +0200 Subject: [PATCH 11/18] Avoid null PackConfig in GC Initialize it using the repository's config already in the constructor. Change-Id: I4ea620a7db72956e7109f739990f09644640206b Signed-off-by: Matthias Sohn --- .../org/eclipse/jgit/internal/storage/file/GC.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java index e1ba13004..0c94043e1 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java @@ -178,7 +178,7 @@ public static void setExecutor(ExecutorService e) { private Date packExpire; - private PackConfig pconfig = null; + private PackConfig pconfig; /** * the refs which existed during the last call to {@link #repack()}. This is @@ -214,6 +214,7 @@ public static void setExecutor(ExecutorService e) { */ public GC(FileRepository repo) { this.repo = repo; + this.pconfig = new PackConfig(repo); this.pm = NullProgressMonitor.INSTANCE; } @@ -398,7 +399,7 @@ private void deleteOldPacks(Collection oldPacks, */ private void removeOldPack(File packFile, String packName, PackExt ext, int deleteOptions) throws IOException { - if (pconfig != null && pconfig.isPreserveOldPacks()) { + if (pconfig.isPreserveOldPacks()) { File oldPackDir = repo.getObjectDatabase().getPreservedDirectory(); FileUtils.mkdir(oldPackDir, true); @@ -414,7 +415,7 @@ private void removeOldPack(File packFile, String packName, PackExt ext, * Delete the preserved directory including all pack files within */ private void prunePreserved() { - if (pconfig != null && pconfig.isPrunePreserved()) { + if (pconfig.isPrunePreserved()) { try { FileUtils.delete(repo.getObjectDatabase().getPreservedDirectory(), FileUtils.RECURSIVE | FileUtils.RETRY | FileUtils.SKIP_MISSING); @@ -856,7 +857,7 @@ public Collection repack() throws IOException { nonHeads.addAll(indexObjects); // Combine the GC_REST objects into the GC pack if requested - if (pconfig != null && pconfig.getSinglePack()) { + if (pconfig.getSinglePack()) { allHeadsAndTags.addAll(nonHeads); nonHeads.clear(); } @@ -1159,7 +1160,7 @@ private PackFile writePack(@NonNull Set want, return Integer.signum(o1.hashCode() - o2.hashCode()); }); try (PackWriter pw = new PackWriter( - (pconfig == null) ? new PackConfig(repo) : pconfig, + pconfig, repo.newObjectReader())) { // prepare the PackWriter pw.setDeltaBaseAsOffset(true); @@ -1434,7 +1435,7 @@ public void setPackExpireAgeMillis(long packExpireAgeMillis) { * the {@link org.eclipse.jgit.storage.pack.PackConfig} used when * writing packs */ - public void setPackConfig(PackConfig pconfig) { + public void setPackConfig(@NonNull PackConfig pconfig) { this.pconfig = pconfig; } From 8bf9c668adca33166057e7137d52a509d232acb3 Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Thu, 9 May 2019 01:23:15 +0200 Subject: [PATCH 12/18] Wait opening new packfile until it can't be racy anymore If - pack.waitPreventRacyPack = true (default is false) - packfile size > pack.minSizePreventRacyPack (default is 100 MB) wait after a new packfile was written and before it is opened until it cannot be racy anymore. If a new packfile is accessed while it's still racy at least the pack's index will be reread by ObjectDirectory.scanPacksImpl(). Hence it may save resources to wait one tick of the file system timer to avoid this reloading. On filesystems with a coarse timestamp resolution it may be beneficial to skip this wait for small packfiles. Bug: 546891 Change-Id: I0e8bf3d7677a025edd2e397dd2c9134ba59b1a18 Signed-off-by: Matthias Sohn --- org.eclipse.jgit/.settings/.api_filters | 56 ++++++++++ .../internal/storage/file/FileSnapshot.java | 14 +++ .../jgit/internal/storage/file/GC.java | 19 +++- .../file/ObjectDirectoryPackParser.java | 18 ++++ .../internal/storage/file/PackInserter.java | 26 ++++- .../eclipse/jgit/storage/pack/PackConfig.java | 100 +++++++++++++++++- 6 files changed, 227 insertions(+), 6 deletions(-) diff --git a/org.eclipse.jgit/.settings/.api_filters b/org.eclipse.jgit/.settings/.api_filters index a0fafdb1b..524c59191 100644 --- a/org.eclipse.jgit/.settings/.api_filters +++ b/org.eclipse.jgit/.settings/.api_filters @@ -38,6 +38,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java index 23cd5ba31..b6837d286 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java @@ -52,6 +52,7 @@ import java.util.Date; import java.util.Locale; import java.util.Objects; +import java.util.concurrent.TimeUnit; import org.eclipse.jgit.annotations.NonNull; import org.eclipse.jgit.util.FS; @@ -286,6 +287,19 @@ public void setClean(FileSnapshot other) { lastRead = now; } + /** + * Wait until this snapshot's file can't be racy anymore + * + * @throws InterruptedException + * if sleep was interrupted + */ + public void waitUntilNotRacy() throws InterruptedException { + while (isRacyClean(System.currentTimeMillis())) { + TimeUnit.NANOSECONDS + .sleep((fsTimestampResolution.toNanos() + 1) * 11 / 10); + } + } + /** * Compare two snapshots to see if they cache the same information. * diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java index 0c94043e1..3c830e88c 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java @@ -1256,8 +1256,23 @@ private PackFile writePack(@NonNull Set want, realExt), e); } } - - return repo.getObjectDatabase().openPack(realPack); + boolean interrupted = false; + try { + FileSnapshot snapshot = FileSnapshot.save(realPack); + if (pconfig.doWaitPreventRacyPack(snapshot.size())) { + snapshot.waitUntilNotRacy(); + } + } catch (InterruptedException e) { + interrupted = true; + } + try { + return repo.getObjectDatabase().openPack(realPack); + } finally { + if (interrupted) { + // Re-set interrupted flag + Thread.currentThread().interrupt(); + } + } } finally { if (tmpPack != null && tmpPack.exists()) tmpPack.delete(); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectoryPackParser.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectoryPackParser.java index 0cec2d5a8..6e8a15e86 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectoryPackParser.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectoryPackParser.java @@ -65,6 +65,7 @@ import org.eclipse.jgit.lib.CoreConfig; import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.ProgressMonitor; +import org.eclipse.jgit.storage.pack.PackConfig; import org.eclipse.jgit.transport.PackParser; import org.eclipse.jgit.transport.PackedObjectInfo; import org.eclipse.jgit.util.FileUtils; @@ -122,9 +123,12 @@ public class ObjectDirectoryPackParser extends PackParser { /** The pack that was created, if parsing was successful. */ private PackFile newPack; + private PackConfig pconfig; + ObjectDirectoryPackParser(FileObjectDatabase odb, InputStream src) { super(odb, src); this.db = odb; + this.pconfig = new PackConfig(odb.getConfig()); this.crc = new CRC32(); this.tailDigest = Constants.newMessageDigest(); @@ -514,6 +518,15 @@ private PackLock renameAndOpenPack(String lockMessage) JGitText.get().cannotMoveIndexTo, finalIdx), e); } + boolean interrupted = false; + try { + FileSnapshot snapshot = FileSnapshot.save(finalPack); + if (pconfig.doWaitPreventRacyPack(snapshot.size())) { + snapshot.waitUntilNotRacy(); + } + } catch (InterruptedException e) { + interrupted = true; + } try { newPack = db.openPack(finalPack); } catch (IOException err) { @@ -523,6 +536,11 @@ private PackLock renameAndOpenPack(String lockMessage) if (finalIdx.exists()) FileUtils.delete(finalIdx); throw err; + } finally { + if (interrupted) { + // Re-set interrupted flag + Thread.currentThread().interrupt(); + } } return lockMessage != null ? keep : null; diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackInserter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackInserter.java index 0ce3cc93c..a27a2b00c 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackInserter.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackInserter.java @@ -86,6 +86,7 @@ import org.eclipse.jgit.lib.ObjectLoader; import org.eclipse.jgit.lib.ObjectReader; import org.eclipse.jgit.lib.ObjectStream; +import org.eclipse.jgit.storage.pack.PackConfig; import org.eclipse.jgit.transport.PackParser; import org.eclipse.jgit.transport.PackedObjectInfo; import org.eclipse.jgit.util.BlockList; @@ -115,8 +116,11 @@ public class PackInserter extends ObjectInserter { private PackStream packOut; private Inflater cachedInflater; + private PackConfig pconfig; + PackInserter(ObjectDirectory db) { this.db = db; + this.pconfig = new PackConfig(db.getConfig()); } /** @@ -296,9 +300,25 @@ public void flush() throws IOException { realIdx), e); } - db.openPack(realPack); - rollback = false; - clear(); + boolean interrupted = false; + try { + FileSnapshot snapshot = FileSnapshot.save(realPack); + if (pconfig.doWaitPreventRacyPack(snapshot.size())) { + snapshot.waitUntilNotRacy(); + } + } catch (InterruptedException e) { + interrupted = true; + } + try { + db.openPack(realPack); + rollback = false; + } finally { + clear(); + if (interrupted) { + // Re-set interrupted flag + Thread.currentThread().interrupt(); + } + } } private static void writePackIndex(File idx, byte[] packHash, diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackConfig.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackConfig.java index 256e41d22..6bd32dd87 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackConfig.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackConfig.java @@ -116,12 +116,30 @@ public class PackConfig { */ public static final int DEFAULT_DELTA_SEARCH_WINDOW_SIZE = 10; + private static final int MB = 1 << 20; + /** * Default big file threshold: {@value} * * @see #setBigFileThreshold(int) */ - public static final int DEFAULT_BIG_FILE_THRESHOLD = 50 * 1024 * 1024; + public static final int DEFAULT_BIG_FILE_THRESHOLD = 50 * MB; + + /** + * Default if we wait before opening a newly written pack to prevent its + * lastModified timestamp could be racy + * + * @since 5.1.8 + */ + public static final boolean DEFAULT_WAIT_PREVENT_RACY_PACK = false; + + /** + * Default if we wait before opening a newly written pack to prevent its + * lastModified timestamp could be racy + * + * @since 5.1.8 + */ + public static final long DEFAULT_MINSIZE_PREVENT_RACY_PACK = 100 * MB; /** * Default delta cache size: {@value} @@ -238,6 +256,10 @@ public class PackConfig { private int bigFileThreshold = DEFAULT_BIG_FILE_THRESHOLD; + private boolean waitPreventRacyPack = DEFAULT_WAIT_PREVENT_RACY_PACK; + + private long minSizePreventRacyPack = DEFAULT_MINSIZE_PREVENT_RACY_PACK; + private int threads; private Executor executor; @@ -314,6 +336,8 @@ public PackConfig(PackConfig cfg) { this.deltaCacheSize = cfg.deltaCacheSize; this.deltaCacheLimit = cfg.deltaCacheLimit; this.bigFileThreshold = cfg.bigFileThreshold; + this.waitPreventRacyPack = cfg.waitPreventRacyPack; + this.minSizePreventRacyPack = cfg.minSizePreventRacyPack; this.threads = cfg.threads; this.executor = cfg.executor; this.indexVersion = cfg.indexVersion; @@ -736,6 +760,76 @@ public void setBigFileThreshold(int bigFileThreshold) { this.bigFileThreshold = bigFileThreshold; } + /** + * Get whether we wait before opening a newly written pack to prevent its + * lastModified timestamp could be racy + * + * @return whether we wait before opening a newly written pack to prevent + * its lastModified timestamp could be racy + * @since 5.1.8 + */ + public boolean isWaitPreventRacyPack() { + return waitPreventRacyPack; + } + + /** + * Get whether we wait before opening a newly written pack to prevent its + * lastModified timestamp could be racy. Returns {@code true} if + * {@code waitToPreventRacyPack = true} and + * {@code packSize > minSizePreventRacyPack}, {@code false} otherwise. + * + * @param packSize + * size of the pack file + * + * @return whether we wait before opening a newly written pack to prevent + * its lastModified timestamp could be racy + * @since 5.1.8 + */ + public boolean doWaitPreventRacyPack(long packSize) { + return isWaitPreventRacyPack() + && packSize > getMinSizePreventRacyPack(); + } + + /** + * Set whether we wait before opening a newly written pack to prevent its + * lastModified timestamp could be racy + * + * @param waitPreventRacyPack + * whether we wait before opening a newly written pack to prevent + * its lastModified timestamp could be racy + * @since 5.1.8 + */ + public void setWaitPreventRacyPack(boolean waitPreventRacyPack) { + this.waitPreventRacyPack = waitPreventRacyPack; + } + + /** + * Get minimum packfile size for which we wait before opening a newly + * written pack to prevent its lastModified timestamp could be racy if + * {@code isWaitToPreventRacyPack} is {@code true}. + * + * @return minimum packfile size, default is 100 MiB + * + * @since 5.1.8 + */ + public long getMinSizePreventRacyPack() { + return minSizePreventRacyPack; + } + + /** + * Set minimum packfile size for which we wait before opening a newly + * written pack to prevent its lastModified timestamp could be racy if + * {@code isWaitToPreventRacyPack} is {@code true}. + * + * @param minSizePreventRacyPack + * minimum packfile size, default is 100 MiB + * + * @since 5.1.8 + */ + public void setMinSizePreventRacyPack(long minSizePreventRacyPack) { + this.minSizePreventRacyPack = minSizePreventRacyPack; + } + /** * Get the compression level applied to objects in the pack. * @@ -1083,6 +1177,10 @@ public void fromConfig(Config rc) { setBitmapInactiveBranchAgeInDays( rc.getInt("pack", "bitmapinactivebranchageindays", //$NON-NLS-1$ //$NON-NLS-2$ getBitmapInactiveBranchAgeInDays())); + setWaitPreventRacyPack(rc.getBoolean("pack", "waitpreventracypack", //$NON-NLS-1$ //$NON-NLS-2$ + isWaitPreventRacyPack())); + setMinSizePreventRacyPack(rc.getLong("pack", "minsizepreventracypack", //$NON-NLS-1$//$NON-NLS-2$ + getMinSizePreventRacyPack())); } /** {@inheritDoc} */ From 9a7d3b053a3f28af5983539a860729066cae524c Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Sun, 26 May 2019 22:40:47 +0200 Subject: [PATCH 13/18] Extend FileSnapshot for packfiles to also use checksum to detect changes If the attributes of FileSnapshot don't detect modification of a packfile read the packfile's checksum and compare it against the checksum cached in the loaded packfile. Since reading the checksum needs less IO than reloading the complete packfile this may help to reduce the overhead to detect modficiation when a gc completes while ObjectDirectory scans for packfiles in another thread. Bug: 546891 Change-Id: I9811b497eb11b8a85ae689081dc5d949ca8c4be5 Signed-off-by: Matthias Sohn --- .../storage/file/PackFileSnapshotTest.java | 143 ++++++++++++++++++ .../internal/storage/file/FileSnapshot.java | 48 +++--- .../jgit/internal/storage/file/PackFile.java | 20 ++- .../storage/file/PackFileSnapshot.java | 123 +++++++++++++++ 4 files changed, 312 insertions(+), 22 deletions(-) create mode 100644 org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackFileSnapshotTest.java create mode 100644 org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFileSnapshot.java diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackFileSnapshotTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackFileSnapshotTest.java new file mode 100644 index 000000000..0e25c494e --- /dev/null +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackFileSnapshotTest.java @@ -0,0 +1,143 @@ +/* + * Copyright (C) 2019, Matthias Sohn + * and other copyright owners as documented in the project's IP log. + * + * This program and the accompanying materials are made available + * under the terms of the Eclipse Distribution License v1.0 which + * accompanies this distribution, is reproduced below, and is + * available at http://www.eclipse.org/org/documents/edl-v10.php + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * - Neither the name of the Eclipse Foundation, Inc. nor the + * names of its contributors may be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.eclipse.jgit.internal.storage.file; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.io.File; +import java.io.IOException; +import java.io.Writer; +import java.nio.file.Files; +import java.nio.file.StandardOpenOption; +import java.text.ParseException; +import java.util.Collection; +import java.util.Random; +import java.util.zip.Deflater; + +import org.eclipse.jgit.api.GarbageCollectCommand; +import org.eclipse.jgit.api.Git; +import org.eclipse.jgit.junit.RepositoryTestCase; +import org.eclipse.jgit.lib.ConfigConstants; +import org.eclipse.jgit.storage.file.FileBasedConfig; +import org.eclipse.jgit.storage.pack.PackConfig; +import org.junit.Test; + +public class PackFileSnapshotTest extends RepositoryTestCase { + + @Test + public void testSamePackDifferentCompressionDetectChecksumChanged() + throws Exception { + Git git = Git.wrap(db); + File f = writeTrashFile("file", "foobar "); + for (int i = 0; i < 10; i++) { + appendRandomLine(f); + git.add().addFilepattern("file").call(); + git.commit().setMessage("message" + i).call(); + } + + FileBasedConfig c = db.getConfig(); + c.setInt(ConfigConstants.CONFIG_GC_SECTION, null, + ConfigConstants.CONFIG_KEY_AUTOPACKLIMIT, 1); + c.save(); + Collection packs = gc(Deflater.NO_COMPRESSION); + assertEquals("expected 1 packfile after gc", 1, packs.size()); + PackFile p1 = packs.iterator().next(); + PackFileSnapshot snapshot = p1.getFileSnapshot(); + + packs = gc(Deflater.BEST_COMPRESSION); + assertEquals("expected 1 packfile after gc", 1, packs.size()); + PackFile p2 = packs.iterator().next(); + File pf = p2.getPackFile(); + + // changing compression level with aggressive gc may change size, + // fileKey (on *nix) and checksum. Hence FileSnapshot.isModified can + // return true already based on size or fileKey. + // So the only thing we can test here is that we ensure that checksum + // also changed when we read it here in this test + assertTrue("expected snapshot to detect modified pack", + snapshot.isModified(pf)); + assertTrue("expected checksum changed", snapshot.isChecksumChanged(pf)); + } + + private void appendRandomLine(File f) throws IOException { + try (Writer w = Files.newBufferedWriter(f.toPath(), + StandardOpenOption.APPEND)) { + w.append(randomLine(20)); + } + } + + private String randomLine(int len) { + final int a = 97; // 'a' + int z = 122; // 'z' + Random random = new Random(); + StringBuilder buffer = new StringBuilder(len); + for (int i = 0; i < len; i++) { + int rnd = a + (int) (random.nextFloat() * (z - a + 1)); + buffer.append((char) rnd); + } + buffer.append('\n'); + return buffer.toString(); + } + + private Collection gc(int compressionLevel) + throws IOException, ParseException { + GC gc = new GC(db); + PackConfig pc = new PackConfig(db.getConfig()); + pc.setCompressionLevel(compressionLevel); + + pc.setSinglePack(true); + + // --aggressive + pc.setDeltaSearchWindowSize( + GarbageCollectCommand.DEFAULT_GC_AGGRESSIVE_WINDOW); + pc.setMaxDeltaDepth(GarbageCollectCommand.DEFAULT_GC_AGGRESSIVE_DEPTH); + pc.setReuseObjects(false); + + gc.setPackConfig(pc); + gc.setExpireAgeMillis(0); + gc.setPackExpireAgeMillis(0); + return gc.gc(); + } + +} diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java index b6837d286..1de313500 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileSnapshot.java @@ -119,24 +119,7 @@ public boolean isModified(File path) { * @return the snapshot. */ public static FileSnapshot save(File path) { - long read = System.currentTimeMillis(); - long modified; - long size; - Object fileKey = null; - Duration fsTimerResolution = FS - .getFsTimerResolution(path.toPath().getParent()); - try { - BasicFileAttributes fileAttributes = FS.DETECTED.fileAttributes(path); - modified = fileAttributes.lastModifiedTime().toMillis(); - size = fileAttributes.size(); - fileKey = getFileKey(fileAttributes); - } catch (IOException e) { - modified = path.lastModified(); - size = path.length(); - fileKey = MISSING_FILEKEY; - } - return new FileSnapshot(read, modified, size, fsTimerResolution, - fileKey); + return new FileSnapshot(path); } private static Object getFileKey(BasicFileAttributes fileAttributes) { @@ -186,7 +169,34 @@ public static FileSnapshot save(long modified) { * Object that uniquely identifies the given file, or {@code * null} if a file key is not available */ - private Object fileKey; + private final Object fileKey; + + /** + * Record a snapshot for a specific file path. + *

+ * This method should be invoked before the file is accessed. + * + * @param path + * the path to later remember. The path's current status + * information is saved. + */ + protected FileSnapshot(File path) { + this.lastRead = System.currentTimeMillis(); + this.fsTimestampResolution = FS + .getFsTimerResolution(path.toPath().getParent()); + BasicFileAttributes fileAttributes = null; + try { + fileAttributes = FS.DETECTED.fileAttributes(path); + } catch (IOException e) { + this.lastModified = path.lastModified(); + this.size = path.length(); + this.fileKey = MISSING_FILEKEY; + return; + } + this.lastModified = fileAttributes.lastModifiedTime().toMillis(); + this.size = fileAttributes.size(); + this.fileKey = getFileKey(fileAttributes); + } private boolean sizeChanged; diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java index d834b1a72..7313305c9 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java @@ -131,7 +131,7 @@ public int compare(PackFile a, PackFile b) { int packLastModified; - private FileSnapshot fileSnapshot; + private PackFileSnapshot fileSnapshot; private volatile boolean invalid; @@ -168,7 +168,7 @@ public int compare(PackFile a, PackFile b) { */ public PackFile(File packFile, int extensions) { this.packFile = packFile; - this.fileSnapshot = FileSnapshot.save(packFile); + this.fileSnapshot = PackFileSnapshot.save(packFile); this.packLastModified = (int) (fileSnapshot.lastModified() >> 10); this.extensions = extensions; @@ -193,6 +193,8 @@ private PackIndex idx() throws IOException { if (packChecksum == null) { packChecksum = idx.packChecksum; + fileSnapshot.setChecksum( + ObjectId.fromRaw(packChecksum)); } else if (!Arrays.equals(packChecksum, idx.packChecksum)) { throw new PackMismatchException(MessageFormat @@ -371,10 +373,14 @@ ObjectId findObjectForOffset(long offset) throws IOException { * * @return the packfile @{@link FileSnapshot} that the object is loaded from. */ - FileSnapshot getFileSnapshot() { + PackFileSnapshot getFileSnapshot() { return fileSnapshot; } + AnyObjectId getPackChecksum() { + return ObjectId.fromRaw(packChecksum); + } + private final byte[] decompress(final long position, final int sz, final WindowCursor curs) throws IOException, DataFormatException { byte[] dstbuf; @@ -1209,4 +1215,12 @@ private File extFile(PackExt ext) { private boolean hasExt(PackExt ext) { return (extensions & ext.getBit()) != 0; } + + @SuppressWarnings("nls") + @Override + public String toString() { + return "PackFile [packFileName=" + packFile.getName() + ", length=" + + packFile.length() + ", packChecksum=" + + ObjectId.fromRaw(packChecksum).name() + "]"; + } } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFileSnapshot.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFileSnapshot.java new file mode 100644 index 000000000..19ec3af49 --- /dev/null +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFileSnapshot.java @@ -0,0 +1,123 @@ +/* + * Copyright (C) 2019, Matthias Sohn + * and other copyright owners as documented in the project's IP log. + * + * This program and the accompanying materials are made available + * under the terms of the Eclipse Distribution License v1.0 which + * accompanies this distribution, is reproduced below, and is + * available at http://www.eclipse.org/org/documents/edl-v10.php + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * - Neither the name of the Eclipse Foundation, Inc. nor the + * names of its contributors may be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package org.eclipse.jgit.internal.storage.file; + +import java.io.File; +import java.io.IOException; +import java.io.RandomAccessFile; + +import org.eclipse.jgit.lib.AnyObjectId; +import org.eclipse.jgit.lib.ObjectId; + +class PackFileSnapshot extends FileSnapshot { + + private static final ObjectId MISSING_CHECKSUM = ObjectId.zeroId(); + + /** + * Record a snapshot for a specific packfile path. + *

+ * This method should be invoked before the packfile is accessed. + * + * @param path + * the path to later remember. The path's current status + * information is saved. + * @return the snapshot. + */ + public static PackFileSnapshot save(File path) { + return new PackFileSnapshot(path); + } + + private AnyObjectId checksum = MISSING_CHECKSUM; + + private boolean wasChecksumChanged; + + + PackFileSnapshot(File packFile) { + super(packFile); + } + + void setChecksum(AnyObjectId checksum) { + this.checksum = checksum; + } + + /** {@inheritDoc} */ + @Override + public boolean isModified(File packFile) { + if (!super.isModified(packFile)) { + return false; + } + if (wasSizeChanged() || wasFileKeyChanged() + || !wasLastModifiedRacilyClean()) { + return true; + } + return isChecksumChanged(packFile); + } + + boolean isChecksumChanged(File packFile) { + return wasChecksumChanged = checksum != MISSING_CHECKSUM + && !checksum.equals(readChecksum(packFile)); + } + + private AnyObjectId readChecksum(File packFile) { + try (RandomAccessFile fd = new RandomAccessFile(packFile, "r")) { //$NON-NLS-1$ + fd.seek(fd.length() - 20); + final byte[] buf = new byte[20]; + fd.readFully(buf, 0, 20); + return ObjectId.fromRaw(buf); + } catch (IOException e) { + return MISSING_CHECKSUM; + } + } + + boolean wasChecksumChanged() { + return wasChecksumChanged; + } + + @SuppressWarnings("nls") + @Override + public String toString() { + return "PackFileSnapshot [checksum=" + checksum + ", " + + super.toString() + "]"; + } + +} From b5c594216ba1a462796e5e4d8d929062db143768 Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Tue, 4 Jun 2019 15:46:44 +0200 Subject: [PATCH 14/18] Add debug trace to measure time needed to open pack index Change-Id: Ia698cc06aa3fe6cb7903a687db8885f1b83c3bf2 Signed-off-by: Matthias Sohn --- .../jgit/internal/storage/file/PackFile.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java index 7313305c9..73ad38c95 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java @@ -93,6 +93,8 @@ import org.eclipse.jgit.util.LongList; import org.eclipse.jgit.util.NB; import org.eclipse.jgit.util.RawParseUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * A Git version 2 pack file representation. A pack file contains Git objects in @@ -100,6 +102,7 @@ * objects are similar. */ public class PackFile implements Iterable { + private final static Logger LOG = LoggerFactory.getLogger(PackFile.class); /** Sorts PackFiles to be most recently created to least recently created. */ public static final Comparator SORT = new Comparator() { @Override @@ -189,7 +192,17 @@ private PackIndex idx() throws IOException { throw new PackInvalidException(packFile, invalidatingCause); } try { + long start = System.currentTimeMillis(); idx = PackIndex.open(extFile(INDEX)); + if (LOG.isDebugEnabled()) { + LOG.debug(String.format( + "Opening pack index %s, size %.3f MB took %d ms", //$NON-NLS-1$ + extFile(INDEX).getAbsolutePath(), + Float.valueOf(extFile(INDEX).length() + / (1024f * 1024)), + Long.valueOf(System.currentTimeMillis() + - start))); + } if (packChecksum == null) { packChecksum = idx.packChecksum; From b2ee9cfbc3b757dc7e7896981f08496c9d413602 Mon Sep 17 00:00:00 2001 From: Christian Halstrick Date: Tue, 4 Jun 2019 18:03:26 +0200 Subject: [PATCH 15/18] Enhance fsTick() to use filesystem timer resolution RepositoryTestCase.fsTick() was was waiting 64, 128, 256, ... milliseconds until it detected that the filesystem timer has ticked. Make use of the filesystemtimer resolution information in FS to sleep a fraction of the filesystem timer resolution. That raises probability to wake up shortly after the filesystem timer has ticked. Change-Id: Ibcc38576e42ece13b2fd4423a29c459eed167a69 --- .../jgit/junit/RepositoryTestCase.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/RepositoryTestCase.java b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/RepositoryTestCase.java index 5eddb3d08..987f923b0 100644 --- a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/RepositoryTestCase.java +++ b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/RepositoryTestCase.java @@ -349,7 +349,8 @@ public static String slashify(String str) { * younger modification timestamp than the modification timestamp of the * given file. This is done by touching a temporary file, reading the * lastmodified attribute and, if needed, sleeping. After sleeping this loop - * starts again until the filesystem timer has advanced enough. + * starts again until the filesystem timer has advanced enough. The + * temporary file will be created as a sibling of lastFile. * * @param lastFile * the file on which we want to wait until the filesystem timer @@ -362,18 +363,25 @@ public static String slashify(String str) { */ public static long fsTick(File lastFile) throws InterruptedException, IOException { - long sleepTime = 64; + File tmp; FS fs = FS.DETECTED; - if (lastFile != null && !fs.exists(lastFile)) - throw new FileNotFoundException(lastFile.getPath()); - File tmp = File.createTempFile("FileTreeIteratorWithTimeControl", null); + if (lastFile == null) { + lastFile = tmp = File + .createTempFile("fsTickTmpFile", null); + } else { + if (!fs.exists(lastFile)) { + throw new FileNotFoundException(lastFile.getPath()); + } + tmp = File.createTempFile("fsTickTmpFile", null, + lastFile.getParentFile()); + } + long res = FS.getFsTimerResolution(tmp.toPath()).toMillis(); + long sleepTime = res / 10; try { - long startTime = (lastFile == null) ? fs.lastModified(tmp) : fs - .lastModified(lastFile); + long startTime = fs.lastModified(lastFile); long actTime = fs.lastModified(tmp); while (actTime <= startTime) { Thread.sleep(sleepTime); - sleepTime *= 2; FileUtils.touch(tmp.toPath()); actTime = fs.lastModified(tmp); } From 5f8d91fded2f767ab609e58dcc22cc721b2e9c9d Mon Sep 17 00:00:00 2001 From: Christian Halstrick Date: Fri, 31 May 2019 15:02:02 +0200 Subject: [PATCH 16/18] Test detecting modified packfiles Test that JGit detects that packfiles have changed even if they are repacked multiple times in one tick of the filesystem timer. Test that this detection works also when repacking doesn't change the length or the filekey of the packfile. In this case where a modified file can't be detected by looking at file metadata JGit should still detect too fast modification by racy git checks and trigger rescanning the pack list and consequently rereading of packfile content. Change-Id: I67682cfb807c58afc6de9375224ff7489d6618fb Signed-off-by: Matthias Sohn --- .../storage/file/PackFileSnapshotTest.java | 233 +++++++++++++++++- 1 file changed, 222 insertions(+), 11 deletions(-) diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackFileSnapshotTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackFileSnapshotTest.java index 0e25c494e..a1433e9fe 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackFileSnapshotTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/PackFileSnapshotTest.java @@ -43,28 +43,50 @@ package org.eclipse.jgit.internal.storage.file; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import static org.junit.Assume.assumeFalse; +import static org.junit.Assume.assumeTrue; import java.io.File; import java.io.IOException; +import java.io.OutputStream; import java.io.Writer; import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; import java.nio.file.StandardOpenOption; +//import java.nio.file.attribute.BasicFileAttributes; import java.text.ParseException; import java.util.Collection; +import java.util.Iterator; import java.util.Random; import java.util.zip.Deflater; import org.eclipse.jgit.api.GarbageCollectCommand; import org.eclipse.jgit.api.Git; +import org.eclipse.jgit.api.errors.AbortedByHookException; +import org.eclipse.jgit.api.errors.ConcurrentRefUpdateException; +import org.eclipse.jgit.api.errors.GitAPIException; +import org.eclipse.jgit.api.errors.NoFilepatternException; +import org.eclipse.jgit.api.errors.NoHeadException; +import org.eclipse.jgit.api.errors.NoMessageException; +import org.eclipse.jgit.api.errors.UnmergedPathsException; +import org.eclipse.jgit.api.errors.WrongRepositoryStateException; import org.eclipse.jgit.junit.RepositoryTestCase; +import org.eclipse.jgit.lib.AnyObjectId; import org.eclipse.jgit.lib.ConfigConstants; +import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.storage.file.FileBasedConfig; import org.eclipse.jgit.storage.pack.PackConfig; import org.junit.Test; public class PackFileSnapshotTest extends RepositoryTestCase { + private static ObjectId unknownID = ObjectId + .fromString("1234567890123456789012345678901234567890"); + @Test public void testSamePackDifferentCompressionDetectChecksumChanged() throws Exception { @@ -100,24 +122,213 @@ public void testSamePackDifferentCompressionDetectChecksumChanged() assertTrue("expected checksum changed", snapshot.isChecksumChanged(pf)); } - private void appendRandomLine(File f) throws IOException { + private void appendRandomLine(File f, int length, Random r) + throws IOException { try (Writer w = Files.newBufferedWriter(f.toPath(), StandardOpenOption.APPEND)) { - w.append(randomLine(20)); + appendRandomLine(w, length, r); } } - private String randomLine(int len) { - final int a = 97; // 'a' - int z = 122; // 'z' - Random random = new Random(); - StringBuilder buffer = new StringBuilder(len); + private void appendRandomLine(File f) throws IOException { + appendRandomLine(f, 5, new Random()); + } + + private void appendRandomLine(Writer w, int len, Random r) + throws IOException { + final int c1 = 32; // ' ' + int c2 = 126; // '~' for (int i = 0; i < len; i++) { - int rnd = a + (int) (random.nextFloat() * (z - a + 1)); - buffer.append((char) rnd); + w.append((char) (c1 + r.nextInt(1 + c2 - c1))); } - buffer.append('\n'); - return buffer.toString(); + } + + private ObjectId createTestRepo(int testDataSeed, int testDataLength) + throws IOException, GitAPIException, NoFilepatternException, + NoHeadException, NoMessageException, UnmergedPathsException, + ConcurrentRefUpdateException, WrongRepositoryStateException, + AbortedByHookException { + // Create a repo with two commits and one file. Each commit adds + // testDataLength number of bytes. Data are random bytes. Since the + // seed for the random number generator is specified we will get + // the same set of bytes for every run and for every platform + Random r = new Random(testDataSeed); + Git git = Git.wrap(db); + File f = writeTrashFile("file", "foobar "); + appendRandomLine(f, testDataLength, r); + git.add().addFilepattern("file").call(); + git.commit().setMessage("message1").call(); + appendRandomLine(f, testDataLength, r); + git.add().addFilepattern("file").call(); + return git.commit().setMessage("message2").call().getId(); + } + + // Try repacking so fast that you get two new packs which differ only in + // content/chksum but have same name, size and lastmodified. + // Since this is done with standard gc (which creates new tmp files and + // renames them) the filekeys of the new packfiles differ helping jgit + // to detect the fast modification + @Test + public void testDetectModificationAlthoughSameSizeAndModificationtime() + throws Exception { + int testDataSeed = 1; + int testDataLength = 100; + FileBasedConfig config = db.getConfig(); + // don't use mtime of the parent folder to detect pack file + // modification. + config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null, + ConfigConstants.CONFIG_KEY_TRUSTFOLDERSTAT, false); + config.save(); + + createTestRepo(testDataSeed, testDataLength); + + // repack to create initial packfile + PackFile pf = repackAndCheck(5, null, null, null); + Path packFilePath = pf.getPackFile().toPath(); + AnyObjectId chk1 = pf.getPackChecksum(); + String name = pf.getPackName(); + Long length = Long.valueOf(pf.getPackFile().length()); + long m1 = packFilePath.toFile().lastModified(); + + // Wait for a filesystem timer tick to enhance probability the rest of + // this test is done before the filesystem timer ticks again. + fsTick(packFilePath.toFile()); + + // Repack to create packfile with same name, length. Lastmodified and + // content and checksum are different since compression level differs + AnyObjectId chk2 = repackAndCheck(6, name, length, chk1) + .getPackChecksum(); + long m2 = packFilePath.toFile().lastModified(); + assumeFalse(m2 == m1); + + // Repack to create packfile with same name, length. Lastmodified is + // equal to the previous one because we are in the same filesystem timer + // slot. Content and its checksum are different + AnyObjectId chk3 = repackAndCheck(7, name, length, chk2) + .getPackChecksum(); + long m3 = packFilePath.toFile().lastModified(); + + // ask for an unknown git object to force jgit to rescan the list of + // available packs. If we would ask for a known objectid then JGit would + // skip searching for new/modified packfiles + db.getObjectDatabase().has(unknownID); + assertEquals(chk3, getSinglePack(db.getObjectDatabase().getPacks()) + .getPackChecksum()); + assumeTrue(m3 == m2); + } + + // Try repacking so fast that we get two new packs which differ only in + // content and checksum but have same name, size and lastmodified. + // To avoid that JGit detects modification by checking the filekey create + // two new packfiles upfront and create copies of them. Then modify the + // packfiles in-place by opening them for write and then copying the + // content. + @Test + public void testDetectModificationAlthoughSameSizeAndModificationtimeAndFileKey() + throws Exception { + int testDataSeed = 1; + int testDataLength = 100; + FileBasedConfig config = db.getConfig(); + config.setBoolean(ConfigConstants.CONFIG_CORE_SECTION, null, + ConfigConstants.CONFIG_KEY_TRUSTFOLDERSTAT, false); + config.save(); + + createTestRepo(testDataSeed, testDataLength); + + // Repack to create initial packfile. Make a copy of it + PackFile pf = repackAndCheck(5, null, null, null); + Path packFilePath = pf.getPackFile().toPath(); + Path packFileBasePath = packFilePath.resolveSibling( + packFilePath.getFileName().toString().replaceAll(".pack", "")); + AnyObjectId chk1 = pf.getPackChecksum(); + String name = pf.getPackName(); + Long length = Long.valueOf(pf.getPackFile().length()); + copyPack(packFileBasePath, "", ".copy1"); + + // Repack to create second packfile. Make a copy of it + AnyObjectId chk2 = repackAndCheck(6, name, length, chk1) + .getPackChecksum(); + copyPack(packFileBasePath, "", ".copy2"); + + // Repack to create third packfile + AnyObjectId chk3 = repackAndCheck(7, name, length, chk2) + .getPackChecksum(); + long m3 = packFilePath.toFile().lastModified(); + db.getObjectDatabase().has(unknownID); + assertEquals(chk3, getSinglePack(db.getObjectDatabase().getPacks()) + .getPackChecksum()); + + // Wait for a filesystem timer tick to enhance probability the rest of + // this test is done before the filesystem timer ticks. + fsTick(packFilePath.toFile()); + + // Copy copy2 to packfile data to force modification of packfile without + // changing the packfile's filekey. + copyPack(packFileBasePath, ".copy2", ""); + long m2 = packFilePath.toFile().lastModified(); + assumeFalse(m3 == m2); + + db.getObjectDatabase().has(unknownID); + assertEquals(chk2, getSinglePack(db.getObjectDatabase().getPacks()) + .getPackChecksum()); + + // Copy copy2 to packfile data to force modification of packfile without + // changing the packfile's filekey. + copyPack(packFileBasePath, ".copy1", ""); + long m1 = packFilePath.toFile().lastModified(); + assumeTrue(m2 == m1); + db.getObjectDatabase().has(unknownID); + assertEquals(chk1, getSinglePack(db.getObjectDatabase().getPacks()) + .getPackChecksum()); + } + + // Copy file from src to dst but avoid creating a new File (with new + // FileKey) if dst already exists + private Path copyFile(Path src, Path dst) throws IOException { + if (Files.exists(dst)) { + dst.toFile().setWritable(true); + try (OutputStream dstOut = Files.newOutputStream(dst)) { + Files.copy(src, dstOut); + return dst; + } + } else { + return Files.copy(src, dst, StandardCopyOption.REPLACE_EXISTING); + } + } + + private Path copyPack(Path base, String srcSuffix, String dstSuffix) + throws IOException { + copyFile(Paths.get(base + ".idx" + srcSuffix), + Paths.get(base + ".idx" + dstSuffix)); + copyFile(Paths.get(base + ".bitmap" + srcSuffix), + Paths.get(base + ".bitmap" + dstSuffix)); + return copyFile(Paths.get(base + ".pack" + srcSuffix), + Paths.get(base + ".pack" + dstSuffix)); + } + + private PackFile repackAndCheck(int compressionLevel, String oldName, + Long oldLength, AnyObjectId oldChkSum) + throws IOException, ParseException { + PackFile p = getSinglePack(gc(compressionLevel)); + File pf = p.getPackFile(); + // The following two assumptions should not cause the test to fail. If + // on a certain platform we get packfiles (containing the same git + // objects) where the lengths differ or the checksums don't differ we + // just skip this test. A reason for that could be that compression + // works differently or random number generator works differently. Then + // we have to search for more consistent test data or checkin these + // packfiles as test resources + assumeTrue(oldLength == null || pf.length() == oldLength.longValue()); + assumeTrue(oldChkSum == null || !p.getPackChecksum().equals(oldChkSum)); + assertTrue(oldName == null || p.getPackName().equals(oldName)); + return p; + } + + private PackFile getSinglePack(Collection packs) { + Iterator pIt = packs.iterator(); + PackFile p = pIt.next(); + assertFalse(pIt.hasNext()); + return p; } private Collection gc(int compressionLevel) From 2fe587fcfdba51c1d84194673473faf18a34896e Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Wed, 5 Jun 2019 15:06:56 +0200 Subject: [PATCH 17/18] JGit v5.1.8.201906050907-r Change-Id: Iae0ffe161df2ca8a800d21688d6b7d7419dfb640 Signed-off-by: Matthias Sohn --- org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit.ant.test/pom.xml | 2 +- org.eclipse.jgit.ant/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit.ant/pom.xml | 2 +- org.eclipse.jgit.archive/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF | 4 ++-- org.eclipse.jgit.archive/pom.xml | 2 +- org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit.http.apache/pom.xml | 2 +- org.eclipse.jgit.http.server/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit.http.server/pom.xml | 2 +- org.eclipse.jgit.http.test/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit.http.test/pom.xml | 2 +- org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit.junit.http/pom.xml | 2 +- org.eclipse.jgit.junit/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit.junit/pom.xml | 2 +- org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit.lfs.server.test/pom.xml | 2 +- org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit.lfs.server/pom.xml | 2 +- org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit.lfs.test/pom.xml | 2 +- org.eclipse.jgit.lfs/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit.lfs/pom.xml | 2 +- .../org.eclipse.jgit.feature/feature.xml | 2 +- org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml | 2 +- .../org.eclipse.jgit.http.apache.feature/feature.xml | 2 +- .../org.eclipse.jgit.http.apache.feature/pom.xml | 2 +- .../org.eclipse.jgit.junit.feature/feature.xml | 2 +- .../org.eclipse.jgit.junit.feature/pom.xml | 2 +- .../org.eclipse.jgit.lfs.feature/feature.xml | 2 +- .../org.eclipse.jgit.lfs.feature/pom.xml | 2 +- .../org.eclipse.jgit.pgm.feature/feature.xml | 2 +- .../org.eclipse.jgit.pgm.feature/pom.xml | 2 +- .../org.eclipse.jgit.pgm.source.feature/feature.xml | 2 +- .../org.eclipse.jgit.pgm.source.feature/pom.xml | 2 +- .../org.eclipse.jgit.repository/pom.xml | 2 +- .../org.eclipse.jgit.source.feature/feature.xml | 2 +- .../org.eclipse.jgit.source.feature/pom.xml | 2 +- .../org.eclipse.jgit.target/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit.packaging/org.eclipse.jgit.target/pom.xml | 2 +- org.eclipse.jgit.packaging/pom.xml | 2 +- org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit.pgm.test/pom.xml | 2 +- org.eclipse.jgit.pgm/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF | 4 ++-- org.eclipse.jgit.pgm/pom.xml | 2 +- org.eclipse.jgit.test/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit.test/pom.xml | 2 +- org.eclipse.jgit.ui/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit.ui/pom.xml | 2 +- org.eclipse.jgit/META-INF/MANIFEST.MF | 2 +- org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF | 4 ++-- org.eclipse.jgit/pom.xml | 2 +- pom.xml | 2 +- 56 files changed, 59 insertions(+), 59 deletions(-) diff --git a/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF index 46e92b650..65a06ff10 100644 --- a/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF @@ -4,7 +4,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.ant.test Bundle-SymbolicName: org.eclipse.jgit.ant.test -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Import-Package: org.apache.tools.ant, diff --git a/org.eclipse.jgit.ant.test/pom.xml b/org.eclipse.jgit.ant.test/pom.xml index 26a33ee43..916142ca8 100644 --- a/org.eclipse.jgit.ant.test/pom.xml +++ b/org.eclipse.jgit.ant.test/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.ant.test diff --git a/org.eclipse.jgit.ant/META-INF/MANIFEST.MF b/org.eclipse.jgit.ant/META-INF/MANIFEST.MF index e887af29f..86fe59260 100644 --- a/org.eclipse.jgit.ant/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.ant/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Automatic-Module-Name: org.eclipse.jgit.ant Bundle-SymbolicName: org.eclipse.jgit.ant -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Import-Package: org.apache.tools.ant, org.eclipse.jgit.storage.file;version="[5.1.8,5.2.0)" diff --git a/org.eclipse.jgit.ant/pom.xml b/org.eclipse.jgit.ant/pom.xml index 17294fd4f..81f5a4c98 100644 --- a/org.eclipse.jgit.ant/pom.xml +++ b/org.eclipse.jgit.ant/pom.xml @@ -48,7 +48,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.ant diff --git a/org.eclipse.jgit.archive/META-INF/MANIFEST.MF b/org.eclipse.jgit.archive/META-INF/MANIFEST.MF index b269edee5..7d141d84b 100644 --- a/org.eclipse.jgit.archive/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.archive/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.archive Bundle-SymbolicName: org.eclipse.jgit.archive -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r Bundle-Vendor: %provider_name Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: JavaSE-1.8 diff --git a/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF index 1bdb8af23..81bdf06e1 100644 --- a/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF +++ b/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF @@ -3,5 +3,5 @@ Bundle-ManifestVersion: 2 Bundle-Name: org.eclipse.jgit.archive - Sources Bundle-SymbolicName: org.eclipse.jgit.archive.source Bundle-Vendor: Eclipse.org - JGit -Bundle-Version: 5.1.8.qualifier -Eclipse-SourceBundle: org.eclipse.jgit.archive;version="5.1.8.qualifier";roots="." +Bundle-Version: 5.1.8.201906050907-r +Eclipse-SourceBundle: org.eclipse.jgit.archive;version="5.1.8.201906050907-r";roots="." diff --git a/org.eclipse.jgit.archive/pom.xml b/org.eclipse.jgit.archive/pom.xml index 8e8bc093f..04729eaed 100644 --- a/org.eclipse.jgit.archive/pom.xml +++ b/org.eclipse.jgit.archive/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.archive diff --git a/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF index 9bce2349b..a0ee52792 100644 --- a/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Automatic-Module-Name: org.eclipse.jgit.http.apache Bundle-SymbolicName: org.eclipse.jgit.http.apache -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-Localization: plugin Bundle-Vendor: %Provider-Name diff --git a/org.eclipse.jgit.http.apache/pom.xml b/org.eclipse.jgit.http.apache/pom.xml index 3b4722cca..86a1a3a67 100644 --- a/org.eclipse.jgit.http.apache/pom.xml +++ b/org.eclipse.jgit.http.apache/pom.xml @@ -48,7 +48,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.http.apache diff --git a/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF index 31fc9f60b..965c197da 100644 --- a/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.http.server Bundle-SymbolicName: org.eclipse.jgit.http.server -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r Bundle-Localization: plugin Bundle-Vendor: %provider_name Export-Package: org.eclipse.jgit.http.server;version="5.1.8", diff --git a/org.eclipse.jgit.http.server/pom.xml b/org.eclipse.jgit.http.server/pom.xml index d2753cb92..16508ec74 100644 --- a/org.eclipse.jgit.http.server/pom.xml +++ b/org.eclipse.jgit.http.server/pom.xml @@ -52,7 +52,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.http.server diff --git a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF index ad6402514..82efe7bef 100644 --- a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.http.test Bundle-SymbolicName: org.eclipse.jgit.http.test -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r Bundle-Vendor: %provider_name Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: JavaSE-1.8 diff --git a/org.eclipse.jgit.http.test/pom.xml b/org.eclipse.jgit.http.test/pom.xml index 4455f9174..79469989c 100644 --- a/org.eclipse.jgit.http.test/pom.xml +++ b/org.eclipse.jgit.http.test/pom.xml @@ -51,7 +51,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.http.test diff --git a/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF b/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF index ef8926c0e..869c5e2d4 100644 --- a/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.junit.http Bundle-SymbolicName: org.eclipse.jgit.junit.http -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r Bundle-Localization: plugin Bundle-Vendor: %provider_name Bundle-ActivationPolicy: lazy diff --git a/org.eclipse.jgit.junit.http/pom.xml b/org.eclipse.jgit.junit.http/pom.xml index 533587b27..2ff1353c9 100644 --- a/org.eclipse.jgit.junit.http/pom.xml +++ b/org.eclipse.jgit.junit.http/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.junit.http diff --git a/org.eclipse.jgit.junit/META-INF/MANIFEST.MF b/org.eclipse.jgit.junit/META-INF/MANIFEST.MF index bbba8f789..e06d2147f 100644 --- a/org.eclipse.jgit.junit/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.junit/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.junit Bundle-SymbolicName: org.eclipse.jgit.junit -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r Bundle-Localization: plugin Bundle-Vendor: %provider_name Bundle-ActivationPolicy: lazy diff --git a/org.eclipse.jgit.junit/pom.xml b/org.eclipse.jgit.junit/pom.xml index 0855766f6..d1ca4bcd1 100644 --- a/org.eclipse.jgit.junit/pom.xml +++ b/org.eclipse.jgit.junit/pom.xml @@ -52,7 +52,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.junit diff --git a/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF index 6d93d7b21..77f94f605 100644 --- a/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.lfs.server.test Bundle-SymbolicName: org.eclipse.jgit.lfs.server.test -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r Bundle-Vendor: %provider_name Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: JavaSE-1.8 diff --git a/org.eclipse.jgit.lfs.server.test/pom.xml b/org.eclipse.jgit.lfs.server.test/pom.xml index 2f6b1bd84..3a16126c5 100644 --- a/org.eclipse.jgit.lfs.server.test/pom.xml +++ b/org.eclipse.jgit.lfs.server.test/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.lfs.server.test diff --git a/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF index ce0d1d5ae..13b0657e8 100644 --- a/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.lfs.server Bundle-SymbolicName: org.eclipse.jgit.lfs.server -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r Bundle-Localization: plugin Bundle-Vendor: %provider_name Export-Package: org.eclipse.jgit.lfs.server;version="5.1.8"; diff --git a/org.eclipse.jgit.lfs.server/pom.xml b/org.eclipse.jgit.lfs.server/pom.xml index ef1599d27..888beb6f8 100644 --- a/org.eclipse.jgit.lfs.server/pom.xml +++ b/org.eclipse.jgit.lfs.server/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.lfs.server diff --git a/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF index a5d375c90..bd1bf94f1 100644 --- a/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.lfs.test Bundle-SymbolicName: org.eclipse.jgit.lfs.test -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r Bundle-Vendor: %provider_name Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: JavaSE-1.8 diff --git a/org.eclipse.jgit.lfs.test/pom.xml b/org.eclipse.jgit.lfs.test/pom.xml index 12daec66f..fbbc11d8f 100644 --- a/org.eclipse.jgit.lfs.test/pom.xml +++ b/org.eclipse.jgit.lfs.test/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.lfs.test diff --git a/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF index aaf872974..611a70cc9 100644 --- a/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.lfs Bundle-SymbolicName: org.eclipse.jgit.lfs -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r Bundle-Localization: plugin Bundle-Vendor: %provider_name Export-Package: org.eclipse.jgit.lfs;version="5.1.8", diff --git a/org.eclipse.jgit.lfs/pom.xml b/org.eclipse.jgit.lfs/pom.xml index 10153e4ff..0591862d1 100644 --- a/org.eclipse.jgit.lfs/pom.xml +++ b/org.eclipse.jgit.lfs/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.lfs diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml index 68d72f8a9..ff323bf5b 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml index 2e5d5ce50..f7b0e8e2b 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.feature diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml index af0475a4b..5c2aefb78 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml index 3fba64762..9349abcdf 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.feature diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml index 1e68c6189..c6c2e85c1 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml index a49d2f68f..345dc8fac 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.feature diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml index 3a3bfe170..e0ff19f6c 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml index 558a4f115..068c148a1 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.feature diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml index 975c5d659..ff44935e8 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/pom.xml index 0d5bbfe0a..d5cdc2983 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.feature diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/feature.xml index b686233c9..1504d5354 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/feature.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/pom.xml index 1a1817a8d..a92a3b969 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.feature diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml index 962e847c5..d568a25f0 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.repository diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml index 2bafdb290..edd70d60d 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml index 6c36b1f90..3b4fa2966 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.feature diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/META-INF/MANIFEST.MF b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/META-INF/MANIFEST.MF index 64ca9077e..17ea9f25c 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/META-INF/MANIFEST.MF @@ -2,4 +2,4 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: JGit Target Platform Bundle Bundle-SymbolicName: org.eclipse.jgit.target -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/pom.xml index a24806cf7..ccf8373c3 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/pom.xml @@ -49,7 +49,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.target diff --git a/org.eclipse.jgit.packaging/pom.xml b/org.eclipse.jgit.packaging/pom.xml index 7607d2279..3679a019a 100644 --- a/org.eclipse.jgit.packaging/pom.xml +++ b/org.eclipse.jgit.packaging/pom.xml @@ -53,7 +53,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r pom JGit Tycho Parent diff --git a/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF index 7bfc2b6e3..9ede77da0 100644 --- a/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.pgm.test Bundle-SymbolicName: org.eclipse.jgit.pgm.test -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r Bundle-Vendor: %provider_name Bundle-Localization: plugin Bundle-ActivationPolicy: lazy diff --git a/org.eclipse.jgit.pgm.test/pom.xml b/org.eclipse.jgit.pgm.test/pom.xml index d6b87ae10..4b6426ad9 100644 --- a/org.eclipse.jgit.pgm.test/pom.xml +++ b/org.eclipse.jgit.pgm.test/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.pgm.test diff --git a/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF b/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF index 89b5e5326..263e25362 100644 --- a/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.pgm Bundle-SymbolicName: org.eclipse.jgit.pgm -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r Bundle-Vendor: %provider_name Bundle-ActivationPolicy: lazy Bundle-Localization: plugin diff --git a/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF index 67fc7e55d..0dd5cf304 100644 --- a/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF +++ b/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF @@ -3,5 +3,5 @@ Bundle-ManifestVersion: 2 Bundle-Name: org.eclipse.jgit.pgm - Sources Bundle-SymbolicName: org.eclipse.jgit.pgm.source Bundle-Vendor: Eclipse.org - JGit -Bundle-Version: 5.1.8.qualifier -Eclipse-SourceBundle: org.eclipse.jgit.pgm;version="5.1.8.qualifier";roots="." +Bundle-Version: 5.1.8.201906050907-r +Eclipse-SourceBundle: org.eclipse.jgit.pgm;version="5.1.8.201906050907-r";roots="." diff --git a/org.eclipse.jgit.pgm/pom.xml b/org.eclipse.jgit.pgm/pom.xml index d34f4f6f7..56ddf10ed 100644 --- a/org.eclipse.jgit.pgm/pom.xml +++ b/org.eclipse.jgit.pgm/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.pgm diff --git a/org.eclipse.jgit.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.test/META-INF/MANIFEST.MF index c40c2904a..cb9e299b2 100644 --- a/org.eclipse.jgit.test/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.test/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.test Bundle-SymbolicName: org.eclipse.jgit.test -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r Bundle-Localization: plugin Bundle-Vendor: %provider_name Bundle-ActivationPolicy: lazy diff --git a/org.eclipse.jgit.test/pom.xml b/org.eclipse.jgit.test/pom.xml index ca82a9883..7622b81c9 100644 --- a/org.eclipse.jgit.test/pom.xml +++ b/org.eclipse.jgit.test/pom.xml @@ -52,7 +52,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.test diff --git a/org.eclipse.jgit.ui/META-INF/MANIFEST.MF b/org.eclipse.jgit.ui/META-INF/MANIFEST.MF index 49498d929..1dfd6a544 100644 --- a/org.eclipse.jgit.ui/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.ui/META-INF/MANIFEST.MF @@ -4,7 +4,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.ui Bundle-SymbolicName: org.eclipse.jgit.ui -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r Bundle-Vendor: %provider_name Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Export-Package: org.eclipse.jgit.awtui;version="5.1.8" diff --git a/org.eclipse.jgit.ui/pom.xml b/org.eclipse.jgit.ui/pom.xml index 0ee6a899a..d280f4004 100644 --- a/org.eclipse.jgit.ui/pom.xml +++ b/org.eclipse.jgit.ui/pom.xml @@ -52,7 +52,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit.ui diff --git a/org.eclipse.jgit/META-INF/MANIFEST.MF b/org.eclipse.jgit/META-INF/MANIFEST.MF index c638228d4..3f388bc6e 100644 --- a/org.eclipse.jgit/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit Bundle-SymbolicName: org.eclipse.jgit -Bundle-Version: 5.1.8.qualifier +Bundle-Version: 5.1.8.201906050907-r Bundle-Localization: plugin Bundle-Vendor: %provider_name Bundle-ActivationPolicy: lazy diff --git a/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF index 48acc724b..a9a5b3e99 100644 --- a/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF +++ b/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF @@ -3,5 +3,5 @@ Bundle-ManifestVersion: 2 Bundle-Name: org.eclipse.jgit - Sources Bundle-SymbolicName: org.eclipse.jgit.source Bundle-Vendor: Eclipse.org - JGit -Bundle-Version: 5.1.8.qualifier -Eclipse-SourceBundle: org.eclipse.jgit;version="5.1.8.qualifier";roots="." +Bundle-Version: 5.1.8.201906050907-r +Eclipse-SourceBundle: org.eclipse.jgit;version="5.1.8.201906050907-r";roots="." diff --git a/org.eclipse.jgit/pom.xml b/org.eclipse.jgit/pom.xml index ad4ffb5e5..e67b7bf50 100644 --- a/org.eclipse.jgit/pom.xml +++ b/org.eclipse.jgit/pom.xml @@ -53,7 +53,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r org.eclipse.jgit diff --git a/pom.xml b/pom.xml index 3fe63d73d..b0d3a8fc5 100644 --- a/pom.xml +++ b/pom.xml @@ -51,7 +51,7 @@ org.eclipse.jgit org.eclipse.jgit-parent pom - 5.1.8-SNAPSHOT + 5.1.8.201906050907-r JGit - Parent ${jgit-url} From 57ccca75e610550536bb6f6b5a61d5d23a0f4fc6 Mon Sep 17 00:00:00 2001 From: Matthias Sohn Date: Wed, 5 Jun 2019 15:23:56 +0200 Subject: [PATCH 18/18] Prepare 5.1.9-SNAPSHOT builds Change-Id: I60571e4e0bea04bb2c25ef3d0332a9ab6895db06 Signed-off-by: Matthias Sohn --- .../META-INF/MANIFEST.MF | 10 +- org.eclipse.jgit.ant.test/pom.xml | 2 +- org.eclipse.jgit.ant/META-INF/MANIFEST.MF | 6 +- org.eclipse.jgit.ant/pom.xml | 2 +- org.eclipse.jgit.archive/META-INF/MANIFEST.MF | 14 +-- .../META-INF/SOURCE-MANIFEST.MF | 4 +- org.eclipse.jgit.archive/pom.xml | 2 +- .../META-INF/MANIFEST.MF | 10 +- org.eclipse.jgit.http.apache/pom.xml | 2 +- .../META-INF/MANIFEST.MF | 26 +++--- org.eclipse.jgit.http.server/pom.xml | 2 +- .../META-INF/MANIFEST.MF | 40 ++++---- org.eclipse.jgit.http.test/pom.xml | 2 +- .../META-INF/MANIFEST.MF | 20 ++-- org.eclipse.jgit.junit.http/pom.xml | 2 +- org.eclipse.jgit.junit/META-INF/MANIFEST.MF | 36 ++++---- org.eclipse.jgit.junit/pom.xml | 2 +- .../META-INF/MANIFEST.MF | 38 ++++---- org.eclipse.jgit.lfs.server.test/pom.xml | 2 +- .../META-INF/MANIFEST.MF | 32 +++---- org.eclipse.jgit.lfs.server/pom.xml | 2 +- .../META-INF/MANIFEST.MF | 24 ++--- org.eclipse.jgit.lfs.test/pom.xml | 2 +- org.eclipse.jgit.lfs/META-INF/MANIFEST.MF | 46 +++++----- org.eclipse.jgit.lfs/pom.xml | 2 +- .../org.eclipse.jgit.feature/feature.xml | 2 +- .../org.eclipse.jgit.feature/pom.xml | 2 +- .../feature.xml | 2 +- .../pom.xml | 2 +- .../feature.xml | 2 +- .../org.eclipse.jgit.junit.feature/pom.xml | 2 +- .../org.eclipse.jgit.lfs.feature/feature.xml | 2 +- .../org.eclipse.jgit.lfs.feature/pom.xml | 2 +- .../org.eclipse.jgit.pgm.feature/feature.xml | 6 +- .../org.eclipse.jgit.pgm.feature/pom.xml | 2 +- .../feature.xml | 2 +- .../pom.xml | 2 +- .../org.eclipse.jgit.repository/pom.xml | 2 +- .../feature.xml | 2 +- .../org.eclipse.jgit.source.feature/pom.xml | 2 +- .../META-INF/MANIFEST.MF | 2 +- .../org.eclipse.jgit.target/pom.xml | 2 +- org.eclipse.jgit.packaging/pom.xml | 2 +- .../META-INF/MANIFEST.MF | 36 ++++---- org.eclipse.jgit.pgm.test/pom.xml | 2 +- org.eclipse.jgit.pgm/META-INF/MANIFEST.MF | 86 ++++++++--------- .../META-INF/SOURCE-MANIFEST.MF | 4 +- org.eclipse.jgit.pgm/pom.xml | 2 +- org.eclipse.jgit.test/META-INF/MANIFEST.MF | 92 +++++++++---------- org.eclipse.jgit.test/pom.xml | 2 +- org.eclipse.jgit.ui/META-INF/MANIFEST.MF | 18 ++-- org.eclipse.jgit.ui/pom.xml | 2 +- org.eclipse.jgit/META-INF/MANIFEST.MF | 92 +++++++++---------- org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF | 4 +- org.eclipse.jgit/pom.xml | 2 +- pom.xml | 2 +- 56 files changed, 357 insertions(+), 357 deletions(-) diff --git a/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF index 65a06ff10..76770f3f5 100644 --- a/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.ant.test/META-INF/MANIFEST.MF @@ -4,13 +4,13 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.ant.test Bundle-SymbolicName: org.eclipse.jgit.ant.test -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Import-Package: org.apache.tools.ant, - org.eclipse.jgit.ant.tasks;version="[5.1.8,5.2.0)", - org.eclipse.jgit.junit;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util;version="[5.1.8,5.2.0)", + org.eclipse.jgit.ant.tasks;version="[5.1.9,5.2.0)", + org.eclipse.jgit.junit;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util;version="[5.1.9,5.2.0)", org.hamcrest.core;version="[1.1.0,2.0.0)", org.junit;version="[4.12,5.0.0)" diff --git a/org.eclipse.jgit.ant.test/pom.xml b/org.eclipse.jgit.ant.test/pom.xml index 916142ca8..3c133833d 100644 --- a/org.eclipse.jgit.ant.test/pom.xml +++ b/org.eclipse.jgit.ant.test/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.ant.test diff --git a/org.eclipse.jgit.ant/META-INF/MANIFEST.MF b/org.eclipse.jgit.ant/META-INF/MANIFEST.MF index 86fe59260..99ca3b2c8 100644 --- a/org.eclipse.jgit.ant/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.ant/META-INF/MANIFEST.MF @@ -3,11 +3,11 @@ Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Automatic-Module-Name: org.eclipse.jgit.ant Bundle-SymbolicName: org.eclipse.jgit.ant -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Import-Package: org.apache.tools.ant, - org.eclipse.jgit.storage.file;version="[5.1.8,5.2.0)" + org.eclipse.jgit.storage.file;version="[5.1.9,5.2.0)" Bundle-Localization: plugin Bundle-Vendor: %Provider-Name -Export-Package: org.eclipse.jgit.ant.tasks;version="5.1.8"; +Export-Package: org.eclipse.jgit.ant.tasks;version="5.1.9"; uses:="org.apache.tools.ant.types,org.apache.tools.ant" diff --git a/org.eclipse.jgit.ant/pom.xml b/org.eclipse.jgit.ant/pom.xml index 81f5a4c98..f12d4173d 100644 --- a/org.eclipse.jgit.ant/pom.xml +++ b/org.eclipse.jgit.ant/pom.xml @@ -48,7 +48,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.ant diff --git a/org.eclipse.jgit.archive/META-INF/MANIFEST.MF b/org.eclipse.jgit.archive/META-INF/MANIFEST.MF index 7d141d84b..d1ed4da66 100644 --- a/org.eclipse.jgit.archive/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.archive/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.archive Bundle-SymbolicName: org.eclipse.jgit.archive -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier Bundle-Vendor: %provider_name Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: JavaSE-1.8 @@ -13,15 +13,15 @@ Import-Package: org.apache.commons.compress.archivers;version="[1.4,2.0)", org.apache.commons.compress.compressors.bzip2;version="[1.4,2.0)", org.apache.commons.compress.compressors.gzip;version="[1.4,2.0)", org.apache.commons.compress.compressors.xz;version="[1.4,2.0)", - org.eclipse.jgit.api;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.nls;version="[5.1.8,5.2.0)", - org.eclipse.jgit.revwalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util;version="[5.1.8,5.2.0)", + org.eclipse.jgit.api;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.nls;version="[5.1.9,5.2.0)", + org.eclipse.jgit.revwalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util;version="[5.1.9,5.2.0)", org.osgi.framework;version="[1.3.0,2.0.0)" Bundle-ActivationPolicy: lazy Bundle-Activator: org.eclipse.jgit.archive.FormatActivator -Export-Package: org.eclipse.jgit.archive;version="5.1.8"; +Export-Package: org.eclipse.jgit.archive;version="5.1.9"; uses:="org.eclipse.jgit.lib, org.eclipse.jgit.api, org.apache.commons.compress.archivers, diff --git a/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF index 81bdf06e1..5c1975809 100644 --- a/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF +++ b/org.eclipse.jgit.archive/META-INF/SOURCE-MANIFEST.MF @@ -3,5 +3,5 @@ Bundle-ManifestVersion: 2 Bundle-Name: org.eclipse.jgit.archive - Sources Bundle-SymbolicName: org.eclipse.jgit.archive.source Bundle-Vendor: Eclipse.org - JGit -Bundle-Version: 5.1.8.201906050907-r -Eclipse-SourceBundle: org.eclipse.jgit.archive;version="5.1.8.201906050907-r";roots="." +Bundle-Version: 5.1.9.qualifier +Eclipse-SourceBundle: org.eclipse.jgit.archive;version="5.1.9.qualifier";roots="." diff --git a/org.eclipse.jgit.archive/pom.xml b/org.eclipse.jgit.archive/pom.xml index 04729eaed..cb1e66b08 100644 --- a/org.eclipse.jgit.archive/pom.xml +++ b/org.eclipse.jgit.archive/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.archive diff --git a/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF index a0ee52792..5177a604c 100644 --- a/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.http.apache/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Automatic-Module-Name: org.eclipse.jgit.http.apache Bundle-SymbolicName: org.eclipse.jgit.http.apache -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-Localization: plugin Bundle-Vendor: %Provider-Name @@ -23,10 +23,10 @@ Import-Package: org.apache.http;version="[4.3.0,5.0.0)", org.apache.http.impl.client;version="[4.3.0,5.0.0)", org.apache.http.impl.conn;version="[4.3.0,5.0.0)", org.apache.http.params;version="[4.3.0,5.0.0)", - org.eclipse.jgit.nls;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport.http;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util;version="[5.1.8,5.2.0)" -Export-Package: org.eclipse.jgit.transport.http.apache;version="5.1.8"; + org.eclipse.jgit.nls;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport.http;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util;version="[5.1.9,5.2.0)" +Export-Package: org.eclipse.jgit.transport.http.apache;version="5.1.9"; uses:="org.apache.http.client, org.eclipse.jgit.transport.http, org.apache.http.entity, diff --git a/org.eclipse.jgit.http.apache/pom.xml b/org.eclipse.jgit.http.apache/pom.xml index 86a1a3a67..b9e11f7e9 100644 --- a/org.eclipse.jgit.http.apache/pom.xml +++ b/org.eclipse.jgit.http.apache/pom.xml @@ -48,7 +48,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.http.apache diff --git a/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF index 965c197da..dd469806e 100644 --- a/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.http.server/META-INF/MANIFEST.MF @@ -3,13 +3,13 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.http.server Bundle-SymbolicName: org.eclipse.jgit.http.server -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier Bundle-Localization: plugin Bundle-Vendor: %provider_name -Export-Package: org.eclipse.jgit.http.server;version="5.1.8", - org.eclipse.jgit.http.server.glue;version="5.1.8"; +Export-Package: org.eclipse.jgit.http.server;version="5.1.9", + org.eclipse.jgit.http.server.glue;version="5.1.9"; uses:="javax.servlet,javax.servlet.http", - org.eclipse.jgit.http.server.resolver;version="5.1.8"; + org.eclipse.jgit.http.server.resolver;version="5.1.9"; uses:="org.eclipse.jgit.transport.resolver, org.eclipse.jgit.lib, org.eclipse.jgit.transport, @@ -18,12 +18,12 @@ Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Import-Package: javax.servlet;version="[2.5.0,3.2.0)", javax.servlet.http;version="[2.5.0,3.2.0)", - org.eclipse.jgit.errors;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.dfs;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.file;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.nls;version="[5.1.8,5.2.0)", - org.eclipse.jgit.revwalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport.resolver;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util;version="[5.1.8,5.2.0)" + org.eclipse.jgit.errors;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.dfs;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.file;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.nls;version="[5.1.9,5.2.0)", + org.eclipse.jgit.revwalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport.resolver;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util;version="[5.1.9,5.2.0)" diff --git a/org.eclipse.jgit.http.server/pom.xml b/org.eclipse.jgit.http.server/pom.xml index 16508ec74..472c94250 100644 --- a/org.eclipse.jgit.http.server/pom.xml +++ b/org.eclipse.jgit.http.server/pom.xml @@ -52,7 +52,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.http.server diff --git a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF index 82efe7bef..4b8bff81b 100644 --- a/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.http.test/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.http.test Bundle-SymbolicName: org.eclipse.jgit.http.test -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier Bundle-Vendor: %provider_name Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: JavaSE-1.8 @@ -28,25 +28,25 @@ Import-Package: javax.servlet;version="[2.5.0,3.2.0)", org.eclipse.jetty.util.log;version="[9.4.5,10.0.0)", org.eclipse.jetty.util.security;version="[9.4.5,10.0.0)", org.eclipse.jetty.util.thread;version="[9.4.5,10.0.0)", - org.eclipse.jgit.errors;version="[5.1.8,5.2.0)", - org.eclipse.jgit.http.server;version="[5.1.8,5.2.0)", - org.eclipse.jgit.http.server.glue;version="[5.1.8,5.2.0)", - org.eclipse.jgit.http.server.resolver;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.dfs;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.file;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.reftable;version="[5.1.8,5.2.0)", - org.eclipse.jgit.junit;version="[5.1.8,5.2.0)", - org.eclipse.jgit.junit.http;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.nls;version="[5.1.8,5.2.0)", - org.eclipse.jgit.revwalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.storage.file;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport.http;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport.http.apache;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport.resolver;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util;version="[5.1.8,5.2.0)", + org.eclipse.jgit.errors;version="[5.1.9,5.2.0)", + org.eclipse.jgit.http.server;version="[5.1.9,5.2.0)", + org.eclipse.jgit.http.server.glue;version="[5.1.9,5.2.0)", + org.eclipse.jgit.http.server.resolver;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.dfs;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.file;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.reftable;version="[5.1.9,5.2.0)", + org.eclipse.jgit.junit;version="[5.1.9,5.2.0)", + org.eclipse.jgit.junit.http;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.nls;version="[5.1.9,5.2.0)", + org.eclipse.jgit.revwalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.storage.file;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport.http;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport.http.apache;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport.resolver;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util;version="[5.1.9,5.2.0)", org.hamcrest;version="[1.1.0,2.0.0)", org.hamcrest.core;version="[1.1.0,2.0.0)", org.junit;version="[4.12,5.0.0)", diff --git a/org.eclipse.jgit.http.test/pom.xml b/org.eclipse.jgit.http.test/pom.xml index 79469989c..fa0d8ea21 100644 --- a/org.eclipse.jgit.http.test/pom.xml +++ b/org.eclipse.jgit.http.test/pom.xml @@ -51,7 +51,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.http.test diff --git a/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF b/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF index 869c5e2d4..8d6357e79 100644 --- a/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.junit.http/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.junit.http Bundle-SymbolicName: org.eclipse.jgit.junit.http -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier Bundle-Localization: plugin Bundle-Vendor: %provider_name Bundle-ActivationPolicy: lazy @@ -22,16 +22,16 @@ Import-Package: javax.servlet;version="[2.5.0,3.2.0)", org.eclipse.jetty.util.log;version="[9.4.5,10.0.0)", org.eclipse.jetty.util.security;version="[9.4.5,10.0.0)", org.eclipse.jetty.util.ssl;version="[9.4.5,10.0.0)", - org.eclipse.jgit.errors;version="[5.1.8,5.2.0)", - org.eclipse.jgit.http.server;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.file;version="[5.1.8,5.2.0)", - org.eclipse.jgit.junit;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.revwalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport.resolver;version="[5.1.8,5.2.0)", + org.eclipse.jgit.errors;version="[5.1.9,5.2.0)", + org.eclipse.jgit.http.server;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.file;version="[5.1.9,5.2.0)", + org.eclipse.jgit.junit;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.revwalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport.resolver;version="[5.1.9,5.2.0)", org.junit;version="[4.12,5.0.0)" -Export-Package: org.eclipse.jgit.junit.http;version="5.1.8"; +Export-Package: org.eclipse.jgit.junit.http;version="5.1.9"; uses:="org.eclipse.jgit.transport, org.eclipse.jgit.junit, javax.servlet.http, diff --git a/org.eclipse.jgit.junit.http/pom.xml b/org.eclipse.jgit.junit.http/pom.xml index 2ff1353c9..cda2f6623 100644 --- a/org.eclipse.jgit.junit.http/pom.xml +++ b/org.eclipse.jgit.junit.http/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.junit.http diff --git a/org.eclipse.jgit.junit/META-INF/MANIFEST.MF b/org.eclipse.jgit.junit/META-INF/MANIFEST.MF index e06d2147f..b9cd4a3f2 100644 --- a/org.eclipse.jgit.junit/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.junit/META-INF/MANIFEST.MF @@ -3,31 +3,31 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.junit Bundle-SymbolicName: org.eclipse.jgit.junit -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier Bundle-Localization: plugin Bundle-Vendor: %provider_name Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Import-Package: org.eclipse.jgit.api;version="[5.1.8,5.2.0)", - org.eclipse.jgit.api.errors;version="[5.1.8,5.2.0)", - org.eclipse.jgit.dircache;version="[5.1.8,5.2.0)", - org.eclipse.jgit.errors;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.file;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.pack;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.merge;version="[5.1.8,5.2.0)", - org.eclipse.jgit.revwalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.storage.file;version="[5.1.8,5.2.0)", - org.eclipse.jgit.treewalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.treewalk.filter;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util.io;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util.time;version="[5.1.8,5.2.0)", +Import-Package: org.eclipse.jgit.api;version="[5.1.9,5.2.0)", + org.eclipse.jgit.api.errors;version="[5.1.9,5.2.0)", + org.eclipse.jgit.dircache;version="[5.1.9,5.2.0)", + org.eclipse.jgit.errors;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.file;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.pack;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.merge;version="[5.1.9,5.2.0)", + org.eclipse.jgit.revwalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.storage.file;version="[5.1.9,5.2.0)", + org.eclipse.jgit.treewalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.treewalk.filter;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util.io;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util.time;version="[5.1.9,5.2.0)", org.junit;version="[4.12,5.0.0)", org.junit.rules;version="[4.12,5.0.0)", org.junit.runner;version="[4.12,5.0.0)", org.junit.runners.model;version="[4.12,5.0.0)" -Export-Package: org.eclipse.jgit.junit;version="5.1.8"; +Export-Package: org.eclipse.jgit.junit;version="5.1.9"; uses:="org.eclipse.jgit.dircache, org.eclipse.jgit.lib, org.eclipse.jgit.revwalk, @@ -36,4 +36,4 @@ Export-Package: org.eclipse.jgit.junit;version="5.1.8"; org.eclipse.jgit.util, org.eclipse.jgit.storage.file, org.eclipse.jgit.api", - org.eclipse.jgit.junit.time;version="5.1.8" + org.eclipse.jgit.junit.time;version="5.1.9" diff --git a/org.eclipse.jgit.junit/pom.xml b/org.eclipse.jgit.junit/pom.xml index d1ca4bcd1..ab2000204 100644 --- a/org.eclipse.jgit.junit/pom.xml +++ b/org.eclipse.jgit.junit/pom.xml @@ -52,7 +52,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.junit diff --git a/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF index 77f94f605..4f05e9da3 100644 --- a/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.lfs.server.test/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.lfs.server.test Bundle-SymbolicName: org.eclipse.jgit.lfs.server.test -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier Bundle-Vendor: %provider_name Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: JavaSE-1.8 @@ -28,24 +28,24 @@ Import-Package: javax.servlet;version="[3.1.0,4.0.0)", org.eclipse.jetty.util.log;version="[9.4.5,10.0.0)", org.eclipse.jetty.util.security;version="[9.4.5,10.0.0)", org.eclipse.jetty.util.thread;version="[9.4.5,10.0.0)", - org.eclipse.jgit.api;version="[5.1.8,5.2.0)", - org.eclipse.jgit.api.errors;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.file;version="[5.1.8,5.2.0)", - org.eclipse.jgit.junit;version="[5.1.8,5.2.0)", - org.eclipse.jgit.junit.http;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs.errors;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs.server;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs.server.fs;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs.test;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.revwalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.storage.file;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport;version="[5.1.8,5.2.0)", - org.eclipse.jgit.treewalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.treewalk.filter;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util;version="[5.1.8,5.2.0)", + org.eclipse.jgit.api;version="[5.1.9,5.2.0)", + org.eclipse.jgit.api.errors;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.file;version="[5.1.9,5.2.0)", + org.eclipse.jgit.junit;version="[5.1.9,5.2.0)", + org.eclipse.jgit.junit.http;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs.errors;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs.server;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs.server.fs;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs.test;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.revwalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.storage.file;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport;version="[5.1.9,5.2.0)", + org.eclipse.jgit.treewalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.treewalk.filter;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util;version="[5.1.9,5.2.0)", org.hamcrest.core;version="[1.1.0,2.0.0)", org.junit;version="[4.12,5.0.0)", org.junit.rules;version="[4.12,5.0.0)", diff --git a/org.eclipse.jgit.lfs.server.test/pom.xml b/org.eclipse.jgit.lfs.server.test/pom.xml index 3a16126c5..b2cb9cbb0 100644 --- a/org.eclipse.jgit.lfs.server.test/pom.xml +++ b/org.eclipse.jgit.lfs.server.test/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.lfs.server.test diff --git a/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF index 13b0657e8..0dec21714 100644 --- a/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.lfs.server/META-INF/MANIFEST.MF @@ -3,19 +3,19 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.lfs.server Bundle-SymbolicName: org.eclipse.jgit.lfs.server -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier Bundle-Localization: plugin Bundle-Vendor: %provider_name -Export-Package: org.eclipse.jgit.lfs.server;version="5.1.8"; +Export-Package: org.eclipse.jgit.lfs.server;version="5.1.9"; uses:="javax.servlet.http, org.eclipse.jgit.lfs.lib", - org.eclipse.jgit.lfs.server.fs;version="5.1.8"; + org.eclipse.jgit.lfs.server.fs;version="5.1.9"; uses:="javax.servlet, javax.servlet.http, org.eclipse.jgit.lfs.server, org.eclipse.jgit.lfs.lib", - org.eclipse.jgit.lfs.server.internal;version="5.1.8";x-internal:=true, - org.eclipse.jgit.lfs.server.s3;version="5.1.8"; + org.eclipse.jgit.lfs.server.internal;version="5.1.9";x-internal:=true, + org.eclipse.jgit.lfs.server.s3;version="5.1.9"; uses:="org.eclipse.jgit.lfs.server, org.eclipse.jgit.lfs.lib" Bundle-RequiredExecutionEnvironment: JavaSE-1.8 @@ -25,15 +25,15 @@ Import-Package: com.google.gson;version="[2.8.0,3.0.0)", javax.servlet.http;version="[3.1.0,4.0.0)", org.apache.http;version="[4.3.0,5.0.0)", org.apache.http.client;version="[4.3.0,5.0.0)", - org.eclipse.jgit.annotations;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.file;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs.errors;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs.internal;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.nls;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport.http;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport.http.apache;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util;version="[5.1.8,5.2.0)", + org.eclipse.jgit.annotations;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.file;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs.errors;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs.internal;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.nls;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport.http;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport.http.apache;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util;version="[5.1.9,5.2.0)", org.slf4j;version="[1.7.0,2.0.0)" diff --git a/org.eclipse.jgit.lfs.server/pom.xml b/org.eclipse.jgit.lfs.server/pom.xml index 888beb6f8..543420c77 100644 --- a/org.eclipse.jgit.lfs.server/pom.xml +++ b/org.eclipse.jgit.lfs.server/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.lfs.server diff --git a/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF index bd1bf94f1..8e03dd84d 100644 --- a/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.lfs.test/META-INF/MANIFEST.MF @@ -3,23 +3,23 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.lfs.test Bundle-SymbolicName: org.eclipse.jgit.lfs.test -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier Bundle-Vendor: %provider_name Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Import-Package: org.eclipse.jgit.internal.storage.dfs;version="[5.1.8,5.2.0)", - org.eclipse.jgit.junit;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs.errors;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.revwalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.treewalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.treewalk.filter;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util;version="[5.1.8,5.2.0)", +Import-Package: org.eclipse.jgit.internal.storage.dfs;version="[5.1.9,5.2.0)", + org.eclipse.jgit.junit;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs.errors;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.revwalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.treewalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.treewalk.filter;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util;version="[5.1.9,5.2.0)", org.hamcrest.core;version="[1.1.0,2.0.0)", org.junit;version="[4.12,5.0.0)", org.junit.runner;version="[4.12,5.0.0)", org.junit.runners;version="[4.12,5.0.0)" -Export-Package: org.eclipse.jgit.lfs.test;version="5.1.8";x-friends:="org.eclipse.jgit.lfs.server.test" +Export-Package: org.eclipse.jgit.lfs.test;version="5.1.9";x-friends:="org.eclipse.jgit.lfs.server.test" diff --git a/org.eclipse.jgit.lfs.test/pom.xml b/org.eclipse.jgit.lfs.test/pom.xml index fbbc11d8f..c7734f257 100644 --- a/org.eclipse.jgit.lfs.test/pom.xml +++ b/org.eclipse.jgit.lfs.test/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.lfs.test diff --git a/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF b/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF index 611a70cc9..f731c5491 100644 --- a/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.lfs/META-INF/MANIFEST.MF @@ -3,33 +3,33 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.lfs Bundle-SymbolicName: org.eclipse.jgit.lfs -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier Bundle-Localization: plugin Bundle-Vendor: %provider_name -Export-Package: org.eclipse.jgit.lfs;version="5.1.8", - org.eclipse.jgit.lfs.errors;version="5.1.8", - org.eclipse.jgit.lfs.internal;version="5.1.8";x-friends:="org.eclipse.jgit.lfs.test,org.eclipse.jgit.lfs.server.fs,org.eclipse.jgit.lfs.server", - org.eclipse.jgit.lfs.lib;version="5.1.8" +Export-Package: org.eclipse.jgit.lfs;version="5.1.9", + org.eclipse.jgit.lfs.errors;version="5.1.9", + org.eclipse.jgit.lfs.internal;version="5.1.9";x-friends:="org.eclipse.jgit.lfs.test,org.eclipse.jgit.lfs.server.fs,org.eclipse.jgit.lfs.server", + org.eclipse.jgit.lfs.lib;version="5.1.9" Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Import-Package: com.google.gson;version="[2.8.2,3.0.0)", com.google.gson.stream;version="[2.8.2,3.0.0)", org.apache.http.impl.client;version="[4.2.6,5.0.0)", org.apache.http.impl.conn;version="[4.2.6,5.0.0)", - org.eclipse.jgit.annotations;version="[5.1.8,5.2.0)";resolution:=optional, - org.eclipse.jgit.api.errors;version="[5.1.8,5.2.0)", - org.eclipse.jgit.attributes;version="[5.1.8,5.2.0)", - org.eclipse.jgit.diff;version="[5.1.8,5.2.0)", - org.eclipse.jgit.errors;version="[5.1.8,5.2.0)", - org.eclipse.jgit.hooks;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.file;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.nls;version="[5.1.8,5.2.0)", - org.eclipse.jgit.revwalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.storage.file;version="[5.1.8,5.2.0)", - org.eclipse.jgit.storage.pack;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport.http;version="[5.1.8,5.2.0)", - org.eclipse.jgit.treewalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.treewalk.filter;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util.io;version="[5.1.8,5.2.0)" + org.eclipse.jgit.annotations;version="[5.1.9,5.2.0)";resolution:=optional, + org.eclipse.jgit.api.errors;version="[5.1.9,5.2.0)", + org.eclipse.jgit.attributes;version="[5.1.9,5.2.0)", + org.eclipse.jgit.diff;version="[5.1.9,5.2.0)", + org.eclipse.jgit.errors;version="[5.1.9,5.2.0)", + org.eclipse.jgit.hooks;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.file;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.nls;version="[5.1.9,5.2.0)", + org.eclipse.jgit.revwalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.storage.file;version="[5.1.9,5.2.0)", + org.eclipse.jgit.storage.pack;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport.http;version="[5.1.9,5.2.0)", + org.eclipse.jgit.treewalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.treewalk.filter;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util.io;version="[5.1.9,5.2.0)" diff --git a/org.eclipse.jgit.lfs/pom.xml b/org.eclipse.jgit.lfs/pom.xml index 0591862d1..311b6ceea 100644 --- a/org.eclipse.jgit.lfs/pom.xml +++ b/org.eclipse.jgit.lfs/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.lfs diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml index ff323bf5b..2a2588580 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml index f7b0e8e2b..cfbdee70c 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.feature/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.feature diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml index 5c2aefb78..d58fc2aae 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml index 9349abcdf..81ffd3a78 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.feature diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml index c6c2e85c1..3edf06977 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml index 345dc8fac..783af2d24 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.feature diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml index e0ff19f6c..bfb95c3e4 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml index 068c148a1..57ad03113 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.feature diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml index ff44935e8..b5dddaf5f 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.xml @@ -2,7 +2,7 @@ @@ -31,8 +31,8 @@ version="0.0.0"/> - - + + org.eclipse.jgit jgit.tycho.parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.feature diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/feature.xml index 1504d5354..902a904d2 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/feature.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/pom.xml index a92a3b969..2af5eb824 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.source.feature/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.feature diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml index d568a25f0..fb1a55627 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.repository diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml index edd70d60d..f9ae9d0a3 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml index 3b4fa2966..4621e1bbe 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.feature diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/META-INF/MANIFEST.MF b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/META-INF/MANIFEST.MF index 17ea9f25c..d6787015b 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/META-INF/MANIFEST.MF @@ -2,4 +2,4 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: JGit Target Platform Bundle Bundle-SymbolicName: org.eclipse.jgit.target -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/pom.xml index ccf8373c3..f25796f13 100644 --- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/pom.xml +++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/pom.xml @@ -49,7 +49,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.target diff --git a/org.eclipse.jgit.packaging/pom.xml b/org.eclipse.jgit.packaging/pom.xml index 3679a019a..d763cb03b 100644 --- a/org.eclipse.jgit.packaging/pom.xml +++ b/org.eclipse.jgit.packaging/pom.xml @@ -53,7 +53,7 @@ org.eclipse.jgit jgit.tycho.parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT pom JGit Tycho Parent diff --git a/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF index 9ede77da0..97a7ba22d 100644 --- a/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.pgm.test/META-INF/MANIFEST.MF @@ -3,28 +3,28 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.pgm.test Bundle-SymbolicName: org.eclipse.jgit.pgm.test -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier Bundle-Vendor: %provider_name Bundle-Localization: plugin Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Import-Package: org.eclipse.jgit.api;version="[5.1.8,5.2.0)", - org.eclipse.jgit.api.errors;version="[5.1.8,5.2.0)", - org.eclipse.jgit.diff;version="[5.1.8,5.2.0)", - org.eclipse.jgit.dircache;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.file;version="5.1.8", - org.eclipse.jgit.junit;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.merge;version="[5.1.8,5.2.0)", - org.eclipse.jgit.pgm;version="[5.1.8,5.2.0)", - org.eclipse.jgit.pgm.internal;version="[5.1.8,5.2.0)", - org.eclipse.jgit.pgm.opt;version="[5.1.8,5.2.0)", - org.eclipse.jgit.revwalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.storage.file;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport;version="[5.1.8,5.2.0)", - org.eclipse.jgit.treewalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util.io;version="[5.1.8,5.2.0)", +Import-Package: org.eclipse.jgit.api;version="[5.1.9,5.2.0)", + org.eclipse.jgit.api.errors;version="[5.1.9,5.2.0)", + org.eclipse.jgit.diff;version="[5.1.9,5.2.0)", + org.eclipse.jgit.dircache;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.file;version="5.1.9", + org.eclipse.jgit.junit;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.merge;version="[5.1.9,5.2.0)", + org.eclipse.jgit.pgm;version="[5.1.9,5.2.0)", + org.eclipse.jgit.pgm.internal;version="[5.1.9,5.2.0)", + org.eclipse.jgit.pgm.opt;version="[5.1.9,5.2.0)", + org.eclipse.jgit.revwalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.storage.file;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport;version="[5.1.9,5.2.0)", + org.eclipse.jgit.treewalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util.io;version="[5.1.9,5.2.0)", org.hamcrest.core;bundle-version="[1.1.0,2.0.0)", org.junit;version="[4.12,5.0.0)", org.junit.rules;version="[4.12,5.0.0)", diff --git a/org.eclipse.jgit.pgm.test/pom.xml b/org.eclipse.jgit.pgm.test/pom.xml index 4b6426ad9..d5641bec1 100644 --- a/org.eclipse.jgit.pgm.test/pom.xml +++ b/org.eclipse.jgit.pgm.test/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.pgm.test diff --git a/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF b/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF index 263e25362..ce4d6efc7 100644 --- a/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.pgm/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.pgm Bundle-SymbolicName: org.eclipse.jgit.pgm -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier Bundle-Vendor: %provider_name Bundle-ActivationPolicy: lazy Bundle-Localization: plugin @@ -28,49 +28,49 @@ Import-Package: javax.servlet;version="[3.1.0,4.0.0)", org.eclipse.jetty.util.log;version="[9.4.5,10.0.0)", org.eclipse.jetty.util.security;version="[9.4.5,10.0.0)", org.eclipse.jetty.util.thread;version="[9.4.5,10.0.0)", - org.eclipse.jgit.api;version="[5.1.8,5.2.0)", - org.eclipse.jgit.api.errors;version="[5.1.8,5.2.0)", - org.eclipse.jgit.archive;version="[5.1.8,5.2.0)", - org.eclipse.jgit.awtui;version="[5.1.8,5.2.0)", - org.eclipse.jgit.blame;version="[5.1.8,5.2.0)", - org.eclipse.jgit.diff;version="[5.1.8,5.2.0)", - org.eclipse.jgit.dircache;version="[5.1.8,5.2.0)", - org.eclipse.jgit.errors;version="[5.1.8,5.2.0)", - org.eclipse.jgit.gitrepo;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.ketch;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.dfs;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.file;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.io;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.pack;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.reftable;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.reftree;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs.server;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs.server.fs;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs.server.s3;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.merge;version="[5.1.8,5.2.0)", - org.eclipse.jgit.nls;version="[5.1.8,5.2.0)", - org.eclipse.jgit.notes;version="[5.1.8,5.2.0)", - org.eclipse.jgit.revplot;version="[5.1.8,5.2.0)", - org.eclipse.jgit.revwalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.revwalk.filter;version="[5.1.8,5.2.0)", - org.eclipse.jgit.storage.file;version="[5.1.8,5.2.0)", - org.eclipse.jgit.storage.pack;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport.http.apache;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport.resolver;version="[5.1.8,5.2.0)", - org.eclipse.jgit.treewalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.treewalk.filter;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util.io;version="[5.1.8,5.2.0)", + org.eclipse.jgit.api;version="[5.1.9,5.2.0)", + org.eclipse.jgit.api.errors;version="[5.1.9,5.2.0)", + org.eclipse.jgit.archive;version="[5.1.9,5.2.0)", + org.eclipse.jgit.awtui;version="[5.1.9,5.2.0)", + org.eclipse.jgit.blame;version="[5.1.9,5.2.0)", + org.eclipse.jgit.diff;version="[5.1.9,5.2.0)", + org.eclipse.jgit.dircache;version="[5.1.9,5.2.0)", + org.eclipse.jgit.errors;version="[5.1.9,5.2.0)", + org.eclipse.jgit.gitrepo;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.ketch;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.dfs;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.file;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.io;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.pack;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.reftable;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.reftree;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs.server;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs.server.fs;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs.server.s3;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.merge;version="[5.1.9,5.2.0)", + org.eclipse.jgit.nls;version="[5.1.9,5.2.0)", + org.eclipse.jgit.notes;version="[5.1.9,5.2.0)", + org.eclipse.jgit.revplot;version="[5.1.9,5.2.0)", + org.eclipse.jgit.revwalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.revwalk.filter;version="[5.1.9,5.2.0)", + org.eclipse.jgit.storage.file;version="[5.1.9,5.2.0)", + org.eclipse.jgit.storage.pack;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport.http.apache;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport.resolver;version="[5.1.9,5.2.0)", + org.eclipse.jgit.treewalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.treewalk.filter;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util.io;version="[5.1.9,5.2.0)", org.kohsuke.args4j;version="[2.33.0,3.0.0)", org.kohsuke.args4j.spi;version="[2.33.0,3.0.0)" -Export-Package: org.eclipse.jgit.console;version="5.1.8"; +Export-Package: org.eclipse.jgit.console;version="5.1.9"; uses:="org.eclipse.jgit.transport, org.eclipse.jgit.util", - org.eclipse.jgit.pgm;version="5.1.8"; + org.eclipse.jgit.pgm;version="5.1.9"; uses:="org.eclipse.jgit.revwalk, org.eclipse.jgit.treewalk.filter, org.eclipse.jgit.pgm.opt, @@ -81,11 +81,11 @@ Export-Package: org.eclipse.jgit.console;version="5.1.8"; org.eclipse.jgit.treewalk, javax.swing, org.eclipse.jgit.transport", - org.eclipse.jgit.pgm.debug;version="5.1.8"; + org.eclipse.jgit.pgm.debug;version="5.1.9"; uses:="org.eclipse.jgit.util.io, org.eclipse.jgit.pgm", - org.eclipse.jgit.pgm.internal;version="5.1.8";x-friends:="org.eclipse.jgit.pgm.test,org.eclipse.jgit.test", - org.eclipse.jgit.pgm.opt;version="5.1.8"; + org.eclipse.jgit.pgm.internal;version="5.1.9";x-friends:="org.eclipse.jgit.pgm.test,org.eclipse.jgit.test", + org.eclipse.jgit.pgm.opt;version="5.1.9"; uses:="org.eclipse.jgit.lib, org.eclipse.jgit.revwalk, org.kohsuke.args4j.spi, diff --git a/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF index 0dd5cf304..2c4fba808 100644 --- a/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF +++ b/org.eclipse.jgit.pgm/META-INF/SOURCE-MANIFEST.MF @@ -3,5 +3,5 @@ Bundle-ManifestVersion: 2 Bundle-Name: org.eclipse.jgit.pgm - Sources Bundle-SymbolicName: org.eclipse.jgit.pgm.source Bundle-Vendor: Eclipse.org - JGit -Bundle-Version: 5.1.8.201906050907-r -Eclipse-SourceBundle: org.eclipse.jgit.pgm;version="5.1.8.201906050907-r";roots="." +Bundle-Version: 5.1.9.qualifier +Eclipse-SourceBundle: org.eclipse.jgit.pgm;version="5.1.9.qualifier";roots="." diff --git a/org.eclipse.jgit.pgm/pom.xml b/org.eclipse.jgit.pgm/pom.xml index 56ddf10ed..98f579a9f 100644 --- a/org.eclipse.jgit.pgm/pom.xml +++ b/org.eclipse.jgit.pgm/pom.xml @@ -50,7 +50,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.pgm diff --git a/org.eclipse.jgit.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.test/META-INF/MANIFEST.MF index cb9e299b2..69ea99b4f 100644 --- a/org.eclipse.jgit.test/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.test/META-INF/MANIFEST.MF @@ -3,58 +3,58 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.test Bundle-SymbolicName: org.eclipse.jgit.test -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier Bundle-Localization: plugin Bundle-Vendor: %provider_name Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Import-Package: com.googlecode.javaewah;version="[1.1.6,2.0.0)", com.jcraft.jsch;version="[0.1.54,0.2.0)", - org.eclipse.jgit.api;version="[5.1.8,5.2.0)", - org.eclipse.jgit.api.errors;version="[5.1.8,5.2.0)", - org.eclipse.jgit.attributes;version="[5.1.8,5.2.0)", - org.eclipse.jgit.awtui;version="[5.1.8,5.2.0)", - org.eclipse.jgit.blame;version="[5.1.8,5.2.0)", - org.eclipse.jgit.diff;version="[5.1.8,5.2.0)", - org.eclipse.jgit.dircache;version="[5.1.8,5.2.0)", - org.eclipse.jgit.errors;version="[5.1.8,5.2.0)", - org.eclipse.jgit.events;version="[5.1.8,5.2.0)", - org.eclipse.jgit.fnmatch;version="[5.1.8,5.2.0)", - org.eclipse.jgit.gitrepo;version="[5.1.8,5.2.0)", - org.eclipse.jgit.hooks;version="[5.1.8,5.2.0)", - org.eclipse.jgit.ignore;version="[5.1.8,5.2.0)", - org.eclipse.jgit.ignore.internal;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.fsck;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.dfs;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.file;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.io;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.pack;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.reftable;version="[5.1.8,5.2.0)", - org.eclipse.jgit.internal.storage.reftree;version="[5.1.8,5.2.0)", - org.eclipse.jgit.junit;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lfs;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.merge;version="[5.1.8,5.2.0)", - org.eclipse.jgit.nls;version="[5.1.8,5.2.0)", - org.eclipse.jgit.notes;version="[5.1.8,5.2.0)", - org.eclipse.jgit.patch;version="[5.1.8,5.2.0)", - org.eclipse.jgit.pgm;version="[5.1.8,5.2.0)", - org.eclipse.jgit.pgm.internal;version="[5.1.8,5.2.0)", - org.eclipse.jgit.revplot;version="[5.1.8,5.2.0)", - org.eclipse.jgit.revwalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.revwalk.filter;version="[5.1.8,5.2.0)", - org.eclipse.jgit.storage.file;version="[5.1.8,5.2.0)", - org.eclipse.jgit.storage.pack;version="[5.1.8,5.2.0)", - org.eclipse.jgit.submodule;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport.http;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport.resolver;version="[5.1.8,5.2.0)", - org.eclipse.jgit.treewalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.treewalk.filter;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util.io;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util.sha1;version="[5.1.8,5.2.0)", + org.eclipse.jgit.api;version="[5.1.9,5.2.0)", + org.eclipse.jgit.api.errors;version="[5.1.9,5.2.0)", + org.eclipse.jgit.attributes;version="[5.1.9,5.2.0)", + org.eclipse.jgit.awtui;version="[5.1.9,5.2.0)", + org.eclipse.jgit.blame;version="[5.1.9,5.2.0)", + org.eclipse.jgit.diff;version="[5.1.9,5.2.0)", + org.eclipse.jgit.dircache;version="[5.1.9,5.2.0)", + org.eclipse.jgit.errors;version="[5.1.9,5.2.0)", + org.eclipse.jgit.events;version="[5.1.9,5.2.0)", + org.eclipse.jgit.fnmatch;version="[5.1.9,5.2.0)", + org.eclipse.jgit.gitrepo;version="[5.1.9,5.2.0)", + org.eclipse.jgit.hooks;version="[5.1.9,5.2.0)", + org.eclipse.jgit.ignore;version="[5.1.9,5.2.0)", + org.eclipse.jgit.ignore.internal;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.fsck;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.dfs;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.file;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.io;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.pack;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.reftable;version="[5.1.9,5.2.0)", + org.eclipse.jgit.internal.storage.reftree;version="[5.1.9,5.2.0)", + org.eclipse.jgit.junit;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lfs;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.merge;version="[5.1.9,5.2.0)", + org.eclipse.jgit.nls;version="[5.1.9,5.2.0)", + org.eclipse.jgit.notes;version="[5.1.9,5.2.0)", + org.eclipse.jgit.patch;version="[5.1.9,5.2.0)", + org.eclipse.jgit.pgm;version="[5.1.9,5.2.0)", + org.eclipse.jgit.pgm.internal;version="[5.1.9,5.2.0)", + org.eclipse.jgit.revplot;version="[5.1.9,5.2.0)", + org.eclipse.jgit.revwalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.revwalk.filter;version="[5.1.9,5.2.0)", + org.eclipse.jgit.storage.file;version="[5.1.9,5.2.0)", + org.eclipse.jgit.storage.pack;version="[5.1.9,5.2.0)", + org.eclipse.jgit.submodule;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport.http;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport.resolver;version="[5.1.9,5.2.0)", + org.eclipse.jgit.treewalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.treewalk.filter;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util.io;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util.sha1;version="[5.1.9,5.2.0)", org.junit;version="[4.12,5.0.0)", org.junit.experimental.theories;version="[4.12,5.0.0)", org.junit.rules;version="[4.12,5.0.0)", diff --git a/org.eclipse.jgit.test/pom.xml b/org.eclipse.jgit.test/pom.xml index 7622b81c9..7a4d58017 100644 --- a/org.eclipse.jgit.test/pom.xml +++ b/org.eclipse.jgit.test/pom.xml @@ -52,7 +52,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.test diff --git a/org.eclipse.jgit.ui/META-INF/MANIFEST.MF b/org.eclipse.jgit.ui/META-INF/MANIFEST.MF index 1dfd6a544..18d0bd55a 100644 --- a/org.eclipse.jgit.ui/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit.ui/META-INF/MANIFEST.MF @@ -4,14 +4,14 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit.ui Bundle-SymbolicName: org.eclipse.jgit.ui -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier Bundle-Vendor: %provider_name Bundle-RequiredExecutionEnvironment: JavaSE-1.8 -Export-Package: org.eclipse.jgit.awtui;version="5.1.8" -Import-Package: org.eclipse.jgit.errors;version="[5.1.8,5.2.0)", - org.eclipse.jgit.lib;version="[5.1.8,5.2.0)", - org.eclipse.jgit.nls;version="[5.1.8,5.2.0)", - org.eclipse.jgit.revplot;version="[5.1.8,5.2.0)", - org.eclipse.jgit.revwalk;version="[5.1.8,5.2.0)", - org.eclipse.jgit.transport;version="[5.1.8,5.2.0)", - org.eclipse.jgit.util;version="[5.1.8,5.2.0)" +Export-Package: org.eclipse.jgit.awtui;version="5.1.9" +Import-Package: org.eclipse.jgit.errors;version="[5.1.9,5.2.0)", + org.eclipse.jgit.lib;version="[5.1.9,5.2.0)", + org.eclipse.jgit.nls;version="[5.1.9,5.2.0)", + org.eclipse.jgit.revplot;version="[5.1.9,5.2.0)", + org.eclipse.jgit.revwalk;version="[5.1.9,5.2.0)", + org.eclipse.jgit.transport;version="[5.1.9,5.2.0)", + org.eclipse.jgit.util;version="[5.1.9,5.2.0)" diff --git a/org.eclipse.jgit.ui/pom.xml b/org.eclipse.jgit.ui/pom.xml index d280f4004..0260d77ca 100644 --- a/org.eclipse.jgit.ui/pom.xml +++ b/org.eclipse.jgit.ui/pom.xml @@ -52,7 +52,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit.ui diff --git a/org.eclipse.jgit/META-INF/MANIFEST.MF b/org.eclipse.jgit/META-INF/MANIFEST.MF index 3f388bc6e..470871c50 100644 --- a/org.eclipse.jgit/META-INF/MANIFEST.MF +++ b/org.eclipse.jgit/META-INF/MANIFEST.MF @@ -3,12 +3,12 @@ Bundle-ManifestVersion: 2 Bundle-Name: %plugin_name Automatic-Module-Name: org.eclipse.jgit Bundle-SymbolicName: org.eclipse.jgit -Bundle-Version: 5.1.8.201906050907-r +Bundle-Version: 5.1.9.qualifier Bundle-Localization: plugin Bundle-Vendor: %provider_name Bundle-ActivationPolicy: lazy -Export-Package: org.eclipse.jgit.annotations;version="5.1.8", - org.eclipse.jgit.api;version="5.1.8"; +Export-Package: org.eclipse.jgit.annotations;version="5.1.9", + org.eclipse.jgit.api;version="5.1.9"; uses:="org.eclipse.jgit.revwalk, org.eclipse.jgit.treewalk.filter, org.eclipse.jgit.diff, @@ -22,52 +22,52 @@ Export-Package: org.eclipse.jgit.annotations;version="5.1.8", org.eclipse.jgit.submodule, org.eclipse.jgit.transport, org.eclipse.jgit.merge", - org.eclipse.jgit.api.errors;version="5.1.8";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.errors", - org.eclipse.jgit.attributes;version="5.1.8", - org.eclipse.jgit.blame;version="5.1.8"; + org.eclipse.jgit.api.errors;version="5.1.9";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.errors", + org.eclipse.jgit.attributes;version="5.1.9", + org.eclipse.jgit.blame;version="5.1.9"; uses:="org.eclipse.jgit.lib, org.eclipse.jgit.revwalk, org.eclipse.jgit.treewalk.filter, org.eclipse.jgit.diff", - org.eclipse.jgit.diff;version="5.1.8"; + org.eclipse.jgit.diff;version="5.1.9"; uses:="org.eclipse.jgit.patch, org.eclipse.jgit.lib, org.eclipse.jgit.treewalk, org.eclipse.jgit.revwalk, org.eclipse.jgit.treewalk.filter, org.eclipse.jgit.util", - org.eclipse.jgit.dircache;version="5.1.8"; + org.eclipse.jgit.dircache;version="5.1.9"; uses:="org.eclipse.jgit.lib, org.eclipse.jgit.treewalk, org.eclipse.jgit.util, org.eclipse.jgit.events, org.eclipse.jgit.attributes", - org.eclipse.jgit.errors;version="5.1.8"; + org.eclipse.jgit.errors;version="5.1.9"; uses:="org.eclipse.jgit.lib, org.eclipse.jgit.internal.storage.pack, org.eclipse.jgit.transport, org.eclipse.jgit.dircache", - org.eclipse.jgit.events;version="5.1.8";uses:="org.eclipse.jgit.lib", - org.eclipse.jgit.fnmatch;version="5.1.8", - org.eclipse.jgit.gitrepo;version="5.1.8"; + org.eclipse.jgit.events;version="5.1.9";uses:="org.eclipse.jgit.lib", + org.eclipse.jgit.fnmatch;version="5.1.9", + org.eclipse.jgit.gitrepo;version="5.1.9"; uses:="org.eclipse.jgit.api, org.eclipse.jgit.lib, org.eclipse.jgit.revwalk, org.xml.sax.helpers, org.xml.sax", - org.eclipse.jgit.gitrepo.internal;version="5.1.8";x-internal:=true, - org.eclipse.jgit.hooks;version="5.1.8";uses:="org.eclipse.jgit.lib", - org.eclipse.jgit.ignore;version="5.1.8", - org.eclipse.jgit.ignore.internal;version="5.1.8";x-friends:="org.eclipse.jgit.test", - org.eclipse.jgit.internal;version="5.1.8";x-friends:="org.eclipse.jgit.test,org.eclipse.jgit.http.test", - org.eclipse.jgit.internal.fsck;version="5.1.8";x-friends:="org.eclipse.jgit.test", - org.eclipse.jgit.internal.ketch;version="5.1.8";x-friends:="org.eclipse.jgit.junit,org.eclipse.jgit.test,org.eclipse.jgit.pgm", - org.eclipse.jgit.internal.storage.dfs;version="5.1.8"; + org.eclipse.jgit.gitrepo.internal;version="5.1.9";x-internal:=true, + org.eclipse.jgit.hooks;version="5.1.9";uses:="org.eclipse.jgit.lib", + org.eclipse.jgit.ignore;version="5.1.9", + org.eclipse.jgit.ignore.internal;version="5.1.9";x-friends:="org.eclipse.jgit.test", + org.eclipse.jgit.internal;version="5.1.9";x-friends:="org.eclipse.jgit.test,org.eclipse.jgit.http.test", + org.eclipse.jgit.internal.fsck;version="5.1.9";x-friends:="org.eclipse.jgit.test", + org.eclipse.jgit.internal.ketch;version="5.1.9";x-friends:="org.eclipse.jgit.junit,org.eclipse.jgit.test,org.eclipse.jgit.pgm", + org.eclipse.jgit.internal.storage.dfs;version="5.1.9"; x-friends:="org.eclipse.jgit.test, org.eclipse.jgit.http.server, org.eclipse.jgit.http.test, org.eclipse.jgit.lfs.test", - org.eclipse.jgit.internal.storage.file;version="5.1.8"; + org.eclipse.jgit.internal.storage.file;version="5.1.9"; x-friends:="org.eclipse.jgit.test, org.eclipse.jgit.junit, org.eclipse.jgit.junit.http, @@ -75,12 +75,12 @@ Export-Package: org.eclipse.jgit.annotations;version="5.1.8", org.eclipse.jgit.lfs, org.eclipse.jgit.pgm, org.eclipse.jgit.pgm.test", - org.eclipse.jgit.internal.storage.io;version="5.1.8";x-friends:="org.eclipse.jgit.junit,org.eclipse.jgit.test,org.eclipse.jgit.pgm", - org.eclipse.jgit.internal.storage.pack;version="5.1.8";x-friends:="org.eclipse.jgit.junit,org.eclipse.jgit.test,org.eclipse.jgit.pgm", - org.eclipse.jgit.internal.storage.reftable;version="5.1.8"; + org.eclipse.jgit.internal.storage.io;version="5.1.9";x-friends:="org.eclipse.jgit.junit,org.eclipse.jgit.test,org.eclipse.jgit.pgm", + org.eclipse.jgit.internal.storage.pack;version="5.1.9";x-friends:="org.eclipse.jgit.junit,org.eclipse.jgit.test,org.eclipse.jgit.pgm", + org.eclipse.jgit.internal.storage.reftable;version="5.1.9"; x-friends:="org.eclipse.jgit.http.test,org.eclipse.jgit.junit,org.eclipse.jgit.test,org.eclipse.jgit.pgm", - org.eclipse.jgit.internal.storage.reftree;version="5.1.8";x-friends:="org.eclipse.jgit.junit,org.eclipse.jgit.test,org.eclipse.jgit.pgm", - org.eclipse.jgit.lib;version="5.1.8"; + org.eclipse.jgit.internal.storage.reftree;version="5.1.9";x-friends:="org.eclipse.jgit.junit,org.eclipse.jgit.test,org.eclipse.jgit.pgm", + org.eclipse.jgit.lib;version="5.1.9"; uses:="org.eclipse.jgit.revwalk, org.eclipse.jgit.treewalk.filter, org.eclipse.jgit.util, @@ -90,33 +90,33 @@ Export-Package: org.eclipse.jgit.annotations;version="5.1.8", org.eclipse.jgit.treewalk, org.eclipse.jgit.transport, org.eclipse.jgit.submodule", - org.eclipse.jgit.lib.internal;version="5.1.8";x-internal:=true, - org.eclipse.jgit.merge;version="5.1.8"; + org.eclipse.jgit.lib.internal;version="5.1.9";x-internal:=true, + org.eclipse.jgit.merge;version="5.1.9"; uses:="org.eclipse.jgit.lib, org.eclipse.jgit.treewalk, org.eclipse.jgit.revwalk, org.eclipse.jgit.diff, org.eclipse.jgit.dircache, org.eclipse.jgit.api", - org.eclipse.jgit.nls;version="5.1.8", - org.eclipse.jgit.notes;version="5.1.8"; + org.eclipse.jgit.nls;version="5.1.9", + org.eclipse.jgit.notes;version="5.1.9"; uses:="org.eclipse.jgit.lib, org.eclipse.jgit.treewalk, org.eclipse.jgit.revwalk, org.eclipse.jgit.merge", - org.eclipse.jgit.patch;version="5.1.8";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.diff", - org.eclipse.jgit.revplot;version="5.1.8";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.revwalk", - org.eclipse.jgit.revwalk;version="5.1.8"; + org.eclipse.jgit.patch;version="5.1.9";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.diff", + org.eclipse.jgit.revplot;version="5.1.9";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.revwalk", + org.eclipse.jgit.revwalk;version="5.1.9"; uses:="org.eclipse.jgit.lib, org.eclipse.jgit.treewalk, org.eclipse.jgit.treewalk.filter, org.eclipse.jgit.diff, org.eclipse.jgit.revwalk.filter", - org.eclipse.jgit.revwalk.filter;version="5.1.8";uses:="org.eclipse.jgit.revwalk,org.eclipse.jgit.lib,org.eclipse.jgit.util", - org.eclipse.jgit.storage.file;version="5.1.8";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.util", - org.eclipse.jgit.storage.pack;version="5.1.8";uses:="org.eclipse.jgit.lib", - org.eclipse.jgit.submodule;version="5.1.8";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.treewalk.filter,org.eclipse.jgit.treewalk", - org.eclipse.jgit.transport;version="5.1.8"; + org.eclipse.jgit.revwalk.filter;version="5.1.9";uses:="org.eclipse.jgit.revwalk,org.eclipse.jgit.lib,org.eclipse.jgit.util", + org.eclipse.jgit.storage.file;version="5.1.9";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.util", + org.eclipse.jgit.storage.pack;version="5.1.9";uses:="org.eclipse.jgit.lib", + org.eclipse.jgit.submodule;version="5.1.9";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.treewalk.filter,org.eclipse.jgit.treewalk", + org.eclipse.jgit.transport;version="5.1.9"; uses:="org.eclipse.jgit.transport.resolver, org.eclipse.jgit.revwalk, org.eclipse.jgit.internal.storage.pack, @@ -128,24 +128,24 @@ Export-Package: org.eclipse.jgit.annotations;version="5.1.8", org.eclipse.jgit.transport.http, org.eclipse.jgit.errors, org.eclipse.jgit.storage.pack", - org.eclipse.jgit.transport.http;version="5.1.8";uses:="javax.net.ssl", - org.eclipse.jgit.transport.resolver;version="5.1.8";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.transport", - org.eclipse.jgit.treewalk;version="5.1.8"; + org.eclipse.jgit.transport.http;version="5.1.9";uses:="javax.net.ssl", + org.eclipse.jgit.transport.resolver;version="5.1.9";uses:="org.eclipse.jgit.lib,org.eclipse.jgit.transport", + org.eclipse.jgit.treewalk;version="5.1.9"; uses:="org.eclipse.jgit.lib, org.eclipse.jgit.revwalk, org.eclipse.jgit.attributes, org.eclipse.jgit.treewalk.filter, org.eclipse.jgit.util, org.eclipse.jgit.dircache", - org.eclipse.jgit.treewalk.filter;version="5.1.8";uses:="org.eclipse.jgit.treewalk", - org.eclipse.jgit.util;version="5.1.8"; + org.eclipse.jgit.treewalk.filter;version="5.1.9";uses:="org.eclipse.jgit.treewalk", + org.eclipse.jgit.util;version="5.1.9"; uses:="org.eclipse.jgit.lib, org.eclipse.jgit.transport.http, org.eclipse.jgit.storage.file, org.ietf.jgss", - org.eclipse.jgit.util.io;version="5.1.8", - org.eclipse.jgit.util.sha1;version="5.1.8", - org.eclipse.jgit.util.time;version="5.1.8" + org.eclipse.jgit.util.io;version="5.1.9", + org.eclipse.jgit.util.sha1;version="5.1.9", + org.eclipse.jgit.util.time;version="5.1.9" Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Import-Package: com.googlecode.javaewah;version="[1.1.6,2.0.0)", com.jcraft.jsch;version="[0.1.37,0.2.0)", diff --git a/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF b/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF index a9a5b3e99..8885e64cb 100644 --- a/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF +++ b/org.eclipse.jgit/META-INF/SOURCE-MANIFEST.MF @@ -3,5 +3,5 @@ Bundle-ManifestVersion: 2 Bundle-Name: org.eclipse.jgit - Sources Bundle-SymbolicName: org.eclipse.jgit.source Bundle-Vendor: Eclipse.org - JGit -Bundle-Version: 5.1.8.201906050907-r -Eclipse-SourceBundle: org.eclipse.jgit;version="5.1.8.201906050907-r";roots="." +Bundle-Version: 5.1.9.qualifier +Eclipse-SourceBundle: org.eclipse.jgit;version="5.1.9.qualifier";roots="." diff --git a/org.eclipse.jgit/pom.xml b/org.eclipse.jgit/pom.xml index e67b7bf50..eedb5e80d 100644 --- a/org.eclipse.jgit/pom.xml +++ b/org.eclipse.jgit/pom.xml @@ -53,7 +53,7 @@ org.eclipse.jgit org.eclipse.jgit-parent - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT org.eclipse.jgit diff --git a/pom.xml b/pom.xml index b0d3a8fc5..934f1b895 100644 --- a/pom.xml +++ b/pom.xml @@ -51,7 +51,7 @@ org.eclipse.jgit org.eclipse.jgit-parent pom - 5.1.8.201906050907-r + 5.1.9-SNAPSHOT JGit - Parent ${jgit-url}