Mercurial > hg > mercurial
view mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/UpdateCommand.java @ 674:61da07eceaa1
add more tests for fetchModificationInfo, simplified code
author | eugene.petrenko@gmail.com |
---|---|
date | Fri, 15 Nov 2013 13:28:45 +0100 |
parents | d4c6c9ebbe8a |
children | 31a1aca3305c |
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 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"); addHttpAuthParams(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); } @NotNull private File getWorkingDirLock() { return new File(getWorkDirectory(), ".hg" + File.separator + "wlock"); } }