Search in sources :

Example 1 with VcsException

use of jetbrains.buildServer.vcs.VcsException in project teamcity-rest by JetBrains.

the class BuildRequest method setVcsLabel.

/**
 * Adds a label to build VCS roots.
 * @param buildLocator   specifies build to label.
 * @param vcsRootLocator optional, specifies a VCS root to put a label on. If not present, label will be applied to all VCS roots.
 * @param fields         specifies result representation
 * @param labelValue     text of the label.
 * @return added labels.
 */
@POST
@Path("/{buildLocator}/vcsLabels")
@Consumes("text/plain")
@Produces({ "application/xml", "application/json" })
@ApiOperation(value = "Add a VCS label to the matching build.", nickname = "addBuildVcsLabel")
public VcsLabels setVcsLabel(@ApiParam(format = LocatorName.BUILD) @PathParam("buildLocator") String buildLocator, @ApiParam(format = LocatorName.VCS_ROOT_INSTANCE) @QueryParam("locator") String vcsRootLocator, @QueryParam("fields") String fields, String labelValue) {
    if (StringUtil.isEmpty(labelValue)) {
        throw new BadRequestException("Label can not empty.");
    }
    SBuild build = getBuild(myBuildFinder.getBuildPromotion(null, buildLocator));
    if (build == null) {
        throw new NotFoundException("Cannot find a build using locator: " + buildLocator);
    }
    VcsLabelManager labelManager = myBeanContext.getSingletonService(VcsLabelManager.class);
    List<VcsRootInstance> roots;
    if (vcsRootLocator == null) {
        roots = build.getVcsRootEntries().stream().map(VcsRootInstanceEntry::getVcsRoot).collect(Collectors.toList());
    } else {
        VcsRootInstanceFinder rootInstanceFinder = myBeanContext.getSingletonService(VcsRootInstanceFinder.class);
        roots = Collections.singletonList(rootInstanceFinder.getItem(vcsRootLocator));
    }
    try {
        labelManager.setLabel(build, labelValue, roots);
    } catch (VcsException e) {
        LOG.warn("Couldn't set a vcs label.", e);
    }
    Fields returnFields = new Fields(fields);
    return new VcsLabels(labelManager.getLabels(build).stream().filter(l -> l.getLabelText().equals(labelValue)).map(l -> new VcsLabel(l, returnFields, myBeanContext)).collect(Collectors.toList()), returnFields);
}
Also used : BuildProblem(jetbrains.buildServer.serverSide.problems.BuildProblem) Loggers(jetbrains.buildServer.log.Loggers) EncryptUtil(jetbrains.buildServer.serverSide.crypt.EncryptUtil) TCStreamUtil(jetbrains.buildServer.util.TCStreamUtil) ApiParam(io.swagger.annotations.ApiParam) jetbrains.buildServer.server.rest.errors(jetbrains.buildServer.server.rest.errors) jetbrains.buildServer.server.rest.data(jetbrains.buildServer.server.rest.data) HttpDownloadProcessor(jetbrains.buildServer.controllers.HttpDownloadProcessor) TimeService(jetbrains.buildServer.util.TimeService) jetbrains.buildServer.serverSide.auth(jetbrains.buildServer.serverSide.auth) ApiOperation(io.swagger.annotations.ApiOperation) FileUtil(jetbrains.buildServer.util.FileUtil) jetbrains.buildServer.server.rest.model.build(jetbrains.buildServer.server.rest.model.build) VcsRootInstanceEntry(jetbrains.buildServer.vcs.VcsRootInstanceEntry) TestOccurrenceFinder(jetbrains.buildServer.server.rest.data.problem.TestOccurrenceFinder) ChangeBuildStatusProcessor(jetbrains.buildServer.controllers.actions.ChangeBuildStatusProcessor) StringUtil(jetbrains.buildServer.util.StringUtil) LogUtil(jetbrains.buildServer.serverSide.impl.LogUtil) Logger(com.intellij.openapi.diagnostic.Logger) RunningBuildState(jetbrains.buildServer.serverSide.impl.RunningBuildState) BaseBuild(jetbrains.buildServer.serverSide.impl.BaseBuild) UserModel(jetbrains.buildServer.users.UserModel) jetbrains.buildServer.serverSide(jetbrains.buildServer.serverSide) ServerProvidedProperties(jetbrains.buildServer.agent.ServerProvidedProperties) ProcessingResult(jetbrains.buildServer.parameters.ProcessingResult) TagFinder(jetbrains.buildServer.server.rest.data.build.TagFinder) SessionUser(jetbrains.buildServer.web.util.SessionUser) Collectors(java.util.stream.Collectors) DefaultMessagesInfo(jetbrains.buildServer.messages.DefaultMessagesInfo) ProblemOccurrenceFinder(jetbrains.buildServer.server.rest.data.problem.ProblemOccurrenceFinder) Nullable(org.jetbrains.annotations.Nullable) TestOccurrences(jetbrains.buildServer.server.rest.model.problem.TestOccurrences) javax.ws.rs(javax.ws.rs) VcsException(jetbrains.buildServer.vcs.VcsException) Pattern(java.util.regex.Pattern) BeanContext(jetbrains.buildServer.server.rest.util.BeanContext) NotNull(org.jetbrains.annotations.NotNull) VcsManager(jetbrains.buildServer.vcs.VcsManager) WebUtil(jetbrains.buildServer.web.util.WebUtil) java.util(java.util) LocatorName(jetbrains.buildServer.server.rest.swagger.constants.LocatorName) TriggeredBy(jetbrains.buildServer.serverSide.TriggeredBy) Status(jetbrains.buildServer.messages.Status) IssueUsages(jetbrains.buildServer.server.rest.model.issue.IssueUsages) jetbrains.buildServer.server.rest.model(jetbrains.buildServer.server.rest.model) Element(jetbrains.buildServer.util.browser.Element) HttpServletRequest(javax.servlet.http.HttpServletRequest) ParametersPersistableEntity(jetbrains.buildServer.server.rest.data.parameters.ParametersPersistableEntity) BuildProblemData(jetbrains.buildServer.BuildProblemData) TagsManager(jetbrains.buildServer.tags.TagsManager) Api(io.swagger.annotations.Api) SecurityContext(jetbrains.buildServer.serverSide.auth.SecurityContext) VcsRootInstance(jetbrains.buildServer.vcs.VcsRootInstance) ProblemOccurrences(jetbrains.buildServer.server.rest.model.problem.ProblemOccurrences) BuildChanges(jetbrains.buildServer.server.rest.model.change.BuildChanges) Properties(jetbrains.buildServer.server.rest.model.Properties) BuildTypeUtil(jetbrains.buildServer.server.rest.model.buildType.BuildTypeUtil) BuildAgentMessagesQueue(jetbrains.buildServer.serverSide.impl.BuildAgentMessagesQueue) HttpServletResponse(javax.servlet.http.HttpServletResponse) javax.ws.rs.core(javax.ws.rs.core) ServerAuthUtil(jetbrains.buildServer.serverSide.impl.auth.ServerAuthUtil) Consumer(java.util.function.Consumer) ProblemOccurrence(jetbrains.buildServer.server.rest.model.problem.ProblemOccurrence) java.io(java.io) VcsLabelManager(jetbrains.buildServer.serverSide.vcs.VcsLabelManager) FileSecurityUtil(jetbrains.buildServer.controllers.FileSecurityUtil) ActionErrors(jetbrains.buildServer.controllers.ActionErrors) WebAuthUtil(jetbrains.buildServer.web.util.WebAuthUtil) ServletContext(javax.servlet.ServletContext) QueuedBuild(jetbrains.buildServer.QueuedBuild) SUser(jetbrains.buildServer.users.SUser) ReferencesResolverUtil(jetbrains.buildServer.parameters.ReferencesResolverUtil) AggregatedBuildArtifactsElementBuilder(jetbrains.buildServer.server.rest.util.AggregatedBuildArtifactsElementBuilder) User(jetbrains.buildServer.users.User) VcsLabelManager(jetbrains.buildServer.serverSide.vcs.VcsLabelManager) VcsRootInstanceEntry(jetbrains.buildServer.vcs.VcsRootInstanceEntry) VcsRootInstance(jetbrains.buildServer.vcs.VcsRootInstance) VcsException(jetbrains.buildServer.vcs.VcsException) ApiOperation(io.swagger.annotations.ApiOperation)

Example 2 with VcsException

use of jetbrains.buildServer.vcs.VcsException in project teamcity-git by JetBrains.

the class GitDiagnosticsTab method runTestConnectionForAllProjectRoots.

private void runTestConnectionForAllProjectRoots(@NotNull SProject project, @NotNull List<VcsRootInstance> vcsRootInstances, @NotNull Date timestamp) {
    final String externalId = project.getExternalId();
    boolean canceled = false;
    try {
        final Map<Integer, String> cachedResults = new HashMap<>();
        final long start = System.currentTimeMillis();
        int processed = 0;
        int cacheHits = 0;
        for (VcsRootInstance ri : vcsRootInstances) {
            ++processed;
            if (!isGitRoot(ri) || ri.getUsages().isEmpty()) {
                continue;
            }
            String error = null;
            final Integer key = getKey(ri);
            if (cachedResults.containsKey(key)) {
                ++cacheHits;
                error = cachedResults.get(key);
                // cached success
                if (error == null)
                    continue;
            } else {
                boolean jGitSucceeded = true;
                try {
                    IOGuard.allowNetworkAndCommandLine(() -> myVcsSupport.getRemoteRefs(ri, false));
                } catch (VcsException e) {
                    jGitSucceeded = false;
                    cachedResults.put(key, null);
                }
                // if jgit fails, no need to check native git
                if (jGitSucceeded) {
                    try {
                        IOGuard.allowNetworkAndCommandLine(() -> myVcsSupport.getRemoteRefs(ri, true));
                        cachedResults.put(key, null);
                    } catch (Throwable e) {
                        error = e.getMessage();
                        cachedResults.put(key, error);
                    }
                }
            }
            final Lock lock = myLocks.get(externalId);
            lock.lock();
            try {
                final VcsRootLink vcsRootLink = new VcsRootLink(ri.getParent());
                final TestConnectionTask task = myTestConnectionsInProgress.get(externalId);
                if (task == null) {
                    canceled = true;
                    break;
                }
                task.setRootsProcessed(processed);
                if (error == null)
                    continue;
                final List<TestConnectionError> rootErrors = task.getRootErrors(vcsRootLink);
                rootErrors.add(new TestConnectionError(error, ri.getUsages().keySet().stream().map(bt -> new BuildTypeLink(bt)).collect(Collectors.toSet())));
            } finally {
                lock.unlock();
            }
        }
        final long duration = System.currentTimeMillis() - start;
        LOG.info("Native git TestConnection for " + LogUtil.describe(project) + (canceled ? " was canceled," : " finished") + " took " + TimeUnit.MILLISECONDS.toSeconds(duration) + "sec, cache size: " + cachedResults.size() + ", cache hits: " + cacheHits);
        if (canceled)
            return;
        if (project.isRootProject()) {
            FileUtil.delete(getTestConnectionResultsFolder());
            final File storedFile = getStoredTestConnectionErrorsFile(timestamp);
            deleteFile(storedFile);
            FileUtil.createParentDirs(storedFile);
            FileWriter writer = null;
            try {
                final Map<VcsRootLink, List<TestConnectionError>> errors;
                final Lock lock = myLocks.get(externalId);
                lock.lock();
                try {
                    errors = myTestConnectionsInProgress.get(externalId).getErrors();
                } finally {
                    lock.unlock();
                }
                writer = new FileWriter(storedFile);
                GSON.toJson(errors, Map.class, writer);
            } catch (Throwable e) {
                LOG.warnAndDebugDetails("Exception while saving native git Test Connection results for " + LogUtil.describe(project) + " to " + storedFile, e);
                deleteFile(storedFile);
            } finally {
                FileUtil.close(writer);
            }
        }
    } finally {
        final Lock lock = myLocks.get(externalId);
        lock.lock();
        try {
            finishTask(externalId);
        } finally {
            lock.unlock();
        }
    }
}
Also used : ProjectHierarchyBean(jetbrains.buildServer.web.util.ProjectHierarchyBean) java.util(java.util) PagePlaces(jetbrains.buildServer.web.openapi.PagePlaces) AjaxRequestProcessor(jetbrains.buildServer.controllers.AjaxRequestProcessor) GsonBuilder(com.google.gson.GsonBuilder) FileUtil(jetbrains.buildServer.util.FileUtil) RejectedExecutionException(java.util.concurrent.RejectedExecutionException) HttpServletRequest(javax.servlet.http.HttpServletRequest) AccessDeniedException(jetbrains.buildServer.serverSide.auth.AccessDeniedException) Gson(com.google.gson.Gson) StringUtil(jetbrains.buildServer.util.StringUtil) VcsRootInstance(jetbrains.buildServer.vcs.VcsRootInstance) Logger(com.intellij.openapi.diagnostic.Logger) XmlResponseUtil(jetbrains.buildServer.controllers.XmlResponseUtil) SVcsRoot(jetbrains.buildServer.vcs.SVcsRoot) Striped(com.google.common.util.concurrent.Striped) ExecutorServices(jetbrains.buildServer.serverSide.executors.ExecutorServices) jetbrains.buildServer.serverSide(jetbrains.buildServer.serverSide) DiagnosticTab(jetbrains.buildServer.diagnostic.web.DiagnosticTab) FileWriter(java.io.FileWriter) HttpServletResponse(javax.servlet.http.HttpServletResponse) SessionUser(jetbrains.buildServer.web.util.SessionUser) BaseController(jetbrains.buildServer.controllers.BaseController) Collectors(java.util.stream.Collectors) File(java.io.File) PluginDescriptor(jetbrains.buildServer.web.openapi.PluginDescriptor) TimeUnit(java.util.concurrent.TimeUnit) Nullable(org.jetbrains.annotations.Nullable) ModelAndView(org.springframework.web.servlet.ModelAndView) Lock(java.util.concurrent.locks.Lock) GitExec(jetbrains.buildServer.buildTriggers.vcs.git.command.GitExec) Permission(jetbrains.buildServer.serverSide.auth.Permission) Dates(jetbrains.buildServer.util.Dates) ActionErrors(jetbrains.buildServer.controllers.ActionErrors) VcsException(jetbrains.buildServer.vcs.VcsException) VcsRootSshKeyManager(jetbrains.buildServer.ssh.VcsRootSshKeyManager) FileReader(java.io.FileReader) CSRFFilter(jetbrains.buildServer.web.CSRFFilter) WebControllerManager(jetbrains.buildServer.web.openapi.WebControllerManager) VcsRoot(jetbrains.buildServer.vcs.VcsRoot) NotNull(org.jetbrains.annotations.NotNull) Element(org.jdom.Element) SUser(jetbrains.buildServer.users.SUser) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) BuildProject(jetbrains.buildServer.BuildProject) LogUtil(jetbrains.buildServer.log.LogUtil) FileWriter(java.io.FileWriter) VcsRootInstance(jetbrains.buildServer.vcs.VcsRootInstance) Lock(java.util.concurrent.locks.Lock) VcsException(jetbrains.buildServer.vcs.VcsException) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList) File(java.io.File)

Example 3 with VcsException

use of jetbrains.buildServer.vcs.VcsException in project teamcity-git by JetBrains.

the class Cleanup method runNativeGC.

private void runNativeGC(final File bareGitDir) {
    String pathToGit = myConfig.getPathToGit();
    try {
        final long start = System.currentTimeMillis();
        GeneralCommandLine cl = new GeneralCommandLine();
        cl.setWorkingDirectory(bareGitDir.getParentFile());
        cl.setExePath(pathToGit);
        cl.addParameter("--git-dir=" + bareGitDir.getCanonicalPath());
        cl.addParameter("gc");
        cl.addParameter("--auto");
        cl.addParameter("--quiet");
        ExecResult result = SimpleCommandLineProcessRunner.runCommand(cl, null, new SimpleCommandLineProcessRunner.ProcessRunCallback() {

            public void onProcessStarted(Process ps) {
                CLEANUP.info("Start 'git --git-dir=" + bareGitDir.getAbsolutePath() + " gc'");
            }

            public void onProcessFinished(Process ps) {
                final long finish = System.currentTimeMillis();
                CLEANUP.info("Finish 'git --git-dir=" + bareGitDir.getAbsolutePath() + " gc', duration: " + (finish - start) + "ms");
            }

            public Integer getOutputIdleSecondsTimeout() {
                return 60 * myConfig.getNativeGCQuotaMinutes();
            }

            public Integer getMaxAcceptedOutputSize() {
                return null;
            }

            @Override
            public boolean terminateEntireProcessTree() {
                return true;
            }
        });
        VcsException commandError = CommandLineUtil.getCommandLineError("'git --git-dir=" + bareGitDir.getAbsolutePath() + " gc'", result);
        if (commandError != null) {
            CLEANUP.warnAndDebugDetails("Error while running 'git --git-dir=" + bareGitDir.getAbsolutePath() + " gc'", commandError);
        }
        if (result.getStderr().length() > 0) {
            CLEANUP.debug("Output produced by 'git --git-dir=" + bareGitDir.getAbsolutePath() + " gc'");
            CLEANUP.debug(result.getStderr());
        }
    } catch (Exception e) {
        myGcErrors.registerError(bareGitDir, e);
        CLEANUP.warnAndDebugDetails("Error while running 'git --git-dir=" + bareGitDir.getAbsolutePath() + " gc'", e);
    }
}
Also used : SimpleCommandLineProcessRunner(jetbrains.buildServer.SimpleCommandLineProcessRunner) GeneralCommandLine(com.intellij.execution.configurations.GeneralCommandLine) VcsException(jetbrains.buildServer.vcs.VcsException) IOException(java.io.IOException) VcsException(jetbrains.buildServer.vcs.VcsException) ExecResult(jetbrains.buildServer.ExecResult)

Example 4 with VcsException

use of jetbrains.buildServer.vcs.VcsException in project teamcity-git by JetBrains.

the class FetchCommandImpl method getTeamCityPrivateKey.

private File getTeamCityPrivateKey(@NotNull AuthSettings authSettings) throws VcsException {
    if (authSettings.getAuthMethod() != AuthenticationMethod.TEAMCITY_SSH_KEY)
        return null;
    String keyId = authSettings.getTeamCitySshKeyId();
    if (keyId == null)
        return null;
    VcsRoot root = authSettings.getRoot();
    if (root == null)
        return null;
    TeamCitySshKey privateKey = mySshKeyManager.getKey(root);
    if (privateKey == null)
        return null;
    try {
        File privateKeyFile = FileUtil.createTempFile("private", "key");
        FileUtil.writeToFile(privateKeyFile, privateKey.getPrivateKey());
        return privateKeyFile;
    } catch (IOException e) {
        throw new VcsException(e);
    }
}
Also used : VcsException(jetbrains.buildServer.vcs.VcsException) VcsRoot(jetbrains.buildServer.vcs.VcsRoot) IOException(java.io.IOException) TeamCitySshKey(jetbrains.buildServer.ssh.TeamCitySshKey) File(java.io.File)

Example 5 with VcsException

use of jetbrains.buildServer.vcs.VcsException in project teamcity-git by JetBrains.

the class FetchCommandImpl method fetchInSeparateProcess.

private void fetchInSeparateProcess(@NotNull Repository repository, @NotNull URIish uri, @NotNull FetchSettings settings) throws VcsException {
    final Collection<RefSpec> specs = settings.getRefSpecs();
    final String debugInfo = getDebugInfo(repository, uri, specs);
    final ProcessXmxProvider xmxProvider = new ProcessXmxProvider(new RepositoryXmxStorage(repository, "fetch"), myConfig, "fetch", debugInfo);
    Integer xmx = xmxProvider.getNextXmx();
    int attempt = 0;
    while (xmx != null) {
        attempt++;
        File gitPropertiesFile = null;
        File teamcityPrivateKey = null;
        GitProcessStuckMonitor processStuckMonitor = null;
        try {
            File gcDump = getDumpFile(repository, "gc");
            gitPropertiesFile = myFetcherProperties.getPropertiesFile();
            teamcityPrivateKey = getTeamCityPrivateKey(settings.getAuthSettings());
            final GeneralCommandLine cl = createFetcherCommandLine(repository, uri, xmx);
            final String commandLineString = cl.getCommandLineString();
            final GitProcessExecutor processExecutor = new GitProcessExecutor(cl);
            processStuckMonitor = new GitProcessStuckMonitor(gcDump, xmx.longValue(), commandLineString) {

                @Override
                protected void stuckDetected() {
                    processExecutor.interrupt();
                }
            };
            processStuckMonitor.start();
            final GitProcessExecutor.GitExecResult gitResult = processExecutor.runProcess(getFetchProcessInputBytes(getAuthSettings(settings, teamcityPrivateKey), repository.getDirectory(), uri, specs, getDumpFile(repository, null), gcDump, gitPropertiesFile), myConfig.getFetchTimeout(), settings.createStdoutBuffer(), new ByteArrayOutputStream(), new GitProcessExecutor.ProcessExecutorAdapter() {

                @Override
                public void processStarted() {
                    if (LOG.isDebugEnabled())
                        LOG.debug("git fetch process for " + debugInfo + " started in separate process with command line: " + commandLineString);
                    settings.getProgress().reportProgress("git fetch " + uri);
                }

                @Override
                public void processFinished() {
                    if (LOG.isDebugEnabled())
                        LOG.debug("git fetch process for " + debugInfo + " finished");
                    settings.getProgress().reportProgress("git fetch " + uri + " finished");
                }

                @Override
                public void processFailed(@NotNull final ExecutionException e) {
                    if (LOG.isDebugEnabled())
                        LOG.debug("git fetch process for " + debugInfo + " failed");
                    settings.getProgress().reportProgress("git fetch " + uri + " failed");
                }
            });
            final ExecResult result = gitResult.getExecResult();
            VcsException commandError = CommandLineUtil.getCommandLineError("git fetch", " (repository dir: <TeamCity data dir>/system/caches/git/" + repository.getDirectory().getName() + ")", result, true, true);
            if (commandError != null) {
                commandError.setRecoverable(isRecoverable(commandError));
                /* if the process had not enough memory or we killed it because gc */
                if (gitResult.isOutOfMemoryError() || gitResult.isInterrupted()) {
                    final Integer nextXmx = xmxProvider.getNextXmx();
                    if (nextXmx != null) {
                        xmx = nextXmx;
                        clean(repository);
                        continue;
                    }
                    commandError = new VcsException("There is not enough memory for git fetch (last attempted -Xmx" + xmx + "M). Please contact your system administrator", commandError);
                } else if (attempt == 1 && settings.getAuthSettings().doesTokenNeedRefresh()) {
                    LOG.debug("git fetch process failed due to suspected token expiration for \"" + uri + "\" in directory \"" + repository.getDirectory() + "\", took " + TimePrinter.createMillisecondsFormatter().formatTime(gitResult.getDuration()) + ". Retrying with token refresh.");
                    continue;
                }
                LOG.info("git fetch process failed for \"" + uri + "\" in directory \"" + repository.getDirectory() + "\", took " + TimePrinter.createMillisecondsFormatter().formatTime(gitResult.getDuration()));
                if (gitResult.isTimeout()) {
                    logTimeout(debugInfo, getDumpFile(repository, null));
                }
                clean(repository);
                throw commandError;
            }
            LOG.info("git fetch process finished for: " + uri + " in directory: " + repository.getDirectory() + ", took " + gitResult.getDuration() + "ms");
            if (result.getStderr().length() > 0) {
                LOG.warn("Error output produced by git fetch:\n" + result.getStderr());
            }
            LOG.debug("git fetch process output:\n" + result.getStdout());
            break;
        } finally {
            if (teamcityPrivateKey != null) {
                FileUtil.delete(teamcityPrivateKey);
            }
            if (gitPropertiesFile != null) {
                FileUtil.delete(gitPropertiesFile);
            }
            if (processStuckMonitor != null) {
                processStuckMonitor.finish();
            }
        }
    }
}
Also used : RepositoryXmxStorage(jetbrains.buildServer.buildTriggers.vcs.git.process.RepositoryXmxStorage) ByteArrayOutputStream(java.io.ByteArrayOutputStream) RefSpec(org.eclipse.jgit.transport.RefSpec) GeneralCommandLine(com.intellij.execution.configurations.GeneralCommandLine) VcsException(jetbrains.buildServer.vcs.VcsException) GitProcessExecutor(jetbrains.buildServer.buildTriggers.vcs.git.process.GitProcessExecutor) ExecutionException(com.intellij.execution.ExecutionException) File(java.io.File) GitProcessStuckMonitor(jetbrains.buildServer.buildTriggers.vcs.git.process.GitProcessStuckMonitor) ExecResult(jetbrains.buildServer.ExecResult)

