Mercurial > hg > mercurial
view mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/UpdateCommand.java @ 497:ed098534dab4 Faradi-7.1.x
TW-15304 disable interactive user prompt
The only hg version where this setting is not respected recursevly for
subrepositories is 1.7.4.
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Wed, 24 Oct 2012 19:29:59 +0400 |
parents | efba721f9a1d |
children | d4c6c9ebbe8a |
line wrap: on
line source
/* * Copyright 2000-2011 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package jetbrains.buildServer.buildTriggers.vcs.mercurial.command; import com.intellij.execution.configurations.GeneralCommandLine; import jetbrains.buildServer.vcs.VcsException; import org.jetbrains.annotations.NotNull; import java.io.File; import static com.intellij.openapi.util.io.FileUtil.delete; public class UpdateCommand extends AuthCommand { private static final int UPDATE_TIMEOUT_SECONDS = 8 * 3600;//8 hours private String myToId; private String myBranchName; private boolean myTraceback; public UpdateCommand(@NotNull CommandSettings commandSettings, @NotNull String hgPath, @NotNull File workingDir, @NotNull AuthSettings authSettings) { super(commandSettings, hgPath, workingDir,authSettings); } public UpdateCommand branch(@NotNull String branchName) { myBranchName = branchName; return this; } public UpdateCommand toRevision(@NotNull String revision) { return toRevision(new ChangeSet(revision)); } public UpdateCommand toRevision(@NotNull ChangeSet cset) { myToId = cset.getId(); return this; } public UpdateCommand withTraceback(boolean runWithTraceback) { myTraceback = runWithTraceback; return this; } public void call() throws VcsException { ensureWorkingDirIsNotLocked(); MercurialCommandLine cli = createCommandLine(); cli.addParameter("update"); if (myTraceback) cli.addParameter("--traceback"); addAuthConfigParams(cli); cli.addParameter("-C"); cli.addParameter("-r"); if (myToId != null) { cli.addParameter(myToId); } else { cli.addParameter(myBranchName); } runCommand(cli, myCommandSettings.setTimeout(UPDATE_TIMEOUT_SECONDS)); } private void ensureWorkingDirIsNotLocked() { File lock = getWorkingDirLock(); if (lock.exists()) delete(lock); } private void addAuthConfigParams(GeneralCommandLine cmd) { if (myAuthSettings == null) return; if (myAuthSettings.getUsername() == null || myAuthSettings.getPassword() == null) return; cmd.addParameters("--config", "auth.tc.prefix=*"); cmd.addParameters("--config", "auth.tc.username=" + myAuthSettings.getUsername()); cmd.addParameters("--config", "auth.tc.password=" + myAuthSettings.getPassword()); cmd.addParameters("--config", "auth.tc.schemes=http https"); } @NotNull private File getWorkingDirLock() { return new File(getWorkDirectory(), ".hg" + File.separator + "wlock"); } }