Browse Source

Merge branch 'master' into stable-5.7

* master:
  Silence API errors introduced by 093fbbd1
  Bump Bazel version to 2.2.0
  Add validation to hex decoder
  Expose FileStoreAttributes.setBackground()
  Update reftable storage repo layout
  Add 4.14 and 4.15-staging target platforms
  Update Orbit to R20200224183213 for final 2020-03
  Update Orbit to S20200224183213 for 2020-03 RC1
  Cygwin expects forward slashes for commands to be run via sh.exe
  [releng] Update year in copyright notices for features
  Using for-each loop in jdt
  Make Logger instances final
  Move array designators from the variable to the type
  ObjectWalk: Add null check before skip tree.
  Revert "RevWalk: stop mixing lines of history in topo sort"
  Do not fail if known hosts file does not contain valid host key

Change-Id: Ie7841d917b02c3579c4766e7214d6b1656c5f200
tags/v5.7.0.202003090808-r
Matthias Sohn 4 years ago
parent
commit
eaf7fd4eb7
74 changed files with 487 additions and 333 deletions
  1. 1
    1
      .bazelversion
  2. 1
    1
      org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/RegexPipeline.java
  3. 1
    1
      org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/RepeatRule.java
  4. 1
    1
      org.eclipse.jgit.lfs.server/src/org/eclipse/jgit/lfs/server/LfsProtocolServlet.java
  5. 1
    1
      org.eclipse.jgit.lfs.server/src/org/eclipse/jgit/lfs/server/fs/ObjectDownloadListener.java
  6. 1
    1
      org.eclipse.jgit.lfs.server/src/org/eclipse/jgit/lfs/server/fs/ObjectUploadListener.java
  7. 1
    1
      org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.properties
  8. 1
    1
      org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.properties
  9. 1
    1
      org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.properties
  10. 1
    1
      org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.properties
  11. 1
    1
      org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.properties
  12. 1
    1
      org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.properties
  13. 1
    1
      org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/feature.properties
  14. 2
    2
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.target
  15. 1
    1
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.tpd
  16. 2
    2
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.target
  17. 1
    1
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.tpd
  18. 2
    2
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12.target
  19. 1
    1
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12.tpd
  20. 2
    2
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.13.target
  21. 1
    1
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.13.tpd
  22. 94
    0
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.14.target
  23. 8
    0
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.14.tpd
  24. 3
    3
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.15-staging.target
  25. 2
    2
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.15-staging.tpd
  26. 2
    2
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.target
  27. 1
    1
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.tpd
  28. 2
    2
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.target
  29. 1
    1
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.tpd
  30. 2
    2
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.target
  31. 1
    1
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.tpd
  32. 2
    2
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.target
  33. 1
    1
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.tpd
  34. 2
    2
      org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/R20200224183213-2020-03.tpd
  35. 1
    1
      org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/CachingKeyPairProvider.java
  36. 1
    1
      org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/proxy/HttpParser.java
  37. 2
    2
      org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java
  38. 34
    8
      org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileReftableTest.java
  39. 41
    51
      org.eclipse.jgit.test/tst/org/eclipse/jgit/revplot/PlotCommitListTest.java
  40. 8
    0
      org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/ObjectWalkTest.java
  41. 0
    106
      org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkSortTest.java
  42. 25
    0
      org.eclipse.jgit.test/tst/org/eclipse/jgit/util/HexTest.java
  43. 28
    0
      org.eclipse.jgit/.settings/.api_filters
  44. 1
    0
      org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
  45. 1
    2
      org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java
  46. 1
    1
      org.eclipse.jgit/src/org/eclipse/jgit/diff/RawText.java
  47. 2
    1
      org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java
  48. 2
    2
      org.eclipse.jgit/src/org/eclipse/jgit/fnmatch/FileNameMatcher.java
  49. 1
    0
      org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java
  50. 15
    10
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileReftableDatabase.java
  51. 2
    2
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileReftableStack.java
  52. 77
    39
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java
  53. 2
    2
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/DeltaIndex.java
  54. 2
    2
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
  55. 11
    2
      org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java
  56. 6
    0
      org.eclipse.jgit/src/org/eclipse/jgit/lib/Constants.java
  57. 1
    1
      org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
  58. 3
    1
      org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ObjectWalk.java
  59. 1
    1
      org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevObject.java
  60. 4
    4
      org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java
  61. 16
    28
      org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TopoSortGenerator.java
  62. 2
    2
      org.eclipse.jgit/src/org/eclipse/jgit/revwalk/filter/PatternMatchRevFilter.java
  63. 1
    2
      org.eclipse.jgit/src/org/eclipse/jgit/transport/HttpAuthMethod.java
  64. 7
    1
      org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java
  65. 2
    2
      org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java
  66. 2
    2
      org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java
  67. 13
    2
      org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
  68. 1
    1
      org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java
  69. 18
    3
      org.eclipse.jgit/src/org/eclipse/jgit/util/Hex.java
  70. 1
    1
      org.eclipse.jgit/src/org/eclipse/jgit/util/LfsFactory.java
  71. 1
    1
      org.eclipse.jgit/src/org/eclipse/jgit/util/Monitoring.java
  72. 2
    2
      org.eclipse.jgit/src/org/eclipse/jgit/util/QuotedString.java
  73. 2
    2
      org.eclipse.jgit/src/org/eclipse/jgit/util/RawParseUtils.java
  74. 1
    1
      org.eclipse.jgit/src/org/eclipse/jgit/util/sha1/SHA1.java

+ 1
- 1
.bazelversion View File

@@ -1 +1 @@
2.1.0
2.2.0

+ 1
- 1
org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/glue/RegexPipeline.java View File

