Search in sources :

Example 1 with AgentGitFacadeImpl

use of jetbrains.buildServer.buildTriggers.vcs.git.agent.AgentGitFacadeImpl in project teamcity-git by JetBrains.

the class FetchCommandImplTest method negative_refspec_for_tags.

@Test
public void negative_refspec_for_tags() throws Exception {
    final String gitPath = getGitPath();
    final GitVersion version = new AgentGitFacadeImpl(gitPath).version().call();
    if (!GitVersion.negativeRefSpecSupported(version))
        throw new SkipException("Git version is too old to run this test");
    final File remote = GitTestUtil.dataFile("fetch_multiple_refspecs");
    new File(remote, "refs" + File.separator + "heads").mkdirs();
    final File work = createTempDir();
    runCommand(false, gitPath, work, "init", "--bare");
    final StringBuilder log = new StringBuilder();
    final StubContext context = new StubContext("git", version);
    context.setLogger(createLogger(log));
    final GitCommandLine cmd = new GitCommandLine(context, getFakeGen());
    cmd.setExePath(gitPath);
    cmd.setWorkingDirectory(work);
    final FetchCommandImpl fetch = new FetchCommandImpl(cmd);
    fetch.setRemote(remote.getAbsolutePath());
    fetch.setAuthSettings(getEmptyAuthSettings());
    fetch.setRefspec("+refs/*:refs/*");
    fetch.setRefspec("^refs/tags/*");
    fetch.setFetchTags(false);
    fetch.call();
    // master + 6000 branches
    assertEquals(6001, FileUtil.listFiles(new File(work, "refs/heads"), (d, n) -> true).length);
    assertFalse(new File(work, "refs/tags/my_tag").exists());
    final String logStr = log.toString();
    assertFalse(logStr.contains("my_tag"));
}
Also used : AgentGitCommandLine(jetbrains.buildServer.buildTriggers.vcs.git.agent.AgentGitCommandLine) GitCommandLine(jetbrains.buildServer.buildTriggers.vcs.git.command.GitCommandLine) AgentGitFacadeImpl(jetbrains.buildServer.buildTriggers.vcs.git.agent.AgentGitFacadeImpl) GitVersion(jetbrains.buildServer.buildTriggers.vcs.git.GitVersion) FetchCommandImpl(jetbrains.buildServer.buildTriggers.vcs.git.command.impl.FetchCommandImpl) StubContext(jetbrains.buildServer.buildTriggers.vcs.git.command.impl.StubContext) SkipException(org.testng.SkipException) File(java.io.File) Test(org.testng.annotations.Test)

Example 2 with AgentGitFacadeImpl

use of jetbrains.buildServer.buildTriggers.vcs.git.agent.AgentGitFacadeImpl in project teamcity-git by JetBrains.

the class FetchCommandImplTest method fetch_multiple_refspecs.

@Test
public void fetch_multiple_refspecs() throws Exception {
    final String gitPath = getGitPath();
    final GitVersion version = new AgentGitFacadeImpl(gitPath).version().call();
    if (!GitVersion.fetchSupportsStdin(version))
        throw new SkipException("Git version is too old to run this test");
    final File remote = GitTestUtil.dataFile("fetch_multiple_refspecs");
    new File(remote, "refs" + File.separator + "heads").mkdirs();
    final File work = createTempDir();
    runCommand(false, gitPath, work, "init");
    final GitCommandLine cmd = new GitCommandLine(new StubContext("git", version), getFakeGen());
    cmd.setExePath(gitPath);
    cmd.setWorkingDirectory(work);
    final FetchCommandImpl fetch = new FetchCommandImpl(cmd);
    fetch.setRemote(remote.getAbsolutePath());
    fetch.setAuthSettings(getEmptyAuthSettings());
    for (int i = 0; i < 6000; ++i) {
        fetch.setRefspec("+refs/heads/branch" + i + ":refs/remotes/origin/branch" + i);
    }
    fetch.call();
    assertEquals(6000, FileUtil.listFiles(new File(work, ".git/refs/remotes/origin"), (d, n) -> true).length);
}
Also used : AgentGitCommandLine(jetbrains.buildServer.buildTriggers.vcs.git.agent.AgentGitCommandLine) GitCommandLine(jetbrains.buildServer.buildTriggers.vcs.git.command.GitCommandLine) AgentGitFacadeImpl(jetbrains.buildServer.buildTriggers.vcs.git.agent.AgentGitFacadeImpl) GitVersion(jetbrains.buildServer.buildTriggers.vcs.git.GitVersion) FetchCommandImpl(jetbrains.buildServer.buildTriggers.vcs.git.command.impl.FetchCommandImpl) StubContext(jetbrains.buildServer.buildTriggers.vcs.git.command.impl.StubContext) SkipException(org.testng.SkipException) File(java.io.File) Test(org.testng.annotations.Test)

Example 3 with AgentGitFacadeImpl

use of jetbrains.buildServer.buildTriggers.vcs.git.agent.AgentGitFacadeImpl in project teamcity-git by JetBrains.

the class GitVersionProvider method version.

@DataProvider
public static Object[][] version(Method testMethod) throws Exception {
    String gitPath = getGitPath();
    GitVersion version = new AgentGitFacadeImpl(gitPath).version().call();
    RequiredGitVersion requirement = testMethod.getAnnotation(RequiredGitVersion.class);
    if (requirement == null)
        requirement = testMethod.getDeclaringClass().getAnnotation(RequiredGitVersion.class);
    if (requirement == null) {
        return new Object[][] { new Object[] { new GitExec(gitPath, version) } };
    } else {
        GitVersion minRequired = GitVersion.parse("git version " + requirement.min());
        if (version.isLessThan(minRequired)) {
            return new Object[0][];
        } else {
            return new Object[][] { new Object[] { new GitExec(gitPath, version) } };
        }
    }
}
Also used : AgentGitFacadeImpl(jetbrains.buildServer.buildTriggers.vcs.git.agent.AgentGitFacadeImpl) GitVersion(jetbrains.buildServer.buildTriggers.vcs.git.GitVersion) GitExec(jetbrains.buildServer.buildTriggers.vcs.git.command.GitExec) DataProvider(org.testng.annotations.DataProvider)

Aggregations

GitVersion (jetbrains.buildServer.buildTriggers.vcs.git.GitVersion)3 AgentGitFacadeImpl (jetbrains.buildServer.buildTriggers.vcs.git.agent.AgentGitFacadeImpl)3 File (java.io.File)2 AgentGitCommandLine (jetbrains.buildServer.buildTriggers.vcs.git.agent.AgentGitCommandLine)2 GitCommandLine (jetbrains.buildServer.buildTriggers.vcs.git.command.GitCommandLine)2 FetchCommandImpl (jetbrains.buildServer.buildTriggers.vcs.git.command.impl.FetchCommandImpl)2 StubContext (jetbrains.buildServer.buildTriggers.vcs.git.command.impl.StubContext)2 SkipException (org.testng.SkipException)2 Test (org.testng.annotations.Test)2 GitExec (jetbrains.buildServer.buildTriggers.vcs.git.command.GitExec)1 DataProvider (org.testng.annotations.DataProvider)1