Aggregations

VcsException (jetbrains.buildServer.vcs.VcsException)79 File (java.io.File)34 NotNull (org.jetbrains.annotations.NotNull)22 GitTestUtil.dataFile (jetbrains.buildServer.buildTriggers.vcs.git.tests.GitTestUtil.dataFile)13 IOException (java.io.IOException)12 TestFor (jetbrains.buildServer.util.TestFor)11 GeneralCommandLine (com.intellij.execution.configurations.GeneralCommandLine)10 Method (java.lang.reflect.Method)10 ExecResult (jetbrains.buildServer.ExecResult)10 VcsRootImpl (jetbrains.buildServer.vcs.impl.VcsRootImpl)10 AfterMethod (org.testng.annotations.AfterMethod)10 BeforeMethod (org.testng.annotations.BeforeMethod)10 VcsRoot (jetbrains.buildServer.vcs.VcsRoot)9 Repository (org.eclipse.jgit.lib.Repository)9 URIish (org.eclipse.jgit.transport.URIish)9 Nullable (org.jetbrains.annotations.Nullable)8 SimpleCommandLineProcessRunner (jetbrains.buildServer.SimpleCommandLineProcessRunner)5 GitExec (jetbrains.buildServer.buildTriggers.vcs.git.command.GitExec)5 CheckoutRules (jetbrains.buildServer.vcs.CheckoutRules)5 RefSpec (org.eclipse.jgit.transport.RefSpec)5