@@ -105,7 +105,7 @@ class RegexPipeline extends UrlPipeline {
// build a request for them so RegexGroupFilter can pick
// a different capture group later. Continue using the
// first capture group as the path info.
WrappedRequest groups[] = new WrappedRequest[cur.groupCount()];
WrappedRequest[] groups = new WrappedRequest[cur.groupCount()];
for (int groupId = 1; groupId <= cur.groupCount(); groupId++) {
final int s = cur.start(groupId);
final String path, info;

+ 1
- 1
org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/RepeatRule.java View File

@@ -45,7 +45,7 @@ import org.junit.runners.model.Statement;
*/
public class RepeatRule implements TestRule {

private static Logger LOG = Logger
private static final Logger LOG = Logger
.getLogger(RepeatRule.class.getName());

/**

+ 1
- 1
org.eclipse.jgit.lfs.server/src/org/eclipse/jgit/lfs/server/LfsProtocolServlet.java View File

@@ -60,7 +60,7 @@ import org.slf4j.LoggerFactory;
* @since 4.3
*/
public abstract class LfsProtocolServlet extends HttpServlet {
private static Logger LOG = LoggerFactory
private static final Logger LOG = LoggerFactory
.getLogger(LfsProtocolServlet.class);

private static final long serialVersionUID = 1L;

+ 1
- 1
org.eclipse.jgit.lfs.server/src/org/eclipse/jgit/lfs/server/fs/ObjectDownloadListener.java View File

@@ -34,7 +34,7 @@ import org.eclipse.jgit.util.HttpSupport;
*/
public class ObjectDownloadListener implements WriteListener {

private static Logger LOG = Logger
private static final Logger LOG = Logger
.getLogger(ObjectDownloadListener.class.getName());

private final AsyncContext context;

+ 1
- 1
org.eclipse.jgit.lfs.server/src/org/eclipse/jgit/lfs/server/fs/ObjectUploadListener.java View File

@@ -38,7 +38,7 @@ import org.eclipse.jgit.lfs.lib.Constants;
*/
public class ObjectUploadListener implements ReadListener {

private static Logger LOG = Logger
private static final Logger LOG = Logger
.getLogger(ObjectUploadListener.class.getName());

private final AsyncContext context;

+ 1
- 1
org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.properties View File

@@ -20,7 +20,7 @@ A pure Java implementation of the Git version control system.\n

# "copyright" property - text of the "Feature Update Copyright"
copyright=\
Copyright (c) 2005, 2010 Shawn Pearce, Robin Rosenberg, et.al.\n\
Copyright (c) 2005, 2020 Shawn Pearce, Robin Rosenberg, et.al.\n\
All rights reserved. This program and the accompanying materials\n\
are made available under the terms of the Eclipse Distribution License v1.0\n\
which accompanies this distribution, and is available at\n\

+ 1
- 1
org.eclipse.jgit.packaging/org.eclipse.jgit.http.apache.feature/feature.properties View File

@@ -20,7 +20,7 @@ Optional Http support using Apache httpclient.\n

# "copyright" property - text of the "Feature Update Copyright"
copyright=\
Copyright (c) 2005, 2013 Shawn Pearce, Robin Rosenberg, et.al.\n\
Copyright (c) 2005, 2020 Shawn Pearce, Robin Rosenberg, et.al.\n\
All rights reserved. This program and the accompanying materials\n\
are made available under the terms of the Eclipse Distribution License v1.0\n\
which accompanies this distribution, and is available at\n\

+ 1
- 1
org.eclipse.jgit.packaging/org.eclipse.jgit.junit.feature/feature.properties View File

@@ -20,7 +20,7 @@ description=JUnit test support for JGit

# "copyright" property - text of the "Feature Update Copyright"
copyright=\
Copyright (c) 2010, Matthias Sohn <matthias.sohn@sap.com>\n\
Copyright (c) 2010, 2020 Matthias Sohn <matthias.sohn@sap.com>\n\
and other copyright owners as documented in the project's IP log.\n\
All rights reserved. This program and the accompanying materials\n\
are made available under the terms of the Eclipse Distribution License v1.0\n\

+ 1
- 1
org.eclipse.jgit.packaging/org.eclipse.jgit.lfs.feature/feature.properties View File

@@ -20,7 +20,7 @@ Optional LFS support.\n

# "copyright" property - text of the "Feature Update Copyright"
copyright=\
Copyright (c) 2015, Matthias Sohn et.al.\n\
Copyright (c) 2015, 2020 Matthias Sohn et.al.\n\
All rights reserved. This program and the accompanying materials\n\
are made available under the terms of the Eclipse Distribution License v1.0\n\
which accompanies this distribution, and is available at\n\

+ 1
- 1
org.eclipse.jgit.packaging/org.eclipse.jgit.pgm.feature/feature.properties View File

@@ -20,7 +20,7 @@ Command line interface for a pure Java implementation of the Git version control

# "copyright" property - text of the "Feature Update Copyright"
copyright=\
Copyright (c) 2005-2012 Shawn Pearce, Robin Rosenberg, et.al.\n\
Copyright (c) 2005, 2020 Shawn Pearce, Robin Rosenberg, et.al.\n\
All rights reserved. This program and the accompanying materials\n\
are made available under the terms of the Eclipse Distribution License v1.0\n\
which accompanies this distribution, and is available at\n\

+ 1
- 1
org.eclipse.jgit.packaging/org.eclipse.jgit.source.feature/feature.properties View File

@@ -21,7 +21,7 @@ Source code for the support for PDE's JUnit runner for a Target Platform\n

# "copyright" property - text of the "Feature Update Copyright"
copyright=\
Copyright (c) 2005, 2010 Shawn Pearce, Robin Rosenberg, et.al.\n\
Copyright (c) 2005, 2020 Shawn Pearce, Robin Rosenberg, et.al.\n\
All rights reserved. This program and the accompanying materials\n\
are made available under the terms of the Eclipse Distribution License v1.0\n\
which accompanies this distribution, and is available at\n\

+ 1
- 1
org.eclipse.jgit.packaging/org.eclipse.jgit.ssh.apache.feature/feature.properties View File

@@ -20,7 +20,7 @@ Ssh support using Apache MINA sshd.\n

# "copyright" property - text of the "Feature Update Copyright"
copyright=\
Copyright (c) 2018 Thomas Wolf and others.\n\
Copyright (c) 2018, 2020 Thomas Wolf and others.\n\
All rights reserved. This program and the accompanying materials\n\
are made available under the terms of the Eclipse Distribution License v1.0\n\
which accompanies this distribution, and is available at\n\

+ 2
- 2
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.target View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
<target name="jgit-4.10" sequenceNumber="1582498070">
<target name="jgit-4.10" sequenceNumber="1583183009">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.25.v20191220"/>
@@ -84,7 +84,7 @@
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/>
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20200219023850/repository"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20200224183213/repository"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.osgi" version="0.0.0"/>

+ 1
- 1
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.10.tpd View File

@@ -1,7 +1,7 @@
target "jgit-4.10" with source configurePhase

include "projects/jetty-9.4.x.tpd"
include "orbit/staging-2020-03.tpd"
include "orbit/R20200224183213-2020-03.tpd"

location "http://download.eclipse.org/releases/2018-12/" {
org.eclipse.osgi lazy

+ 2
- 2
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.target View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
<target name="jgit-4.11" sequenceNumber="1582498158">
<target name="jgit-4.11" sequenceNumber="1583183034">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.25.v20191220"/>
@@ -84,7 +84,7 @@
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/>
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20200219023850/repository"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20200224183213/repository"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.osgi" version="0.0.0"/>

+ 1
- 1
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.11.tpd View File

@@ -1,7 +1,7 @@
target "jgit-4.11" with source configurePhase

include "projects/jetty-9.4.x.tpd"
include "orbit/staging-2020-03.tpd"
include "orbit/R20200224183213-2020-03.tpd"

location "http://download.eclipse.org/releases/2019-03/" {
org.eclipse.osgi lazy

+ 2
- 2
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12.target View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
<target name="jgit-4.12" sequenceNumber="1582498158">
<target name="jgit-4.12" sequenceNumber="1583183009">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.25.v20191220"/>
@@ -84,7 +84,7 @@
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/>
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20200219023850/repository"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20200224183213/repository"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.osgi" version="0.0.0"/>

+ 1
- 1
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.12.tpd View File

@@ -1,7 +1,7 @@
target "jgit-4.12" with source configurePhase

include "projects/jetty-9.4.x.tpd"
include "orbit/staging-2020-03.tpd"
include "orbit/R20200224183213-2020-03.tpd"

location "http://download.eclipse.org/releases/2019-06/" {
org.eclipse.osgi lazy

+ 2
- 2
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.13.target View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
<target name="jgit-4.13" sequenceNumber="1582498157">
<target name="jgit-4.13" sequenceNumber="1583183009">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.25.v20191220"/>
@@ -84,7 +84,7 @@
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/>
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20200219023850/repository"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20200224183213/repository"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.osgi" version="0.0.0"/>

+ 1
- 1
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.13.tpd View File

@@ -1,7 +1,7 @@
target "jgit-4.13" with source configurePhase

include "projects/jetty-9.4.x.tpd"
include "orbit/staging-2020-03.tpd"
include "orbit/R20200224183213-2020-03.tpd"

location "http://download.eclipse.org/releases/2019-09/" {
org.eclipse.osgi lazy

+ 94
- 0
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.14.target View File

@@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
<target name="jgit-4.14-staging" sequenceNumber="1583184372">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.25.v20191220"/>
<unit id="org.eclipse.jetty.client.source" version="9.4.25.v20191220"/>
<unit id="org.eclipse.jetty.continuation" version="9.4.25.v20191220"/>
<unit id="org.eclipse.jetty.continuation.source" version="9.4.25.v20191220"/>
<unit id="org.eclipse.jetty.http" version="9.4.25.v20191220"/>
<unit id="org.eclipse.jetty.http.source" version="9.4.25.v20191220"/>
<unit id="org.eclipse.jetty.io" version="9.4.25.v20191220"/>
<unit id="org.eclipse.jetty.io.source" version="9.4.25.v20191220"/>
<unit id="org.eclipse.jetty.security" version="9.4.25.v20191220"/>
<unit id="org.eclipse.jetty.security.source" version="9.4.25.v20191220"/>
<unit id="org.eclipse.jetty.server" version="9.4.25.v20191220"/>
<unit id="org.eclipse.jetty.server.source" version="9.4.25.v20191220"/>
<unit id="org.eclipse.jetty.servlet" version="9.4.25.v20191220"/>
<unit id="org.eclipse.jetty.servlet.source" version="9.4.25.v20191220"/>
<unit id="org.eclipse.jetty.util" version="9.4.25.v20191220"/>
<unit id="org.eclipse.jetty.util.source" version="9.4.25.v20191220"/>
<repository id="jetty-9.4.25" location="https://download.eclipse.org/jetty/updates/jetty-bundles-9.x/9.4.25.v20191220/"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="com.google.gson" version="2.8.2.v20180104-1110"/>
<unit id="com.google.gson.source" version="2.8.2.v20180104-1110"/>
<unit id="com.jcraft.jsch" version="0.1.55.v20190404-1902"/>
<unit id="com.jcraft.jsch.source" version="0.1.55.v20190404-1902"/>
<unit id="com.jcraft.jzlib" version="1.1.1.v201205102305"/>
<unit id="com.jcraft.jzlib.source" version="1.1.1.v201205102305"/>
<unit id="javaewah" version="1.1.7.v20200107-0831"/>
<unit id="javaewah.source" version="1.1.7.v20200107-0831"/>
<unit id="javax.servlet" version="3.1.0.v201410161800"/>
<unit id="javax.servlet.source" version="3.1.0.v201410161800"/>
<unit id="net.bytebuddy.byte-buddy" version="1.9.0.v20181107-1410"/>
<unit id="net.bytebuddy.byte-buddy-agent" version="1.9.0.v20181106-1534"/>
<unit id="net.bytebuddy.byte-buddy-agent.source" version="1.9.0.v20181106-1534"/>
<unit id="net.bytebuddy.byte-buddy.source" version="1.9.0.v20181107-1410"/>
<unit id="net.i2p.crypto.eddsa" version="0.3.0.v20181102-1323"/>
<unit id="net.i2p.crypto.eddsa.source" version="0.3.0.v20181102-1323"/>
<unit id="org.apache.ant" version="1.10.7.v20190926-0324"/>
<unit id="org.apache.ant.source" version="1.10.7.v20190926-0324"/>
<unit id="org.apache.commons.codec" version="1.13.0.v20200108-0001"/>
<unit id="org.apache.commons.codec.source" version="1.13.0.v20200108-0001"/>
<unit id="org.apache.commons.compress" version="1.19.0.v20200106-2343"/>
<unit id="org.apache.commons.compress.source" version="1.19.0.v20200106-2343"/>
<unit id="org.apache.commons.logging" version="1.2.0.v20180409-1502"/>
<unit id="org.apache.commons.logging.source" version="1.2.0.v20180409-1502"/>
<unit id="org.apache.httpcomponents.httpclient" version="4.5.10.v20200114-1512"/>
<unit id="org.apache.httpcomponents.httpclient.source" version="4.5.10.v20200114-1512"/>
<unit id="org.apache.httpcomponents.httpcore" version="4.4.12.v20200108-1212"/>
<unit id="org.apache.httpcomponents.httpcore.source" version="4.4.12.v20200108-1212"/>
<unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
<unit id="org.apache.log4j.source" version="1.2.15.v201012070815"/>
<unit id="org.apache.sshd.osgi" version="2.2.0.v20190425-2127"/>
<unit id="org.apache.sshd.osgi.source" version="2.2.0.v20190425-2127"/>
<unit id="org.apache.sshd.sftp" version="2.2.0.v20190425-2127"/>
<unit id="org.apache.sshd.sftp.source" version="2.2.0.v20190425-2127"/>
<unit id="org.assertj" version="3.14.0.v20200120-1926"/>
<unit id="org.assertj.source" version="3.14.0.v20200120-1926"/>
<unit id="org.bouncycastle.bcpg" version="1.64.0.v20191109-0815"/>
<unit id="org.bouncycastle.bcpg.source" version="1.64.0.v20191109-0815"/>
<unit id="org.bouncycastle.bcpkix" version="1.64.0.v20191109-0815"/>
<unit id="org.bouncycastle.bcpkix.source" version="1.64.0.v20191109-0815"/>
<unit id="org.bouncycastle.bcprov" version="1.64.0.v20191109-0815"/>
<unit id="org.bouncycastle.bcprov.source" version="1.64.0.v20191109-0815"/>
<unit id="org.hamcrest" version="1.1.0.v20090501071000"/>
<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
<unit id="org.junit" version="4.13.0.v20200204-1500"/>
<unit id="org.junit.source" version="4.13.0.v20200204-1500"/>
<unit id="org.kohsuke.args4j" version="2.33.0.v20160323-2218"/>
<unit id="org.kohsuke.args4j.source" version="2.33.0.v20160323-2218"/>
<unit id="org.mockito" version="2.23.0.v20190527-1420"/>
<unit id="org.mockito.source" version="2.23.0.v20190527-1420"/>
<unit id="org.objenesis" version="2.6.0.v20180420-1519"/>
<unit id="org.objenesis.source" version="2.6.0.v20180420-1519"/>
<unit id="org.slf4j.api" version="1.7.2.v20121108-1250"/>
<unit id="org.slf4j.api.source" version="1.7.2.v20121108-1250"/>
<unit id="org.slf4j.impl.log4j12" version="1.7.2.v20131105-2200"/>
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/>
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20200224183213/repository"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.osgi" version="0.0.0"/>
<repository location="http://download.eclipse.org/releases/2019-12/201912181000/"/>
</location>
</locations>
</target>

+ 8
- 0
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.14.tpd View File

@@ -0,0 +1,8 @@
target "jgit-4.14-staging" with source configurePhase

include "projects/jetty-9.4.x.tpd"
include "orbit/R20200224183213-2020-03.tpd"

location "http://download.eclipse.org/releases/2019-12/201912181000/" {
org.eclipse.osgi lazy
}

org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.14-staging.target → org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.15-staging.target View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
<target name="jgit-4.14-staging" sequenceNumber="1582498156">
<target name="jgit-4.14-staging" sequenceNumber="1583184374">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.25.v20191220"/>
@@ -84,11 +84,11 @@
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/>
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20200219023850/repository"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20200224183213/repository"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.osgi" version="0.0.0"/>
<repository location="http://download.eclipse.org/staging/2019-12/"/>
<repository location="http://download.eclipse.org/staging/2020-03/"/>
</location>
</locations>
</target>

org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.14-staging.tpd → org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.15-staging.tpd View File

@@ -1,8 +1,8 @@
target "jgit-4.14-staging" with source configurePhase

include "projects/jetty-9.4.x.tpd"
include "orbit/staging-2020-03.tpd"
include "orbit/R20200224183213-2020-03.tpd"

location "http://download.eclipse.org/staging/2019-12/" {
location "http://download.eclipse.org/staging/2020-03/" {
org.eclipse.osgi lazy
}

+ 2
- 2
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.target View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
<target name="jgit-4.6" sequenceNumber="1582498170">
<target name="jgit-4.6" sequenceNumber="1583183021">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.25.v20191220"/>
@@ -84,7 +84,7 @@
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/>
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20200219023850/repository"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20200224183213/repository"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.osgi" version="0.0.0"/>

+ 1
- 1
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.6.tpd View File

@@ -1,7 +1,7 @@
target "jgit-4.6" with source configurePhase

include "projects/jetty-9.4.x.tpd"
include "orbit/staging-2020-03.tpd"
include "orbit/R20200224183213-2020-03.tpd"

location "http://download.eclipse.org/releases/neon/" {
org.eclipse.osgi lazy

+ 2
- 2
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.target View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
<target name="jgit-4.7" sequenceNumber="1582498162">
<target name="jgit-4.7" sequenceNumber="1583183012">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.25.v20191220"/>
@@ -84,7 +84,7 @@
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/>
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20200219023850/repository"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20200224183213/repository"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.osgi" version="0.0.0"/>

+ 1
- 1
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.7.tpd View File

@@ -1,7 +1,7 @@
target "jgit-4.7" with source configurePhase

include "projects/jetty-9.4.x.tpd"
include "orbit/staging-2020-03.tpd"
include "orbit/R20200224183213-2020-03.tpd"

location "http://download.eclipse.org/releases/oxygen/" {
org.eclipse.osgi lazy

+ 2
- 2
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.target View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
<target name="jgit-4.8" sequenceNumber="1582498158">
<target name="jgit-4.8" sequenceNumber="1583183009">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.25.v20191220"/>
@@ -84,7 +84,7 @@
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/>
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20200219023850/repository"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20200224183213/repository"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.osgi" version="0.0.0"/>

+ 1
- 1
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.8.tpd View File

@@ -1,7 +1,7 @@
target "jgit-4.8" with source configurePhase

include "projects/jetty-9.4.x.tpd"
include "orbit/staging-2020-03.tpd"
include "orbit/R20200224183213-2020-03.tpd"

location "http://download.eclipse.org/releases/photon/" {
org.eclipse.osgi lazy

+ 2
- 2
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.target View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde?>
<!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
<target name="jgit-4.9" sequenceNumber="1582498159">
<target name="jgit-4.9" sequenceNumber="1583183009">
<locations>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.client" version="9.4.25.v20191220"/>
@@ -84,7 +84,7 @@
<unit id="org.slf4j.impl.log4j12.source" version="1.7.2.v20131105-2200"/>
<unit id="org.tukaani.xz" version="1.8.0.v20180207-1613"/>
<unit id="org.tukaani.xz.source" version="1.8.0.v20180207-1613"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/S20200219023850/repository"/>
<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20200224183213/repository"/>
</location>
<location includeMode="slicer" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="true" type="InstallableUnit">
<unit id="org.eclipse.osgi" version="0.0.0"/>

+ 1
- 1
org.eclipse.jgit.packaging/org.eclipse.jgit.target/jgit-4.9.tpd View File

@@ -1,7 +1,7 @@
target "jgit-4.9" with source configurePhase

include "projects/jetty-9.4.x.tpd"
include "orbit/staging-2020-03.tpd"
include "orbit/R20200224183213-2020-03.tpd"

location "http://download.eclipse.org/releases/2018-09/" {
org.eclipse.osgi lazy

org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/staging-2020-03.tpd → org.eclipse.jgit.packaging/org.eclipse.jgit.target/orbit/R20200224183213-2020-03.tpd View File

@@ -1,7 +1,7 @@
target "staging-2020-03" with source configurePhase
target "R20200224183213-2020-03" with source configurePhase
// see http://download.eclipse.org/tools/orbit/downloads/

location "https://download.eclipse.org/tools/orbit/downloads/drops/S20200219023850/repository" {
location "https://download.eclipse.org/tools/orbit/downloads/drops/R20200224183213/repository" {
com.google.gson [2.8.2.v20180104-1110,2.8.2.v20180104-1110]
com.google.gson.source [2.8.2.v20180104-1110,2.8.2.v20180104-1110]
com.jcraft.jsch [0.1.55.v20190404-1902,0.1.55.v20190404-1902]

+ 1
- 1
org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/CachingKeyPairProvider.java View File

@@ -88,7 +88,7 @@ public class CachingKeyPairProvider extends FileKeyPairProvider
if (cache == null) {
return loadKey(session, resource, path, getPasswordFinder());
}
Throwable t[] = { null };
Throwable[] t = { null };
KeyPair key = cache.get(path, p -> {
try {
return loadKey(session, resource, p, getPasswordFinder());

+ 1
- 1
org.eclipse.jgit.ssh.apache/src/org/eclipse/jgit/internal/transport/sshd/proxy/HttpParser.java View File

@@ -216,7 +216,7 @@ public final class HttpParser {
start = nextStart + 1;
} else {
if (header.charAt(nextStart) == '"') {
int nextEnd[] = { nextStart + 1 };
int[] nextEnd = { nextStart + 1 };
String value = scanQuotedString(header, nextStart + 1,
nextEnd);
challenge.addArgument(header.substring(start, end), value);

+ 2
- 2
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RebaseCommandTest.java View File

@@ -563,10 +563,10 @@ public class RebaseCommandTest extends RepositoryTestCase {
RevCommit newD = rw.next();
assertDerivedFrom(newD, d);
assertEquals(2, newD.getParentCount());
RevCommit newE = rw.next();
assertEquals(e, newE);
RevCommit newC = rw.next();
assertDerivedFrom(newC, c);
RevCommit newE = rw.next();
assertEquals(e, newE);
assertEquals(newC, newD.getParent(0));
assertEquals(e, newD.getParent(1));
assertEquals(g, rw.next());

+ 34
- 8
org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileReftableTest.java View File

@@ -91,11 +91,6 @@ public class FileReftableTest extends SampleDataRepositoryTestCase {
}
}

@Test
public void additionalRefsAreRemoved() {
assertFalse(new File(db.getDirectory(), Constants.HEAD).exists());
}

@Test
public void testCompactFully() throws Exception {
ObjectId c1 = db.resolve("master^^");
@@ -108,9 +103,16 @@ public class FileReftableTest extends SampleDataRepositoryTestCase {
}

File tableDir = new File(db.getDirectory(), Constants.REFTABLE);
assertTrue(tableDir.listFiles().length > 1);
assertTrue(tableDir.listFiles().length > 2);
((FileReftableDatabase)db.getRefDatabase()).compactFully();
assertEquals(tableDir.listFiles().length,1);
assertEquals(tableDir.listFiles().length,2);
}

@Test
public void testOpenConvert() throws Exception {
try (FileRepository repo = new FileRepository(db.getDirectory())) {
assertTrue(repo.getRefDatabase() instanceof FileReftableDatabase);
}
}

@Test
@@ -129,7 +131,7 @@ public class FileReftableTest extends SampleDataRepositoryTestCase {

@Test
public void testConvertToRefdir() throws Exception {
db.convertToPackedRefs(false);
db.convertToPackedRefs(false, false);
assertTrue(db.getRefDatabase() instanceof RefDirectory);
Ref h = db.exactRef("HEAD");
assertTrue(h.isSymbolic());
@@ -143,6 +145,30 @@ public class FileReftableTest extends SampleDataRepositoryTestCase {
assertFalse(db.getRefDatabase().hasFastTipsWithSha1());
}

@Test
public void testConvertToRefdirReflog() throws Exception {
Ref a = db.exactRef("refs/heads/a");
String aCommit = a.getObjectId().getName();
RefUpdate u = db.updateRef("refs/heads/master");
u.setForceUpdate(true);
u.setNewObjectId(ObjectId.fromString(aCommit));
u.setForceRefLog(true);
u.setRefLogMessage("apple", false);
u.update();

RefUpdate v = db.updateRef("refs/heads/master");
v.setForceUpdate(true);
v.setNewObjectId(ObjectId.fromString(bCommit));
v.setForceRefLog(true);
v.setRefLogMessage("banana", false);
v.update();

db.convertToPackedRefs(true, false);
List<ReflogEntry> logs = db.getReflogReader("refs/heads/master").getReverseEntries(2);
assertEquals(logs.get(0).getComment(), "banana");
assertEquals(logs.get(1).getComment(), "apple");
}

@Test
public void testBatchrefUpdate() throws Exception {
ObjectId cur = db.resolve("master");

+ 41
- 51
org.eclipse.jgit.test/tst/org/eclipse/jgit/revplot/PlotCommitListTest.java View File

@@ -254,12 +254,12 @@ public class PlotCommitListTest extends RevWalkTestCase {
int posI = test.commit(i).lanePos(childPositions).parents(h)
.getLanePos();
test.commit(h).lanePos(posI).parents(f);
test.commit(g).lanePos(childPositions).parents(a);
test.commit(f).lanePos(posI).parents(e, d);
test.commit(d).lanePos(1).parents(b);
test.commit(e).lanePos(posI).parents(c);
test.commit(d).lanePos(2).parents(b);
test.commit(c).lanePos(posI).parents(b);
test.commit(b).lanePos(posI).parents(a);
test.commit(g).lanePos(childPositions).parents(a);
test.commit(a).lanePos(0).parents();
}
}
@@ -325,42 +325,42 @@ public class PlotCommitListTest extends RevWalkTestCase {
.lanePos(mainPos);
test.commit(merge_update_eclipse)
.parents(add_a_clear, update_eclipse).lanePos(mainPos);
test.commit(update_eclipse).parents(add_Maven).lanePos(2);
test.commit(add_a_clear).parents(fix_broken).lanePos(mainPos);
test.commit(fix_broken).parents(merge_disable_comment)
.lanePos(mainPos);
test.commit(merge_disable_comment)
.parents(merge_resolve_handler, disable_comment)
.lanePos(mainPos);
test.commit(disable_comment).parents(clone_operation).lanePos(3);
test.commit(disable_comment).parents(clone_operation).lanePos(2);
test.commit(merge_resolve_handler)
.parents(clone_operation, resolve_handler).lanePos(mainPos);
test.commit(resolve_handler).parents(merge_fix).lanePos(4);
test.commit(update_eclipse).parents(add_Maven).lanePos(3);
test.commit(clone_operation).parents(merge_changeset_implementation)
.lanePos(mainPos);
test.commit(merge_changeset_implementation)
.parents(merge_disable_source, changeset_implementation)
.lanePos(mainPos);
test.commit(changeset_implementation).parents(clear_repositorycache)
.lanePos(1);
test.commit(merge_disable_source)
.parents(update_eclipse_iplog2, disable_source)
.lanePos(mainPos);
test.commit(disable_source).parents(merge_use_remote).lanePos(3);
test.commit(update_eclipse_iplog2).parents(merge_use_remote)
.lanePos(mainPos);
test.commit(disable_source).parents(merge_use_remote).lanePos(1);
test.commit(merge_use_remote)
.parents(update_eclipse_iplog, use_remote).lanePos(mainPos);
test.commit(use_remote).parents(clear_repositorycache).lanePos(3);
test.commit(changeset_implementation).parents(clear_repositorycache)
.lanePos(2);
test.commit(update_eclipse_iplog).parents(merge_add_Maven)
.lanePos(mainPos);
test.commit(merge_add_Maven).parents(findToolBar_layout, add_Maven)
.lanePos(mainPos);
test.commit(add_Maven).parents(clear_repositorycache).lanePos(2);
test.commit(findToolBar_layout).parents(clear_repositorycache)
.lanePos(mainPos);
test.commit(use_remote).parents(clear_repositorycache).lanePos(1);
test.commit(add_Maven).parents(clear_repositorycache).lanePos(3);
test.commit(clear_repositorycache).parents(merge_remove)
.lanePos(mainPos);
test.commit(resolve_handler).parents(merge_fix).lanePos(4);
test.commit(merge_remove).parents(add_simple, remove_unused)
.lanePos(mainPos);
test.commit(remove_unused).parents(merge_fix).lanePos(1);
@@ -453,36 +453,33 @@ public class PlotCommitListTest extends RevWalkTestCase {
pcl.source(pw);
pcl.fillTo(Integer.MAX_VALUE);

Set<Integer> positions = asSet(0, 1);
CommitListAssert test = new CommitListAssert(pcl);
int posA = test.commit(a5).lanePos(positions).getLanePos();
test.commit(a4);
test.commit(a3).lanePos(posA);
test.commit(e);
test.commit(d);
test.commit(a2).lanePos(posA);
int posB = test.commit(b3).lanePos(positions).getLanePos();
test.commit(b2).lanePos(posB);
test.commit(b1).lanePos(posB);
test.commit(c);
test.commit(a1).lanePos(posA);
test.noMoreCommits();
assertNotEquals("a lane is the same as b lane", posA, posB);
// test that the commits b1, b2 and b3 are on the same position
int bPos = pcl.get(9).lane.position; // b1
assertEquals("b2 is an a different position", bPos,
pcl.get(7).lane.position);
assertEquals("b3 is on a different position", bPos,
pcl.get(4).lane.position);

// test that nothing blocks the connections between b1, b2 and b3
assertNotEquals("b lane is blocked by c", bPos,
pcl.get(8).lane.position);
assertNotEquals("b lane is blocked by a2", bPos,
pcl.get(6).lane.position);
assertNotEquals("b lane is blocked by d", bPos,
pcl.get(5).lane.position);
}
}

/**
* <pre>
* b3
* a5 |
* | |
* a4 |
* | \|
* | b2
* a3 |
* | \|
* | b1
* a2 |
* | b1
* | /
* a1
* </pre>
@@ -497,11 +494,10 @@ public class PlotCommitListTest extends RevWalkTestCase {
final RevCommit a3 = commit(a2, b1);
final RevCommit b2 = commit(b1);
final RevCommit a4 = commit(a3, b2);
final RevCommit a5 = commit(a4);
final RevCommit b3 = commit(b2);

try (PlotWalk pw = new PlotWalk(db)) {
pw.markStart(pw.lookupCommit(a5));
pw.markStart(pw.lookupCommit(a4));
pw.markStart(pw.lookupCommit(b3));
PlotCommitList<PlotLane> pcl = new PlotCommitList<>();
pcl.source(pw);
@@ -510,12 +506,11 @@ public class PlotCommitListTest extends RevWalkTestCase {
Set<Integer> positions = asSet(0, 1);
CommitListAssert test = new CommitListAssert(pcl);
int posB = test.commit(b3).lanePos(positions).getLanePos();
int posA = test.commit(a5).lanePos(positions).getLanePos();
test.commit(a4).lanePos(posA);
int posA = test.commit(a4).lanePos(positions).getLanePos();
test.commit(b2).lanePos(posB);
test.commit(a3).lanePos(posA);
test.commit(b1).lanePos(posB);
test.commit(a2).lanePos(posA);
test.commit(b1).lanePos(posB);
test.commit(a1).lanePos(posA);
test.noMoreCommits();
}
@@ -524,17 +519,13 @@ public class PlotCommitListTest extends RevWalkTestCase {
/**
* <pre>
* a4
* |
* a3
* | \\
* a2 \\
* | \\
* | b3 ||
* | | ||
* | b2 ||
* | | //
* | b1
* | |
* | b3
* a3 |
* | \\|
* | |\\
* | b2||
* a2 | //
* | b1
* | /
* a1
* </pre>
@@ -561,10 +552,10 @@ public class PlotCommitListTest extends RevWalkTestCase {
Set<Integer> positions = asSet(0, 1);
CommitListAssert test = new CommitListAssert(pcl);
int posA = test.commit(a4).lanePos(positions).getLanePos();
test.commit(a3).lanePos(posA);
test.commit(a2).lanePos(posA);
int posB = test.commit(b3).lanePos(positions).getLanePos();
test.commit(a3).lanePos(posA);
test.commit(b2).lanePos(posB);
test.commit(a2).lanePos(posA);
// b1 is not repositioned, uses "detour lane"
// (drawn as a double arc in the ascii graph above)
test.commit(b1).lanePos(posB);
@@ -578,14 +569,13 @@ public class PlotCommitListTest extends RevWalkTestCase {
* b2
* a4 |
* | \ |
* | b1
* a3 |
* a3 \|
* | \ |
* | c |
* | / |
* a2 |
* | |
* | /
* | b1
* /
* | /
* a1
* </pre>
@@ -614,10 +604,10 @@ public class PlotCommitListTest extends RevWalkTestCase {
CommitListAssert test = new CommitListAssert(pcl);
int posB = test.commit(b2).lanePos(positions).getLanePos();
int posA = test.commit(a4).lanePos(positions).getLanePos();
test.commit(b1).lanePos(posB); // repositioned to go around c
test.commit(a3).lanePos(posA);
test.commit(c).lanePos(positions);
test.commit(a2).lanePos(posA);
test.commit(b1).lanePos(posB); // repositioned to go around c
test.commit(a1).lanePos(posA);
test.noMoreCommits();
}

+ 8
- 0
org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/ObjectWalkTest.java View File

@@ -216,4 +216,12 @@ public class ObjectWalkTest extends RevWalkTestCase {
assertSame(rw.lookupBlob(bId), objw.nextObject());
assertNull(objw.nextObject());
}

@Test
public void testSkipTreeWhenStartFromBlob() throws Exception {
final RevBlob f1 = blob("1");
objw.markStart(f1);
assertSame(f1, objw.nextObject());
objw.skipTree();
}
}

+ 0
- 106
org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/RevWalkSortTest.java View File

@@ -144,110 +144,4 @@ public class RevWalkSortTest extends RevWalkTestCase {
assertCommit(d, rw.next());
assertNull(rw.next());
}

@Test
public void testSort_TOPO_OutOfOrderCommitTimes() throws Exception {
// b is committed before c2 in a different line of history.
//
final RevCommit a = commit();
final RevCommit c1 = commit(a);
final RevCommit b = commit(a);
final RevCommit c2 = commit(c1);
final RevCommit d = commit(b, c2);

rw.sort(RevSort.TOPO);
markStart(d);
assertCommit(d, rw.next());
assertCommit(c2, rw.next());
assertCommit(c1, rw.next());
assertCommit(b, rw.next());
assertCommit(a, rw.next());
assertNull(rw.next());
}

@Test
public void testSort_TOPO_MultipleLinesOfHistory() throws Exception {
final RevCommit a1 = commit();
final RevCommit b1 = commit(a1);
final RevCommit a2 = commit(a1, b1);
final RevCommit b2 = commit(b1);
final RevCommit b3 = commit(b1);
final RevCommit a3 = commit(a2, b2);
final RevCommit a4 = commit(a3, b3);

rw.sort(RevSort.TOPO);
markStart(a4);
assertCommit(a4, rw.next());
assertCommit(b3, rw.next());
assertCommit(a3, rw.next());
assertCommit(b2, rw.next());
assertCommit(a2, rw.next());
assertCommit(b1, rw.next());
assertCommit(a1, rw.next());
assertNull(rw.next());
}

@Test
public void testSort_TOPO_REVERSE_MultipleLinesOfHistory()
throws Exception {
final RevCommit a1 = commit();
final RevCommit b1 = commit(a1);
final RevCommit a2 = commit(a1, b1);
final RevCommit b2 = commit(b1);
final RevCommit b3 = commit(b1);
final RevCommit a3 = commit(a2, b2);
final RevCommit a4 = commit(a3, b3);

rw.sort(RevSort.TOPO);
rw.sort(RevSort.REVERSE, true);
markStart(a4);
assertCommit(a1, rw.next());
assertCommit(b1, rw.next());
assertCommit(a2, rw.next());
assertCommit(b2, rw.next());
assertCommit(a3, rw.next());
assertCommit(b3, rw.next());
assertCommit(a4, rw.next());
assertNull(rw.next());
}

@Test
public void testSort_TOPO_ParentOfMultipleStartChildren() throws Exception {
final RevCommit a = commit();
final RevCommit b = commit(a);
final RevCommit c = commit(a);
final RevCommit d1 = commit(a);
final RevCommit d2 = commit(d1);
final RevCommit e = commit(a);

rw.sort(RevSort.TOPO);
markStart(b);
markStart(c);
markStart(d2);
markStart(e);
assertCommit(e, rw.next());
assertCommit(d2, rw.next());
assertCommit(d1, rw.next());
assertCommit(c, rw.next());
assertCommit(b, rw.next());
assertCommit(a, rw.next());
assertNull(rw.next());
}

@Test
public void testSort_TOPO_Uninteresting() throws Exception {
final RevCommit a1 = commit();
final RevCommit a2 = commit(a1);
final RevCommit a3 = commit(a2);
final RevCommit b = commit(a1);
final RevCommit a4 = commit(a3, b);

rw.sort(RevSort.TOPO);
markStart(a4);
markUninteresting(a2);
assertCommit(a4, rw.next());
assertCommit(b, rw.next());
assertCommit(a3, rw.next());
assertNull(rw.next());
}
}

+ 25
- 0
org.eclipse.jgit.test/tst/org/eclipse/jgit/util/HexTest.java View File

@@ -42,6 +42,31 @@ public class HexTest {
}
}

@Test(expected = IllegalArgumentException.class)
public void testIllegal() {
decode("0011test00");
}

@Test(expected = IllegalArgumentException.class)
public void testIllegal2() {
decode("0123456789abcdefgh");
}

@Test(expected = IllegalArgumentException.class)
public void testIllegal3() {
decode("0123456789abcdef-_+*");
}

@Test
public void testLegal() {
decode("0123456789abcdef");
}

@Test
public void testLegal2() {
decode("deadbeef");
}

private static byte[] b(String str) {
return Constants.encode(str);
}

+ 28
- 0
org.eclipse.jgit/.settings/.api_filters View File

@@ -37,6 +37,26 @@
<message_argument value="CONFIG_KEY_PACKED_GIT_WINDOWSIZE"/>
</message_arguments>
</filter>
<filter id="1142947843">
<message_arguments>
<message_argument value="5.6.2"/>
<message_argument value="CONFIG_EXTENSIONS_SECTION"/>
</message_arguments>
</filter>
<filter id="1142947843">
<message_arguments>
<message_argument value="5.6.2"/>
<message_argument value="CONFIG_KEY_REF_STORAGE"/>
</message_arguments>
</filter>
</resource>
<resource path="src/org/eclipse/jgit/lib/Constants.java" type="org.eclipse.jgit.lib.Constants">
<filter id="1142947843">
<message_arguments>
<message_argument value="5.6.2"/>
<message_argument value="TABLES_LIST"/>
</message_arguments>
</filter>
</resource>
<resource path="src/org/eclipse/jgit/storage/file/WindowCacheConfig.java" type="org.eclipse.jgit.storage.file.WindowCacheConfig">
<filter id="1142947843">
@@ -69,6 +89,14 @@
</message_arguments>
</filter>
</resource>
<resource path="src/org/eclipse/jgit/util/FS.java" type="org.eclipse.jgit.util.FS$FileStoreAttributes">
<filter id="1226833923">
<message_arguments>
<message_argument value="5.6.2"/>
<message_argument value="setBackground(boolean)"/>
</message_arguments>
</filter>
</resource>
<resource path="src/org/eclipse/jgit/util/Monitoring.java" type="org.eclipse.jgit.util.Monitoring">
<filter id="1109393411">
<message_arguments>

+ 1
- 0
org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties View File

@@ -354,6 +354,7 @@ invalidFilter=Invalid filter: {0}
invalidGitdirRef = Invalid .git reference in file ''{0}''
invalidGitModules=Invalid .gitmodules file
invalidGitType=invalid git type: {0}
invalidHexString=Invalid hex string: {0}
invalidHooksPath=Invalid git config core.hooksPath = {0}
invalidId=Invalid id: {0}
invalidId0=Invalid id

+ 1
- 2
org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java View File

@@ -338,8 +338,7 @@ public class RebaseCommand extends GitCommand<RebaseResult> {
steps, false);
}
checkSteps(steps);
for (int i = 0; i < steps.size(); i++) {
RebaseTodoLine step = steps.get(i);
for (RebaseTodoLine step : steps) {
popSteps(1);
RebaseResult result = processStep(step, true);
if (result != null) {

+ 1
- 1
org.eclipse.jgit/src/org/eclipse/jgit/diff/RawText.java View File

@@ -415,7 +415,7 @@ public class RawText extends Sequence {
}
}

byte data[];
byte[] data;
try {
data = new byte[(int)sz];
} catch (OutOfMemoryError e) {

+ 2
- 1
org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java View File

@@ -79,7 +79,8 @@ import org.slf4j.LoggerFactory;
* This class handles checking out one or two trees merging with the index.
*/
public class DirCacheCheckout {
private static Logger LOG = LoggerFactory.getLogger(DirCacheCheckout.class);
private static final Logger LOG = LoggerFactory
.getLogger(DirCacheCheckout.class);

private static final int MAX_EXCEPTION_TEXT_SIZE = 10 * 1024;


+ 2
- 2
org.eclipse.jgit/src/org/eclipse/jgit/fnmatch/FileNameMatcher.java View File

@@ -380,8 +380,8 @@ public class FileNameMatcher {
* @return a boolean.
*/
public boolean canAppendMatch() {
for (int i = 0; i < heads.size(); i++) {
if (heads.get(i) != LastHead.INSTANCE) {
for (Head head : heads) {
if (head != LastHead.INSTANCE) {
return true;
}
}

+ 1
- 0
org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java View File

@@ -382,6 +382,7 @@ public class JGitText extends TranslationBundle {
/***/ public String invalidGitdirRef;
/***/ public String invalidGitModules;
/***/ public String invalidGitType;
/***/ public String invalidHexString;
/***/ public String invalidHooksPath;
/***/ public String invalidId;
/***/ public String invalidId0;

+ 15
- 10
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileReftableDatabase.java View File

@@ -64,6 +64,11 @@ public class FileReftableDatabase extends RefDatabase {

private final FileReftableStack reftableStack;

FileReftableDatabase(FileRepository repo) throws IOException {
this(repo, new File(new File(repo.getDirectory(), Constants.REFTABLE),
Constants.TABLES_LIST));
}

FileReftableDatabase(FileRepository repo, File refstackName) throws IOException {
this.fileRepository = repo;
this.reftableStack = new FileReftableStack(refstackName,
@@ -88,8 +93,7 @@ public class FileReftableDatabase extends RefDatabase {
* @return whether the given repo uses reftable for refdb storage.
*/
public static boolean isReftable(File repoDir) {
return new File(repoDir, "refs").isFile() //$NON-NLS-1$
&& new File(repoDir, Constants.REFTABLE).isDirectory();
return new File(repoDir, Constants.REFTABLE).isDirectory();
}

/** {@inheritDoc} */
@@ -593,8 +597,6 @@ public class FileReftableDatabase extends RefDatabase {
/**
* @param repo
* the repository
* @param refstackName
* the filename for the stack
* @param writeLogs
* whether to write reflogs
* @return a reftable based RefDB from an existing repository.
@@ -602,22 +604,25 @@ public class FileReftableDatabase extends RefDatabase {
* on IO error
*/
public static FileReftableDatabase convertFrom(FileRepository repo,
File refstackName, boolean writeLogs) throws IOException {
boolean writeLogs) throws IOException {
FileReftableDatabase newDb = null;
File reftableList = null;
try {
File reftableDir = new File(repo.getDirectory(), Constants.REFTABLE);
File reftableDir = new File(repo.getDirectory(),
Constants.REFTABLE);
reftableList = new File(reftableDir, Constants.TABLES_LIST);
if (!reftableDir.isDirectory()) {
reftableDir.mkdir();
}

try (FileReftableStack stack = new FileReftableStack(refstackName,
try (FileReftableStack stack = new FileReftableStack(reftableList,
reftableDir, null, () -> repo.getConfig())) {
stack.addReftable(rw -> writeConvertTable(repo, rw, writeLogs));
}
refstackName = null;
reftableList = null;
} finally {
if (refstackName != null) {
refstackName.delete();
if (reftableList != null) {
reftableList.delete();
}
}
return newDb;

+ 2
- 2
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileReftableStack.java View File

@@ -649,7 +649,7 @@ public class FileReftableStack implements AutoCloseable {
}
}

static List<Segment> segmentSizes(long sizes[]) {
static List<Segment> segmentSizes(long[] sizes) {
List<Segment> segments = new ArrayList<>();
Segment cur = new Segment();
for (int i = 0; i < sizes.length; i++) {
@@ -669,7 +669,7 @@ public class FileReftableStack implements AutoCloseable {
return segments;
}

private static Optional<Segment> autoCompactCandidate(long sizes[]) {
private static Optional<Segment> autoCompactCandidate(long[] sizes) {
if (sizes.length == 0) {
return Optional.empty();
}

+ 77
- 39
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileRepository.java View File

@@ -18,10 +18,13 @@ import static java.util.stream.Collectors.toList;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.MessageFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
@@ -50,6 +53,7 @@ import org.eclipse.jgit.lib.ProgressMonitor;
import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.RefDatabase;
import org.eclipse.jgit.lib.RefUpdate;
import org.eclipse.jgit.lib.ReflogEntry;
import org.eclipse.jgit.lib.ReflogReader;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.StoredConfig;
@@ -173,20 +177,17 @@ public class FileRepository extends Repository {

String reftype = repoConfig.getString(
ConfigConstants.CONFIG_EXTENSIONS_SECTION, null,
ConfigConstants.CONFIG_KEY_REFSTORAGE);
ConfigConstants.CONFIG_KEY_REF_STORAGE);
if (repositoryFormatVersion >= 1 && reftype != null) {
if (StringUtils.equalsIgnoreCase(reftype,
ConfigConstants.CONFIG_REFSTORAGE_REFTABLE)) {
refs = new FileReftableDatabase(this,
new File(getDirectory(), "refs")); //$NON-NLS-1$
ConfigConstants.CONFIG_REF_STORAGE_REFTABLE)) {
refs = new FileReftableDatabase(this);
} else if (StringUtils.equalsIgnoreCase(reftype,
ConfigConstants.CONFIG_REFSTORAGE_REFTREE)) {
refs = new RefTreeDatabase(this, new RefDirectory(this));
} else {
throw new IOException(JGitText.get().unknownRepositoryFormat);
}
} else if (FileReftableDatabase.isReftable(getDirectory())) {
refs = new FileReftableDatabase(this, new File(getDirectory(), "refs")); //$NON-NLS-1$
} else {
refs = new RefDirectory(this);
}
@@ -610,15 +611,18 @@ public class FileRepository extends Repository {
* Converts the RefDatabase from reftable to RefDirectory. This operation is
* not atomic.
*
* @param writeLogs
* whether to write reflogs
* @param backup
* whether to rename or delete the old storage files. If set to
* true, the reftable list is left in "refs.old", and the
* reftable/ dir is left alone. If set to false, the reftable/
* dir is removed, and "refs" file is removed.
* {@code true}, the reftable list is left in {@code refs.old},
* and the {@code reftable/} dir is left alone. If set to
* {@code false}, the {@code reftable/} dir is removed, and
* {@code refs} file is removed.
* @throws IOException
* on IO problem
*/
void convertToPackedRefs(boolean backup) throws IOException {
void convertToPackedRefs(boolean writeLogs, boolean backup) throws IOException {
List<Ref> all = refs.getRefs();
File packedRefs = new File(getDirectory(), Constants.PACKED_REFS);
if (packedRefs.exists()) {
@@ -627,26 +631,26 @@ public class FileRepository extends Repository {
}

File refsFile = new File(getDirectory(), "refs"); //$NON-NLS-1$

refs.close();

if (backup) {
File refsOld = new File(getDirectory(), "refs.old"); //$NON-NLS-1$
if (refsOld.exists()) {
throw new IOException(MessageFormat.format(
JGitText.get().fileAlreadyExists,
"refs.old")); //$NON-NLS-1$
}
FileUtils.rename(refsFile, refsOld);
} else {
refsFile.delete();
}
File refsHeadsFile = new File(refsFile, "heads");//$NON-NLS-1$
File headFile = new File(getDirectory(), Constants.HEAD);
FileReftableDatabase oldDb = (FileReftableDatabase) refs;

// Remove the dummy files that ensure compatibility with older git
// versions (see convertToReftable). First make room for refs/heads/
refsHeadsFile.delete();
// RefDirectory wants to create the refs/ directory from scratch, so
// remove that too.
refsFile.delete();
// remove HEAD so its previous invalid value doesn't cause issues.
headFile.delete();

// This is not atomic, but there is no way to instantiate a RefDirectory
// that is disconnected from the current repo.
refs = new RefDirectory(this);
RefDirectory refDir = new RefDirectory(this);
refs = refDir;
refs.create();

ReflogWriter logWriter = refDir.newLogWriter(true);
List<Ref> symrefs = new ArrayList<>();
BatchRefUpdate bru = refs.newBatchUpdate();
for (Ref r : all) {
@@ -656,6 +660,15 @@ public class FileRepository extends Repository {
bru.addCommand(new ReceiveCommand(ObjectId.zeroId(),
r.getObjectId(), r.getName()));
}

if (writeLogs) {
List<ReflogEntry> logs = oldDb.getReflogReader(r.getName())
.getReverseEntries();
Collections.reverse(logs);
for (ReflogEntry e : logs) {
logWriter.log(r.getName(), e);
}
}
}

try (RevWalk rw = new RevWalk(this)) {
@@ -691,24 +704,39 @@ public class FileRepository extends Repository {
FileUtils.delete(reftableDir,
FileUtils.RECURSIVE | FileUtils.IGNORE_ERRORS);
}

repoConfig.unset(ConfigConstants.CONFIG_EXTENSIONS_SECTION, null,
ConfigConstants.CONFIG_KEY_REFSTORAGE);
ConfigConstants.CONFIG_KEY_REF_STORAGE);
repoConfig.save();
}

/**
* Converts the RefDatabase from RefDirectory to reftable. This operation is
* not atomic.
*
* @param writeLogs
* whether to write reflogs
* @param backup
* whether to rename or delete the old storage files. If set to
* {@code true}, the loose refs are left in {@code refs.old}, the
* packed-refs in {@code packed-refs.old} and reflogs in
* {@code refs.old/}. HEAD is left in {@code HEAD.old} and also
* {@code .log} is appended to additional refs. If set to
* {@code false}, the {@code refs/} and {@code logs/} directories
* and {@code HEAD} and additional symbolic refs are removed.
* @throws IOException
* on IO problem
*/
@SuppressWarnings("nls")
void convertToReftable(boolean writeLogs, boolean backup)
throws IOException {
File newRefs = new File(getDirectory(), "refs.new");
File reftableDir = new File(getDirectory(), Constants.REFTABLE);

File headFile = new File(getDirectory(), Constants.HEAD);
if (reftableDir.exists() && reftableDir.listFiles().length > 0) {
throw new IOException(JGitText.get().reftableDirExists);
}

// Ignore return value, as it is tied to temporary newRefs file.
FileReftableDatabase.convertFrom(this, newRefs, writeLogs);
FileReftableDatabase.convertFrom(this, writeLogs);

File refsFile = new File(getDirectory(), "refs");

@@ -716,7 +744,6 @@ public class FileRepository extends Repository {
File packedRefs = new File(getDirectory(), Constants.PACKED_REFS);
File logsDir = new File(getDirectory(), Constants.LOGS);


List<String> additional = getRefDatabase().getAdditionalRefs().stream()
.map(Ref::getName).collect(toList());
additional.add(Constants.HEAD);
@@ -735,7 +762,8 @@ public class FileRepository extends Repository {
new File(getDirectory(), r + ".old"));
}
} else {
packedRefs.delete(); // ignore return value.
FileUtils.delete(packedRefs, FileUtils.SKIP_MISSING);
FileUtils.delete(headFile);
FileUtils.delete(logsDir, FileUtils.RECURSIVE);
FileUtils.delete(refsFile, FileUtils.RECURSIVE);
for (String r : additional) {
@@ -743,16 +771,26 @@ public class FileRepository extends Repository {
}
}

// Put new data.
FileUtils.rename(newRefs, refsFile);
FileUtils.mkdir(refsFile, true);

refs.close();
refs = new FileReftableDatabase(this, refsFile);
// By putting in a dummy HEAD, old versions of Git still detect a repo
// (that they can't read)
try (OutputStream os = new FileOutputStream(headFile)) {
os.write(Constants.encodeASCII("ref: refs/heads/.invalid"));
}

// Some tools might write directly into .git/refs/heads/BRANCH. By
// putting a file here, this fails spectacularly.
FileUtils.createNewFile(new File(refsFile, "heads"));

repoConfig.setString(ConfigConstants.CONFIG_EXTENSIONS_SECTION, null,
ConfigConstants.CONFIG_KEY_REFSTORAGE,
ConfigConstants.CONFIG_REFSTORAGE_REFTABLE);
ConfigConstants.CONFIG_KEY_REF_STORAGE,
ConfigConstants.CONFIG_REF_STORAGE_REFTABLE);
repoConfig.setLong(ConfigConstants.CONFIG_CORE_SECTION, null,
ConfigConstants.CONFIG_KEY_REPO_FORMAT_VERSION, 1);
repoConfig.save();
refs.close();
refs = new FileReftableDatabase(this);
}

/**
@@ -775,7 +813,7 @@ public class FileRepository extends Repository {
}
} else if (format.equals("refdir")) {//$NON-NLS-1$
if (refs instanceof FileReftableDatabase) {
convertToPackedRefs(backup);
convertToPackedRefs(writeLogs, backup);
}
} else {
throw new IOException(MessageFormat

+ 2
- 2
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/DeltaIndex.java View File

@@ -122,8 +122,8 @@ public class DeltaIndex {
// logic linear in the size of the input rather than quadratic.
//
int cnt = 0;
for (int i = 0; i < table.length; i++) {
int h = table[i];
for (int element : table) {
int h = element;
if (h == 0)
continue;


+ 2
- 2
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java View File

@@ -191,7 +191,7 @@ public class PackWriter implements AutoCloseable {
}

@SuppressWarnings("unchecked")
BlockList<ObjectToPack> objectsLists[] = new BlockList[OBJ_TAG + 1];
BlockList<ObjectToPack>[] objectsLists = new BlockList[OBJ_TAG + 1];
{
objectsLists[OBJ_COMMIT] = new BlockList<>();
objectsLists[OBJ_TREE] = new BlockList<>();
@@ -236,7 +236,7 @@ public class PackWriter implements AutoCloseable {

private List<ObjectToPack> sortedByName;

private byte packcsum[];
private byte[] packcsum;

private boolean deltaBaseAsOffset;


+ 11
- 2
org.eclipse.jgit/src/org/eclipse/jgit/lib/ConfigConstants.java View File

@@ -504,9 +504,18 @@ public final class ConfigConstants {
*/
public static final String CONFIG_KEY_MIN_RACY_THRESHOLD = "minRacyThreshold";


/**
* The "refStorage" key
*
* @since 5.6.2
*/
public static final String CONFIG_KEY_REF_STORAGE = "refStorage";

/**
* The "extensions" section
* @since 5.7
*
* @since 5.6.2
*/
public static final String CONFIG_EXTENSIONS_SECTION = "extensions";

@@ -520,7 +529,7 @@ public final class ConfigConstants {
* The "reftable" refStorage format
* @since 5.7
*/
public static final String CONFIG_REFSTORAGE_REFTABLE = "reftable";
public static final String CONFIG_REF_STORAGE_REFTABLE = "reftable";

/**
* The "reftree" refStorage format

+ 6
- 0
org.eclipse.jgit/src/org/eclipse/jgit/lib/Constants.java View File

@@ -254,6 +254,12 @@ public final class Constants {
*/
public static final String REFTABLE = "reftable";

/**
* Reftable table list name.
* @since 5.6.2
*/
public static final String TABLES_LIST = "tables.list";

/** Info refs folder */
public static final String INFO_REFS = "info/refs";


+ 1
- 1
org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java View File

@@ -110,7 +110,7 @@ public class ResolveMerger extends ThreeWayMerger {
*
* @since 3.0
*/
protected String commitNames[];
protected String[] commitNames;

/**
* Index of the base tree within the {@link #tw tree walk}.

+ 3
- 1
org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ObjectWalk.java View File

@@ -364,7 +364,9 @@ public class ObjectWalk extends RevWalk {
* @since 5.4
*/
public void skipTree() {
currVisit.ptr = currVisit.buf.length;
if (currVisit != null) {
currVisit.ptr = currVisit.buf.length;
}
}

/**

+ 1
- 1
org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevObject.java View File

@@ -151,7 +151,7 @@ public abstract class RevObject extends ObjectIdOwnerMap.Entry {
* buffer to append a debug description of core RevFlags onto.
*/
protected void appendCoreFlags(StringBuilder s) {
s.append((flags & RevWalk.TOPO_QUEUED) != 0 ? 'o' : '-');
s.append((flags & RevWalk.TOPO_DELAY) != 0 ? 'o' : '-');
s.append((flags & RevWalk.TEMP_MARK) != 0 ? 't' : '-');
s.append((flags & RevWalk.REWRITE) != 0 ? 'r' : '-');
s.append((flags & RevWalk.UNINTERESTING) != 0 ? 'u' : '-');

+ 4
- 4
org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java View File

@@ -125,11 +125,11 @@ public class RevWalk implements Iterable<RevCommit>, AutoCloseable {
/**
* Temporary mark for use within {@link TopoSortGenerator}.
* <p>
* This mark indicates the commit has been queued for emission in
* {@link TopoSortGenerator} and can be produced. This mark is removed when
* the commit has been produced.
* This mark indicates the commit could not produce when it wanted to, as at
* least one child was behind it. Commits with this flag are delayed until
* all children have been output first.
*/
static final int TOPO_QUEUED = 1 << 5;
static final int TOPO_DELAY = 1 << 5;

/** Number of flag bits we keep internal for our own use. See above flags. */
static final int RESERVED_FLAGS = 6;

+ 16
- 28
org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TopoSortGenerator.java View File

@@ -17,7 +17,7 @@ import org.eclipse.jgit.errors.MissingObjectException;

/** Sorts commits in topological order. */
class TopoSortGenerator extends Generator {
private static final int TOPO_QUEUED = RevWalk.TOPO_QUEUED;
private static final int TOPO_DELAY = RevWalk.TOPO_DELAY;

private final FIFORevQueue pending;

@@ -47,16 +47,12 @@ class TopoSortGenerator extends Generator {
if (c == null) {
break;
}
if ((c.flags & TOPO_QUEUED) == 0) {
for (RevCommit p : c.parents) {
p.inDegree++;

if (firstParent) {
break;
}
for (RevCommit p : c.parents) {
p.inDegree++;
if (firstParent) {
break;
}
}
c.flags |= TOPO_QUEUED;
pending.add(c);
}
}
@@ -75,42 +71,34 @@ class TopoSortGenerator extends Generator {
RevCommit next() throws MissingObjectException,
IncorrectObjectTypeException, IOException {
for (;;) {
RevCommit c = pending.next();
if (c == null) {
final RevCommit c = pending.next();
if (c == null)
return null;
}

if (c.inDegree > 0) {
// At least one of our children is missing. We delay
// production until all of our children are output.
//
c.flags |= TOPO_DELAY;
continue;
}

if ((c.flags & TOPO_QUEUED) == 0) {
// c is a parent that already produced or a parent that
// was never in the priority queue and should never produce.
//
continue;
}

// All of our children have already produced,
// so it is OK for us to produce now as well.
//
for (RevCommit p : c.parents) {
if (--p.inDegree == 0 && (p.flags & TOPO_QUEUED) != 0) {
// The parent has no unproduced interesting children. unpop
// the parent so it goes right behind this child. This means
// that this parent commit may appear in "pending" more than
// once, but this is safe since upon the second and
// subsequent iterations with this commit, it will no longer
// have TOPO_QUEUED set, and thus will be skipped.
if (--p.inDegree == 0 && (p.flags & TOPO_DELAY) != 0) {
// This parent tried to come before us, but we are
// his last child. unpop the parent so it goes right
// behind this child.
//
p.flags &= ~TOPO_DELAY;
pending.unpop(p);
}
if (firstParent) {
break;
}
}

c.flags &= ~TOPO_QUEUED;
return c;
}
}

+ 2
- 2
org.eclipse.jgit/src/org/eclipse/jgit/revwalk/filter/PatternMatchRevFilter.java View File

@@ -42,8 +42,8 @@ public abstract class PatternMatchRevFilter extends RevFilter {
protected static final String forceToRaw(String patternText) {
final byte[] b = Constants.encode(patternText);
final StringBuilder needle = new StringBuilder(b.length);
for (int i = 0; i < b.length; i++)
needle.append((char) (b[i] & 0xff));
for (byte element : b)
needle.append((char) (element & 0xff));
return needle.toString();
}


+ 1
- 2
org.eclipse.jgit/src/org/eclipse/jgit/transport/HttpAuthMethod.java View File

@@ -423,8 +423,7 @@ abstract class HttpAuthMethod {

private static String LHEX(byte[] bin) {
StringBuilder r = new StringBuilder(bin.length * 2);
for (int i = 0; i < bin.length; i++) {
byte b = bin[i];
for (byte b : bin) {
r.append(LHEX[(b >>> 4) & 0x0f]);
r.append(LHEX[b & 0x0f]);
}

+ 7
- 1
org.eclipse.jgit/src/org/eclipse/jgit/transport/JschConfigSessionFactory.java View File

@@ -219,7 +219,13 @@ public abstract class JschConfigSessionFactory extends SshSessionFactory {

private static void setPreferredKeyTypesOrder(Session session) {
HostKeyRepository hkr = session.getHostKeyRepository();
List<String> known = Stream.of(hkr.getHostKey(hostName(session), null))
HostKey[] hostKeys = hkr.getHostKey(hostName(session), null);

if (hostKeys == null) {
return;
}

List<String> known = Stream.of(hostKeys)
.map(HostKey::getType)
.collect(toList());


+ 2
- 2
org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java View File

@@ -303,8 +303,8 @@ public class URIish implements Serializable {
return null;
ByteArrayOutputStream os = new ByteArrayOutputStream(s.length());
byte[] bytes = s.getBytes(UTF_8);
for (int i = 0; i < bytes.length; ++i) {
int b = bytes[i] & 0xFF;
for (byte c : bytes) {
int b = c & 0xFF;
if (b <= 32 || (encodeNonAscii && b > 127) || b == '%'
|| (escapeReservedChars && reservedChars.get(b))) {
os.write('%');

+ 2
- 2
org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java View File

@@ -2378,12 +2378,12 @@ public class UploadPack {
}

@Override
public void write(byte b[]) throws IOException {
public void write(byte[] b) throws IOException {
out.write(b);
}

@Override
public void write(byte b[], int off, int len) throws IOException {
public void write(byte[] b, int off, int len) throws IOException {
out.write(b, off, len);
}


+ 13
- 2
org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java View File

@@ -245,7 +245,16 @@ public abstract class FS {
return t;
});

private static void setBackground(boolean async) {
/**
* Whether FileStore attributes should be determined asynchronously
*
* @param async
* whether FileStore attributes should be determined
* asynchronously. If false access to cached attributes may block
* for some seconds for the first call per FileStore
* @since 5.6.2
*/
public static void setBackground(boolean async) {
background.set(async);
}

@@ -709,7 +718,9 @@ public abstract class FS {
* asynchronously. If false access to cached attributes may block
* for some seconds for the first call per FileStore
* @since 5.1.9
* @deprecated Use {@link FileStoreAttributes#setBackground} instead
*/
@Deprecated
public static void setAsyncFileStoreAttributes(boolean asynch) {
FileStoreAttributes.setBackground(asynch);
}
@@ -2270,7 +2281,7 @@ public abstract class FS {

void copy() throws IOException {
boolean writeFailure = false;
byte buffer[] = new byte[4096];
byte[] buffer = new byte[4096];
int readBytes;
while ((readBytes = in.read(buffer)) != -1) {
// Do not try to write again after a failure, but keep

+ 1
- 1
org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java View File

@@ -117,7 +117,7 @@ public class FS_Win32_Cygwin extends FS_Win32 {
argv.add("sh.exe"); //$NON-NLS-1$
argv.add("-c"); //$NON-NLS-1$
argv.add("$0 \"$@\""); //$NON-NLS-1$
argv.add(cmd);
argv.add(cmd.replace(File.separatorChar, '/'));
argv.addAll(Arrays.asList(args));
ProcessBuilder proc = new ProcessBuilder();
proc.command(argv);

+ 18
- 3
org.eclipse.jgit/src/org/eclipse/jgit/util/Hex.java View File

@@ -10,6 +10,10 @@

package org.eclipse.jgit.util;

import java.text.MessageFormat;

import org.eclipse.jgit.internal.JGitText;

/**
* Encodes and decodes to and from hexadecimal notation.
*
@@ -27,9 +31,11 @@ public final class Hex {
/**
* Decode a hexadecimal string to a byte array.
*
* Note this method performs no validation on input content.
* Note this method validates that characters in the given string are valid
* as digits in a hex string.
*
* @param s hexadecimal string
* @param s
* hexadecimal string
* @return decoded array
*/
public static byte[] decode(String s) {
@@ -37,7 +43,16 @@ public final class Hex {
byte[] b = new byte[len / 2];

for (int i = 0; i < len; i += 2) {
b[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) | Character.digit(s.charAt(i + 1), 16));
int left = Character.digit(s.charAt(i), 16);
int right = Character.digit(s.charAt(i + 1), 16);

if (left == -1 || right == -1) {
throw new IllegalArgumentException(MessageFormat.format(
JGitText.get().invalidHexString,
s));
}

b[i / 2] = (byte) (left << 4 | right);
}
return b;
}

+ 1
- 1
org.eclipse.jgit/src/org/eclipse/jgit/util/LfsFactory.java View File

@@ -280,7 +280,7 @@ public class LfsFactory {
}

@Override
public int read(byte b[], int off, int len) throws IOException {
public int read(byte[] b, int off, int len) throws IOException {
return stream.read(b, off, len);
}


+ 1
- 1
org.eclipse.jgit/src/org/eclipse/jgit/util/Monitoring.java View File

@@ -49,7 +49,7 @@ public class Monitoring {
String metricName) {
boolean register = false;
try {
Class<?> interfaces[] = mbean.getClass().getInterfaces();
Class<?>[] interfaces = mbean.getClass().getInterfaces();
for (Class<?> i : interfaces) {
register = SystemReader.getInstance().getUserConfig()
.getBoolean(

+ 2
- 2
org.eclipse.jgit/src/org/eclipse/jgit/util/QuotedString.java View File

@@ -243,8 +243,8 @@ public abstract class QuotedString {
final byte[] out = new byte[4 * in.length + 2];
int o = 0;
out[o++] = '"';
for (int i = 0; i < in.length; i++) {
final int c = in[i] & 0xff;
for (byte element : in) {
final int c = element & 0xff;
if (c < quote.length) {
final byte style = quote[c];
if (style == 0) {

+ 2
- 2
org.eclipse.jgit/src/org/eclipse/jgit/util/RawParseUtils.java View File

@@ -559,8 +559,8 @@ public final class RawParseUtils {
}
while (ptr < b.length - (headerName.length + 1)) {
boolean found = true;
for (int i = 0; i < headerName.length; i++) {
if (headerName[i] != b[ptr++]) {
for (byte element : headerName) {
if (element != b[ptr++]) {
found = false;
break;
}

+ 1
- 1
org.eclipse.jgit/src/org/eclipse/jgit/util/sha1/SHA1.java View File

@@ -45,7 +45,7 @@ import org.slf4j.LoggerFactory;
* @since 4.7
*/
public class SHA1 {
private static Logger LOG = LoggerFactory.getLogger(SHA1.class);
private static final Logger LOG = LoggerFactory.getLogger(SHA1.class);
private static final boolean DETECT_COLLISIONS;

static {

Loading…
Cancel
Save