Enable git wire protocol version 2 on server side per default
Bug: 563145 Change-Id: Id5030c2b85466da0a8ccf3d78ae78df16d64ffc5 Signed-off-by: David Ostrovsky <david@ostrovsky.org>
This commit is contained in:
parent
0853a2410f
commit
d9143287b7
|
@ -38,7 +38,6 @@
|
|||
import org.eclipse.jgit.junit.TestRepository;
|
||||
import org.eclipse.jgit.junit.http.AccessEvent;
|
||||
import org.eclipse.jgit.junit.http.AppServer;
|
||||
import org.eclipse.jgit.lib.ConfigConstants;
|
||||
import org.eclipse.jgit.lib.Constants;
|
||||
import org.eclipse.jgit.lib.Ref;
|
||||
import org.eclipse.jgit.lib.RefUpdate;
|
||||
|
@ -50,7 +49,6 @@
|
|||
import org.eclipse.jgit.transport.PacketLineIn;
|
||||
import org.eclipse.jgit.transport.PacketLineOut;
|
||||
import org.eclipse.jgit.transport.Transport;
|
||||
import org.eclipse.jgit.transport.TransferConfig;
|
||||
import org.eclipse.jgit.transport.URIish;
|
||||
import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;
|
||||
import org.eclipse.jgit.transport.http.HttpConnection;
|
||||
|
@ -326,7 +324,22 @@ public void testListRemoteWithoutLocalRepository() throws Exception {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testHttpClientWantsV2ButServerNotConfigured() throws Exception {
|
||||
public void testHttpClientWantsV2AndServerNotConfigured() throws Exception {
|
||||
String url = smartAuthNoneURI.toString() + "/info/refs?service=git-upload-pack";
|
||||
HttpConnection c = HttpTransport.getConnectionFactory()
|
||||
.create(new URL(url));
|
||||
c.setRequestMethod("GET");
|
||||
c.setRequestProperty("Git-Protocol", "version=2");
|
||||
assertEquals(200, c.getResponseCode());
|
||||
|
||||
PacketLineIn pckIn = new PacketLineIn(c.getInputStream());
|
||||
assertThat(pckIn.readString(), is("version 2"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHttpServerConfiguredToV0() throws Exception {
|
||||
remoteRepository.getRepository().getConfig().setInt(
|
||||
"protocol", null, "version", 0);
|
||||
String url = smartAuthNoneURI.toString() + "/info/refs?service=git-upload-pack";
|
||||
HttpConnection c = HttpTransport.getConnectionFactory()
|
||||
.create(new URL(url));
|
||||
|
@ -344,11 +357,6 @@ public void testHttpClientWantsV2ButServerNotConfigured() throws Exception {
|
|||
|
||||
@Test
|
||||
public void testV2HttpFirstResponse() throws Exception {
|
||||
remoteRepository.getRepository().getConfig().setString(
|
||||
ConfigConstants.CONFIG_PROTOCOL_SECTION, null,
|
||||
ConfigConstants.CONFIG_KEY_VERSION,
|
||||
TransferConfig.ProtocolVersion.V2.version());
|
||||
|
||||
String url = smartAuthNoneURI.toString() + "/info/refs?service=git-upload-pack";
|
||||
HttpConnection c = HttpTransport.getConnectionFactory()
|
||||
.create(new URL(url));
|
||||
|
@ -368,11 +376,6 @@ public void testV2HttpFirstResponse() throws Exception {
|
|||
|
||||
@Test
|
||||
public void testV2HttpSubsequentResponse() throws Exception {
|
||||
remoteRepository.getRepository().getConfig().setString(
|
||||
ConfigConstants.CONFIG_PROTOCOL_SECTION, null,
|
||||
ConfigConstants.CONFIG_KEY_VERSION,
|
||||
TransferConfig.ProtocolVersion.V2.version());
|
||||
|
||||
String url = smartAuthNoneURI.toString() + "/git-upload-pack";
|
||||
HttpConnection c = HttpTransport.getConnectionFactory()
|
||||
.create(new URL(url));
|
||||
|
|
|
@ -1333,6 +1333,8 @@ public void testFetch_RefsUnreadableOnUpload() throws Exception {
|
|||
new DfsRepositoryDescription(repoName));
|
||||
final TestRepository<Repository> repo = new TestRepository<>(
|
||||
badRefsRepo);
|
||||
badRefsRepo.getConfig().setInt("protocol", null, "version",
|
||||
enableProtocolV2 ? 2 : 0);
|
||||
|
||||
ServletContextHandler app = noRefServer.addContext("/git");
|
||||
GitServlet gs = new GitServlet();
|
||||
|
@ -1362,7 +1364,8 @@ public void testFetch_RefsUnreadableOnUpload() throws Exception {
|
|||
Collections.<ObjectId> emptySet());
|
||||
fail("Successfully served ref with value " + c.getRef(master));
|
||||
} catch (TransportException err) {
|
||||
assertEquals("Internal server error", err.getMessage());
|
||||
assertTrue("Unexpected exception message " + err.getMessage(),
|
||||
err.getMessage().contains("Internal server error"));
|
||||
}
|
||||
} finally {
|
||||
noRefServer.tearDown();
|
||||
|
|
|
@ -723,7 +723,8 @@ public void setCachedPackUriProvider(@Nullable CachedPackUriProvider p) {
|
|||
}
|
||||
|
||||
private boolean useProtocolV2() {
|
||||
return ProtocolVersion.V2.equals(transferConfig.protocolVersion)
|
||||
return (transferConfig.protocolVersion == null
|
||||
|| ProtocolVersion.V2.equals(transferConfig.protocolVersion))
|
||||
&& clientRequestedV2;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue