Mercurial > hg > mercurial
view mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/PullCommand.java @ 976:7bf4d943d5bb
Update copyright
author | pavel.sher |
---|---|
date | Mon, 22 Jan 2018 11:39:20 +0100 |
parents | d1a5fc6c1d6e |
children | 1c65ee703a92 |
line wrap: on
line source
/* * Copyright 2000-2018 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 jetbrains.buildServer.vcs.VcsException; import org.jetbrains.annotations.NotNull; import java.io.File; import java.io.IOException; import static com.intellij.openapi.util.io.FileUtil.delete; /** * @author Pavel.Sher * Date: 14.07.2008 */ public class PullCommand extends AuthCommand { private String myPullUrl; private int myTimeout; private boolean myTraceback; private boolean myProfile; public PullCommand(@NotNull CommandSettings commandSettings, @NotNull String hgPath, @NotNull File workingDir, @NotNull AuthSettings authSettings) { super(commandSettings, hgPath, workingDir, authSettings); } public PullCommand fromRepository(@NotNull String pullUrl) { myPullUrl = pullUrl; return this; } public PullCommand fromRepository(@NotNull File localRepository) throws IOException { myPullUrl = localRepository.getCanonicalPath(); return this; } public PullCommand withTimeout(int timeout) { myTimeout = timeout; return this; } public PullCommand withTraceback(boolean runWithTraceback) { myTraceback = runWithTraceback; return this; } public PullCommand withProfile(boolean runWithProfile) { myProfile = runWithProfile; return this; } public void call() throws VcsException { ensureRepositoryIsNotLocked(); MercurialCommandLine cli = createCommandLine(); cli.addParameter("pull"); if (myTraceback) cli.addParameter("--traceback"); if (myProfile) cli.addParameter("--profile"); CommandSettings settings = myCommandSettings.setTimeout(myTimeout); if (settings.getProgressConsumer() != null) { cli.addParameters("--config", "extensions.progress="); cli.addParameters("--config", "progress.format=topic number"); cli.addParameters("--config", "progress.delay=0"); cli.addParameters("--config", "progress.assume-tty=True"); cli.setHasProgress(true); } String pullUrl = myAuthSettings.getRepositoryUrlWithCredentials(myPullUrl); cli.addParameter(pullUrl); runCommand(cli, settings); } private void ensureRepositoryIsNotLocked() { File lock = getRepositoryLock(); if (lock.exists()) delete(lock); } @NotNull private File getRepositoryLock() { return new File(getWorkDirectory(), ".hg" + File.separator + "store" + File.separator + "lock"); } @NotNull @Override protected String getDescription() { return "hg pull " + myAuthSettings.getRepositoryUrlWithHiddenPassword(myPullUrl); } }