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
This commit is contained in:
commit
eaf7fd4eb7
|
@ -1 +1 @@
|
|||
2.1.0
|
||||
2.2.0
|
||||
|
|
|
@ -105,7 +105,7 @@ void service(HttpServletRequest req, HttpServletResponse rsp)
|
|||
// 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;
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
*/
|
||||
public class RepeatRule implements TestRule {
|
||||
|
||||
private static Logger LOG = Logger
|
||||
private static final Logger LOG = Logger
|
||||
.getLogger(RepeatRule.class.getName());
|
||||
|
||||
/**
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
* @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;
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
*/
|
||||
public class ObjectDownloadListener implements WriteListener {
|
||||
|
||||
private static Logger LOG = Logger
|
||||
private static final Logger LOG = Logger
|
||||
.getLogger(ObjectDownloadListener.class.getName());
|
||||
|
||||
private final AsyncContext context;
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
*/
|
||||
public class ObjectUploadListener implements ReadListener {
|
||||
|
||||
private static Logger LOG = Logger
|
||||
private static final Logger LOG = Logger
|
||||
.getLogger(ObjectUploadListener.class.getName());
|
||||
|
||||
private final AsyncContext context;
|
||||
|
|
|
@ -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\
|
||||
|
|
|
@ -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\
|
||||
|
|
|
@ -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\
|
||||
|
|
|
@ -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\
|
||||
|
|
|
@ -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\
|
||||
|
|
|
@ -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\
|
||||
|
|
|
@ -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\
|
||||
|
|
|
@ -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,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
|
||||
|
|
|
@ -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,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
|
||||
|
|
|
@ -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,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
|
||||
|
|
|
@ -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,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
|
||||
|
|
|
@ -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>
|
|
@ -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
|
||||
}
|
|
@ -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>
|
|
@ -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
|
||||
}
|
|
@ -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,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
|
||||
|
|
|
@ -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,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
|
||||
|
|
|
@ -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,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
|
||||
|
|
|
@ -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,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
|
||||
|
|
|
@ -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]
|
|
@ -88,7 +88,7 @@ private KeyPair loadKey(SessionContext session, Path path)
|
|||
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());
|
||||
|
|
|
@ -216,7 +216,7 @@ private static int parseChallenge(AuthenticationChallenge challenge,
|
|||
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);
|
||||
|
|
|
@ -563,10 +563,10 @@ private void doTestRebasePreservingMergesWithUnrelatedSide(
|
|||
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());
|
||||
|
|
|
@ -91,11 +91,6 @@ public void testRacyReload() throws Exception {
|
|||
}
|
||||
}
|
||||
|
||||
@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 void testCompactFully() throws Exception {
|
|||
}
|
||||
|
||||
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 void testConvert() throws Exception {
|
|||
|
||||
@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 void testConvertToRefdir() throws Exception {
|
|||
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");
|
||||
|
|
|
@ -254,12 +254,12 @@ public void testBug368927() throws Exception {
|
|||
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 void testEgitHistory() throws Exception {
|
|||
.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 void testBug419359() throws Exception {
|
|||
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 void testMultipleMerges() throws Exception {
|
|||
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 void testMultipleMerges() throws Exception {
|
|||
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 void testMultipleMerges() throws Exception {
|
|||
/**
|
||||
* <pre>
|
||||
* a4
|
||||
* |
|
||||
* a3
|
||||
* | \\
|
||||
* a2 \\
|
||||
* | \\
|
||||
* | b3 ||
|
||||
* | | ||
|
||||
* | b2 ||
|
||||
* | | //
|
||||
* | b1
|
||||
* | |
|
||||
* | b3
|
||||
* a3 |
|
||||
* | \\|
|
||||
* | |\\
|
||||
* | b2||
|
||||
* a2 | //
|
||||
* | b1
|
||||
* | /
|
||||
* a1
|
||||
* </pre>
|
||||
|
@ -561,10 +552,10 @@ public void testMergeBlockedBySelf() throws Exception {
|
|||
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 void testMergeBlockedBySelf() throws Exception {
|
|||
* b2
|
||||
* a4 |
|
||||
* | \ |
|
||||
* | b1
|
||||
* a3 |
|
||||
* a3 \|
|
||||
* | \ |
|
||||
* | c |
|
||||
* | / |
|
||||
* a2 |
|
||||
* | |
|
||||
* | /
|
||||
* | b1
|
||||
* /
|
||||
* | /
|
||||
* a1
|
||||
* </pre>
|
||||
|
@ -614,10 +604,10 @@ public void testMergeBlockedByOther() throws Exception {
|
|||
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();
|
||||
}
|
||||
|
|
|
@ -216,4 +216,12 @@ public void testEmptyTreeCorruption() throws Exception {
|
|||
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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -144,110 +144,4 @@ public void testSort_TOPO_REVERSE() throws Exception {
|
|||
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());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,6 +42,31 @@ public void testEncodeMatchesDecode() {
|
|||
}
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -338,8 +338,7 @@ public RebaseResult call() throws GitAPIException, NoHeadException,
|
|||
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) {
|
||||
|
|
|
@ -415,7 +415,7 @@ public static RawText load(ObjectLoader ldr, int threshold)
|
|||
}
|
||||
}
|
||||
|
||||
byte data[];
|
||||
byte[] data;
|
||||
try {
|
||||
data = new byte[(int)sz];
|
||||
} catch (OutOfMemoryError e) {
|
||||
|
|
|
@ -79,7 +79,8 @@
|
|||
* 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;
|
||||
|
||||
|
|
|
@ -380,8 +380,8 @@ public boolean isMatch() {
|
|||
* @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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -382,6 +382,7 @@ public static JGitText get() {
|
|||
/***/ public String invalidGitdirRef;
|
||||
/***/ public String invalidGitModules;
|
||||
/***/ public String invalidGitType;
|
||||
/***/ public String invalidHexString;
|
||||
/***/ public String invalidHooksPath;
|
||||
/***/ public String invalidId;
|
||||
/***/ public String invalidId0;
|
||||
|
|
|
@ -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 @@ ReflogReader getReflogReader(String refname) throws IOException {
|
|||
* @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 @@ private static Ref refForWrite(RevWalk rw, Ref r) throws IOException {
|
|||
/**
|
||||
* @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 @@ private static Ref refForWrite(RevWalk rw, Ref r) throws IOException {
|
|||
* 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;
|
||||
|
|
|
@ -649,7 +649,7 @@ public String toString() {
|
|||
}
|
||||
}
|
||||
|
||||
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 @@ static List<Segment> segmentSizes(long sizes[]) {
|
|||
return segments;
|
||||
}
|
||||
|
||||
private static Optional<Segment> autoCompactCandidate(long sizes[]) {
|
||||
private static Optional<Segment> autoCompactCandidate(long[] sizes) {
|
||||
if (sizes.length == 0) {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
|
|
@ -18,10 +18,13 @@
|
|||
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.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 FileRepository(BaseRepositoryBuilder options) throws IOException {
|
|||
|
||||
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 void autoGC(ProgressMonitor monitor) {
|
|||
* 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 @@ void convertToPackedRefs(boolean backup) throws IOException {
|
|||
}
|
||||
|
||||
File refsFile = new File(getDirectory(), "refs"); //$NON-NLS-1$
|
||||
File refsHeadsFile = new File(refsFile, "heads");//$NON-NLS-1$
|
||||
File headFile = new File(getDirectory(), Constants.HEAD);
|
||||
FileReftableDatabase oldDb = (FileReftableDatabase) refs;
|
||||
|
||||
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();
|
||||
}
|
||||
// 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 @@ void convertToPackedRefs(boolean backup) throws IOException {
|
|||
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 @@ void convertToPackedRefs(boolean backup) throws IOException {
|
|||
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 @@ void convertToReftable(boolean writeLogs, boolean backup)
|
|||
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 @@ void convertToReftable(boolean writeLogs, boolean backup)
|
|||
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 @@ void convertToReftable(boolean writeLogs, boolean backup)
|
|||
}
|
||||
}
|
||||
|
||||
// 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 void convertRefStorage(String format, boolean writeLogs,
|
|||
}
|
||||
} else if (format.equals("refdir")) {//$NON-NLS-1$
|
||||
if (refs instanceof FileReftableDatabase) {
|
||||
convertToPackedRefs(backup);
|
||||
convertToPackedRefs(writeLogs, backup);
|
||||
}
|
||||
} else {
|
||||
throw new IOException(MessageFormat
|
||||
|
|
|
@ -122,8 +122,8 @@ private int countEntries(DeltaIndexScanner scan) {
|
|||
// 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;
|
||||
|
||||
|
|
|
@ -191,7 +191,7 @@ public static Iterable<PackWriter> getInstances() {
|
|||
}
|
||||
|
||||
@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 static Iterable<PackWriter> getInstances() {
|
|||
|
||||
private List<ObjectToPack> sortedByName;
|
||||
|
||||
private byte packcsum[];
|
||||
private byte[] packcsum;
|
||||
|
||||
private boolean deltaBaseAsOffset;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -110,7 +110,7 @@ public enum MergeFailureReason {
|
|||
*
|
||||
* @since 3.0
|
||||
*/
|
||||
protected String commitNames[];
|
||||
protected String[] commitNames;
|
||||
|
||||
/**
|
||||
* Index of the base tree within the {@link #tw tree walk}.
|
||||
|
|
|
@ -364,7 +364,9 @@ public RevCommit next() throws MissingObjectException,
|
|||
* @since 5.4
|
||||
*/
|
||||
public void skipTree() {
|
||||
currVisit.ptr = currVisit.buf.length;
|
||||
if (currVisit != null) {
|
||||
currVisit.ptr = currVisit.buf.length;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -151,7 +151,7 @@ public String toString() {
|
|||
* 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' : '-');
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
/** 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 @@ void shareFreeList(BlockRevQueue q) {
|
|||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -423,8 +423,7 @@ private static MessageDigest newMD5() {
|
|||
|
||||
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]);
|
||||
}
|
||||
|
|
|
@ -219,7 +219,13 @@ private void safeConfig(Session session, Config cfg) {
|
|||
|
||||
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());
|
||||
|
||||
|
|
|
@ -303,8 +303,8 @@ private static String escape(String s, boolean escapeReservedChars,
|
|||
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('%');
|
||||
|
|
|
@ -2378,12 +2378,12 @@ public void write(int b) throws IOException {
|
|||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
|
||||
|
|
|
@ -245,7 +245,16 @@ public static final class FileStoreAttributes {
|
|||
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 static FS detect() {
|
|||
* 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 void run() {
|
|||
|
||||
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
|
||||
|
|
|
@ -117,7 +117,7 @@ public ProcessBuilder runInShell(String cmd, String[] args) {
|
|||
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);
|
||||
|
|
|
@ -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 @@ private 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 static byte[] decode(String s) {
|
|||
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;
|
||||
}
|
||||
|
|
|
@ -280,7 +280,7 @@ public int read() throws IOException {
|
|||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -243,8 +243,8 @@ public String quote(String instr) {
|
|||
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) {
|
||||
|
|
|
@ -559,8 +559,8 @@ public static final int headerStart(byte[] headerName, byte[] b, int ptr) {
|
|||
}
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
* @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…
Reference in New Issue