Merge ".gitignore: remove editor- and OS-specific files"
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 6bae2cb..ccf68c4 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
@@ -23,7 +23,7 @@
</url>
<requires>
- <import plugin="org.eclipse.jgit"/>
+ <import plugin="org.eclipse.jgit" version="5.4.0" match="equivalent"/>
</requires>
<plugin
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 0079970..bbd1ffe 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
@@ -24,6 +24,7 @@
<requires>
<import plugin="com.jcraft.jsch"/>
+ <import plugin="org.eclipse.jgit" version="5.4.0" match="equivalent"/>
</requires>
<plugin
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 9af34c7..62be3c8 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
@@ -23,7 +23,7 @@
</url>
<requires>
- <import plugin="org.eclipse.jgit"/>
+ <import feature="org.eclipse.jgit" version="5.4.0" match="equivalent"/>
</requires>
<plugin
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 c6418c1..92f0a24 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
@@ -30,6 +30,10 @@
id="org.eclipse.jgit.lfs"
version="0.0.0"/>
+ <includes
+ id="org.eclipse.jgit.ssh.apache"
+ version="0.0.0"/>
+
<requires>
<import feature="org.eclipse.jgit" version="5.4.0" match="equivalent"/>
<import feature="org.eclipse.jgit.lfs" version="5.4.0" match="equivalent"/>
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 324b751..96576fa 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
@@ -22,6 +22,10 @@
<discovery label="%updateSiteName" url="http://download.eclipse.org/egit/updates"/>
</url>
+ <requires>
+ <import feature="org.eclipse.jgit.pgm" version="5.4.0" match="equivalent"/>
+ </requires>
+
<plugin
id="org.eclipse.jgit.pgm.source"
download-size="0"
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 31ea4c4..405619b 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
@@ -59,4 +59,12 @@
<name>JGit Command Line Interface Source Feature</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.jgit.feature</groupId>
+ <artifactId>org.eclipse.jgit.pgm</artifactId>
+ <version>5.4.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
</project>
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 3f0cb1d..d39d29c 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
@@ -22,6 +22,10 @@
<discovery label="%updateSiteName" url="http://download.eclipse.org/egit/updates"/>
</url>
+ <requires>
+ <import feature="org.eclipse.jgit" version="5.4.0" match="equivalent"/>
+ </requires>
+
<plugin
id="org.eclipse.jgit.source"
download-size="0"
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 802c9e4..b156487 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
@@ -59,4 +59,12 @@
<name>JGit Source Feature</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.jgit.feature</groupId>
+ <artifactId>org.eclipse.jgit</artifactId>
+ <version>5.4.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
</project>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/feature.xml
index 356e5f0..0e3966d 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/feature.xml
@@ -23,7 +23,7 @@
</url>
<requires>
- <import plugin="org.eclipse.jgit"/>
+ <import feature="org.eclipse.jgit" version="5.4.0" match="equivalent"/>
</requires>
<plugin
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.source.feature/feature.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.source.feature/feature.xml
index 4e8dc12..e407c09 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.source.feature/feature.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.source.feature/feature.xml
@@ -6,15 +6,15 @@
provider-name="%providerName">
<description url="http://www.eclipse.org/jgit/">
- %description
+ %description
</description>
<copyright>
- %copyright
+ %copyright
</copyright>
<license url="%licenseURL">
- %license
+ %license
</license>
<url>
@@ -22,10 +22,15 @@
<discovery label="%updateSiteName" url="http://download.eclipse.org/egit/updates"/>
</url>
+ <requires>
+ <import feature="org.eclipse.jgit.ssh.apache" version="5.4.0" match="equivalent"/>
+ </requires>
+
<plugin
id="org.eclipse.jgit.ssh.apache.source"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
+
</feature>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.source.feature/pom.xml b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.source.feature/pom.xml
index 2e826c0..8381ac8 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.source.feature/pom.xml
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.source.feature/pom.xml
@@ -59,4 +59,12 @@
<name>JGit Apache MINA ssh Source Feature</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.jgit.feature</groupId>
+ <artifactId>org.eclipse.jgit.ssh.apache</artifactId>
+ <version>5.4.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
</project>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/.classpath b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/.project b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/.project
index 48c2bd1..ed148da 100644
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/.project
+++ b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/.project
@@ -10,14 +10,8 @@
<arguments>
</arguments>
</buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
</buildSpec>
<natures>
- <nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
</natures>
</projectDescription>
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
deleted file mode 100644
index a95c4c4..0000000
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,5 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: JGit Target Platform Bundle
-Bundle-SymbolicName: org.eclipse.jgit.target
-Bundle-Version: 5.4.0.qualifier
diff --git a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/build.properties b/org.eclipse.jgit.packaging/org.eclipse.jgit.target/build.properties
deleted file mode 100644
index 34d2e4d..0000000
--- a/org.eclipse.jgit.packaging/org.eclipse.jgit.target/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/InMemoryRepositoryTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/InMemoryRepositoryTest.java
new file mode 100644
index 0000000..3b26c1f
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/InMemoryRepositoryTest.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2019, Google LLC.
+ * 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.dfs;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.eclipse.jgit.junit.TestRepository;
+import org.eclipse.jgit.lib.ObjectIdRef;
+import org.eclipse.jgit.lib.Ref;
+import org.eclipse.jgit.lib.Ref.Storage;
+import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.revwalk.RevTag;
+import org.junit.Test;
+
+public class InMemoryRepositoryTest {
+
+ @Test
+ public void keepUpdateIndexPeelingTag() throws Exception {
+ InMemoryRepository repo = new InMemoryRepository(
+ new DfsRepositoryDescription());
+ try (TestRepository<InMemoryRepository> git = new TestRepository<>(
+ repo)) {
+ RevCommit commit = git.branch("master").commit()
+ .message("first commit").create();
+ RevTag tag = git.tag("v0.1", commit);
+ git.update("refs/tags/v0.1", tag);
+
+ Ref unpeeledTag = new ObjectIdRef.Unpeeled(Storage.LOOSE,
+ "refs/tags/v0.1", tag.getId(), 1000);
+
+ Ref peeledTag = repo.getRefDatabase().peel(unpeeledTag);
+ assertTrue(peeledTag instanceof ObjectIdRef.PeeledTag);
+ assertEquals(1000, peeledTag.getUpdateIndex());
+ }
+ }
+
+ @Test
+ public void keepUpdateIndexPeelingNonTag() throws Exception {
+ InMemoryRepository repo = new InMemoryRepository(
+ new DfsRepositoryDescription());
+ try (TestRepository<InMemoryRepository> git = new TestRepository<>(
+ repo)) {
+ RevCommit commit = git.branch("master").commit()
+ .message("first commit").create();
+
+ Ref unpeeledRef = new ObjectIdRef.Unpeeled(Storage.LOOSE,
+ "refs/heads/master", commit.getId(), 1000);
+ Ref peeledRef = repo.getRefDatabase().peel(unpeeledRef);
+ assertTrue(peeledRef instanceof ObjectIdRef.PeeledNonTag);
+ assertEquals(1000, peeledRef.getUpdateIndex());
+ }
+ }
+}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ObjectCheckerTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ObjectCheckerTest.java
index 531c918..16ad70d 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ObjectCheckerTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ObjectCheckerTest.java
@@ -1678,7 +1678,6 @@ public void testRejectInvalidWindowsCharacters() {
rejectName('>');
rejectName(':');
rejectName('"');
- rejectName('/');
rejectName('\\');
rejectName('|');
rejectName('?');
@@ -1693,7 +1692,8 @@ private void rejectName(char c) {
checkOneName("te" + c + "st");
fail("incorrectly accepted with " + c);
} catch (CorruptObjectException e) {
- assertEquals("name contains '" + c + "'", e.getMessage());
+
+ assertEquals("char '" + c + "' not allowed in Windows filename", e.getMessage());
}
}
@@ -1703,7 +1703,19 @@ private void rejectName(byte c) {
checkOneName("te" + ((char) c) + "st");
fail("incorrectly accepted with 0x" + h);
} catch (CorruptObjectException e) {
- assertEquals("name contains byte 0x" + h, e.getMessage());
+ assertEquals("byte 0x" + h + " not allowed in Windows filename", e.getMessage());
+ }
+ }
+
+
+ @Test
+ public void testRejectInvalidCharacter() {
+ try {
+ checkOneName("te/st");
+ fail("incorrectly accepted with /");
+ } catch (CorruptObjectException e) {
+
+ assertEquals("name contains '/'", e.getMessage());
}
}
diff --git a/org.eclipse.jgit/.settings/.api_filters b/org.eclipse.jgit/.settings/.api_filters
index 90ea8bd..9392534 100644
--- a/org.eclipse.jgit/.settings/.api_filters
+++ b/org.eclipse.jgit/.settings/.api_filters
@@ -1,5 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<component id="org.eclipse.jgit" version="2">
+ <resource path="src/org/eclipse/jgit/lib/Ref.java" type="org.eclipse.jgit.lib.Ref">
+ <filter id="403767336">
+ <message_arguments>
+ <message_argument value="org.eclipse.jgit.lib.Ref"/>
+ <message_argument value="UNDEFINED_UPDATE_INDEX"/>
+ </message_arguments>
+ </filter>
+ </resource>
<resource path="src/org/eclipse/jgit/transport/Transport.java" type="org.eclipse.jgit.transport.Transport">
<filter comment="Marked as final since overriding a deprecated stub is likely a mistake" id="421654647">
<message_arguments>
@@ -15,20 +23,11 @@
</filter>
</resource>
<resource path="src/org/eclipse/jgit/transport/UploadPack.java" type="org.eclipse.jgit.transport.UploadPack">
- <filter comment="API was only non-final for one version, so unlikely to be overridden" id="1141899266">
+ <filter id="421654647">
<message_arguments>
- <message_argument value="5.3"/>
- <message_argument value="5.4"/>
+ <message_argument value="org.eclipse.jgit.transport.UploadPack"/>
<message_argument value="getFilterBlobLimit()"/>
</message_arguments>
</filter>
</resource>
- <resource path="src/org/eclipse/jgit/util/FS.java" type="org.eclipse.jgit.util.FS">
- <filter id="1142947843">
- <message_arguments>
- <message_argument value="4.5.6"/>
- <message_argument value="fileAttributes(File)"/>
- </message_arguments>
- </filter>
- </resource>
</component>
diff --git a/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties b/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
index c1d777b..9d221c9 100644
--- a/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
+++ b/org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
@@ -175,8 +175,8 @@
corruptObjectInvalidType2=invalid type {0}
corruptObjectMalformedHeader=malformed header: {0}
corruptObjectMissingEmail=missing email
-corruptObjectNameContainsByte=name contains byte 0x%x
-corruptObjectNameContainsChar=name contains '%c'
+corruptObjectNameContainsByte=byte 0x%x not allowed in Windows filename
+corruptObjectNameContainsChar=char '%c' not allowed in Windows filename
corruptObjectNameContainsNullByte=name contains byte 0x00
corruptObjectNameContainsSlash=name contains '/'
corruptObjectNameDot=invalid name '.'
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsRefDatabase.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsRefDatabase.java
index 8b2a03d..732cd4d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsRefDatabase.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsRefDatabase.java
@@ -43,6 +43,7 @@
package org.eclipse.jgit.internal.storage.dfs;
+import static org.eclipse.jgit.lib.Ref.UNDEFINED_UPDATE_INDEX;
import static org.eclipse.jgit.lib.Ref.Storage.NEW;
import java.io.IOException;
@@ -175,7 +176,7 @@ public Ref peel(Ref ref) throws IOException {
cachePeeledState(oldLeaf, newLeaf);
}
- return recreate(ref, newLeaf);
+ return recreate(ref, newLeaf, hasVersioning());
}
Ref doPeel(Ref leaf) throws MissingObjectException,
@@ -187,20 +188,26 @@ Ref doPeel(Ref leaf) throws MissingObjectException,
leaf.getStorage(),
leaf.getName(),
leaf.getObjectId(),
- rw.peel(obj).copy());
+ rw.peel(obj).copy(),
+ hasVersioning() ? leaf.getUpdateIndex()
+ : UNDEFINED_UPDATE_INDEX);
} else {
return new ObjectIdRef.PeeledNonTag(
leaf.getStorage(),
leaf.getName(),
- leaf.getObjectId());
+ leaf.getObjectId(),
+ hasVersioning() ? leaf.getUpdateIndex()
+ : UNDEFINED_UPDATE_INDEX);
}
}
}
- static Ref recreate(Ref old, Ref leaf) {
+ static Ref recreate(Ref old, Ref leaf, boolean hasVersioning) {
if (old.isSymbolic()) {
- Ref dst = recreate(old.getTarget(), leaf);
- return new SymbolicRef(old.getName(), dst);
+ Ref dst = recreate(old.getTarget(), leaf, hasVersioning);
+ return new SymbolicRef(old.getName(), dst,
+ hasVersioning ? old.getUpdateIndex()
+ : UNDEFINED_UPDATE_INDEX);
}
return leaf;
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReftableDatabase.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReftableDatabase.java
index 384273d..87983ce 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReftableDatabase.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsReftableDatabase.java
@@ -282,7 +282,7 @@ public Ref peel(Ref ref) throws IOException {
if (oldLeaf.isPeeled() || oldLeaf.getObjectId() == null) {
return ref;
}
- return recreate(ref, doPeel(oldLeaf));
+ return recreate(ref, doPeel(oldLeaf), hasVersioning());
}
@Override
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectIdRef.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectIdRef.java
index b791c64..d65c1bd 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectIdRef.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectIdRef.java
@@ -67,7 +67,7 @@ public static class Unpeeled extends ObjectIdRef {
*/
public Unpeeled(@NonNull Storage st, @NonNull String name,
@Nullable ObjectId id) {
- super(st, name, id, -1);
+ super(st, name, id, UNDEFINED_UPDATE_INDEX);
}
/**
@@ -119,7 +119,7 @@ public static class PeeledTag extends ObjectIdRef {
*/
public PeeledTag(@NonNull Storage st, @NonNull String name,
@Nullable ObjectId id, @NonNull ObjectId p) {
- super(st, name, id, -1);
+ super(st, name, id, UNDEFINED_UPDATE_INDEX);
peeledObjectId = p;
}
@@ -172,7 +172,7 @@ public static class PeeledNonTag extends ObjectIdRef {
*/
public PeeledNonTag(@NonNull Storage st, @NonNull String name,
@Nullable ObjectId id) {
- super(st, name, id, -1);
+ super(st, name, id, UNDEFINED_UPDATE_INDEX);
}
/**
@@ -284,7 +284,7 @@ public Storage getStorage() {
*/
@Override
public long getUpdateIndex() {
- if (updateIndex == -1) {
+ if (updateIndex == UNDEFINED_UPDATE_INDEX) {
throw new UnsupportedOperationException();
}
return updateIndex;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Ref.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Ref.java
index 32c8b06..4082d21 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Ref.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Ref.java
@@ -126,6 +126,13 @@ public boolean isPacked() {
}
/**
+ * Update index value when a reference doesn't have one
+ *
+ * @since 5.4
+ */
+ long UNDEFINED_UPDATE_INDEX = -1L;
+
+ /**
* What this ref is called within the repository.
*
* @return name of this ref.
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/SymbolicRef.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/SymbolicRef.java
index 00fcf52..9f0568f 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/SymbolicRef.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/SymbolicRef.java
@@ -71,7 +71,7 @@ public class SymbolicRef implements Ref {
public SymbolicRef(@NonNull String refName, @NonNull Ref target) {
this.name = refName;
this.target = target;
- this.updateIndex = -1;
+ this.updateIndex = UNDEFINED_UPDATE_INDEX;
}
/**
@@ -155,7 +155,7 @@ public boolean isPeeled() {
*/
@Override
public long getUpdateIndex() {
- if (updateIndex == -1) {
+ if (updateIndex == UNDEFINED_UPDATE_INDEX) {
throw new UnsupportedOperationException();
}
return updateIndex;
diff --git a/tools/version.sh b/tools/version.sh
index 8b8095d..80693cd 100755
--- a/tools/version.sh
+++ b/tools/version.sh
@@ -131,7 +131,8 @@
$seen_version = 1 if (!/<\?xml/ &&
s/(version=")[^"]*(")/${1}'"$OSGI_V"'${2}/);
}
- s/(import feature="org\.eclipse\.jgit.*" version=")[^"]*(")/${1}'"$API_V"'${2}/;
+ s/(import feature="org\.eclipse\.jgit[^"]*" version=")[^"]*(")/${1}'"$API_V"'${2}/;
+ s/(import plugin="org\.eclipse\.jgit[^"]*" version=")[^"]*(")/${1}'"$API_V"'${2}/;
' org.eclipse.jgit.packaging/org.*.feature/feature.xml
perl -pi~ -e '
@@ -139,22 +140,11 @@
$seen_version = 0;
$old_argv = $ARGV;
}
- if (!$seen_version) {
- $seen_version = 1 if
+ if ($seen_version < 2) {
+ $seen_version++ if
s{<(version)>.*</\1>}{<${1}>'"$POM_V"'</${1}>};
}
- ' org.eclipse.jgit.packaging/org.*.feature/pom.xml
-
-perl -pi~ -e '
- if ($ARGV ne $old_argv) {
- $seen_version = 0;
- $old_argv = $ARGV;
- }
- if (!$seen_version) {
- $seen_version = 1 if
- s{<(version)>.*</\1>}{<${1}>'"$POM_V"'</${1}>};
- }
- ' org.eclipse.jgit.packaging/pom.xml
+ ' org.eclipse.jgit.packaging/org.*.source.feature/pom.xml
perl -pi~ -e '
if ($ARGV ne $old_argv) {
@@ -162,7 +152,7 @@
$old_argv = $ARGV;
}
if ($seen_version < 18) {
- $seen_version++ if
+ $seen_version++ if
s{<(version)>.*</\1>}{<${1}>'"$POM_V"'</${1}>};
}
' org.eclipse.jgit.coverage/pom.xml