/*
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  See the NOTICE file distributed with
 *  this work for additional information regarding copyright ownership.
 *  The ASF licenses this file to You 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
 *
 *      https://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 org.apache.tools.ant.taskdefs.optional.vss;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.types.Commandline;
import org.apache.tools.ant.types.Path;

Performs CheckOut commands to Microsoft Visual SourceSafe.
@ant.taskname="vsscheckout" category="scm"
@ant.attribute.groupname="vdl" description="Only one of version, date or label"
/** * Performs CheckOut commands to Microsoft Visual SourceSafe. * * @ant.task name="vsscheckout" category="scm" * @ant.attribute.group name="vdl" description="Only one of version, date or label" */
public class MSVSSCHECKOUT extends MSVSS {
Builds a command line to execute ss.
Returns: The constructed commandline.
/** * Builds a command line to execute ss. * @return The constructed commandline. */
protected Commandline buildCmdLine() { Commandline commandLine = new Commandline(); // first off, make sure that we've got a command and a vssdir ... if (getVsspath() == null) { String msg = "vsspath attribute must be set!"; throw new BuildException(msg, getLocation()); } // build the command line from what we got the format is // ss Checkout VSS items [-G] [-C] [-H] [-I-] [-N] [-O] [-R] [-V] [-Y] [-?] // as specified in the SS.EXE help commandLine.setExecutable(getSSCommand()); commandLine.createArgument().setValue(COMMAND_CHECKOUT); // VSS items commandLine.createArgument().setValue(getVsspath()); // -GL commandLine.createArgument().setValue(getLocalpath()); // -I- or -I-Y or -I-N commandLine.createArgument().setValue(getAutoresponse()); // -R commandLine.createArgument().setValue(getRecursive()); // -V commandLine.createArgument().setValue(getVersionDateLabel()); // -Y commandLine.createArgument().setValue(getLogin()); // -G commandLine.createArgument().setValue(getFileTimeStamp()); // -GWS or -GWR commandLine.createArgument().setValue(getWritableFiles()); // -G- commandLine.createArgument().setValue(getGetLocalCopy()); return commandLine; }
Override the project working directory.
Params:
  • localPath – The path on disk.
/** * Override the project working directory. * * @param localPath The path on disk. */
public void setLocalpath(Path localPath) { super.setInternalLocalPath(localPath.toString()); }
Check-out files recursively. Defaults to false.
Params:
  • recursive – The boolean value for recursive.
/** * Check-out files recursively. Defaults to false. * * @param recursive The boolean value for recursive. */
public void setRecursive(boolean recursive) { super.setInternalRecursive(recursive); }
Version to check-out.
Params:
  • version – The version to check-out.
@ant.attributegroup="vdl"
/** * Version to check-out. * * @param version The version to check-out. * * @ant.attribute group="vdl" */
public void setVersion(String version) { super.setInternalVersion(version); }
Date to check-out.
Params:
  • date – The date to check-out.
@ant.attributegroup="vdl"
/** * Date to check-out. * * @param date The date to check-out. * * @ant.attribute group="vdl" */
public void setDate(String date) { super.setInternalDate(date); }
Label to check-out.
Params:
  • label – The label to check-out.
@ant.attributegroup="vdl"
/** * Label to check-out. * * @param label The label to check-out. * * @ant.attribute group="vdl" */
public void setLabel(String label) { super.setInternalLabel(label); }
Autoresponse behaviour. Valid options are Y and N.
Params:
  • response – The auto response value.
/** * Autoresponse behaviour. Valid options are Y and N. * * @param response The auto response value. */
public void setAutoresponse(String response) { super.setInternalAutoResponse(response); }
Date and time stamp given to the local copy. Defaults to current.
Params:
  • timestamp – The file time stamping behaviour.
/** * Date and time stamp given to the local copy. Defaults to <code>current</code>. * * @param timestamp The file time stamping behaviour. */
public void setFileTimeStamp(CurrentModUpdated timestamp) { super.setInternalFileTimeStamp(timestamp); }
Action taken when local files are writable. Defaults to fail.

Due to ss.exe returning with an exit code of '100' for both errors and when a file has been skipped, failonerror is set to false when using the skip option.

Params:
  • files – The writable files behaviour
/** * Action taken when local files are writable. Defaults to <code>fail</code>. * <p> * Due to ss.exe returning with an exit code of '100' for both errors and when * a file has been skipped, <code>failonerror</code> is set to false when using * the <code>skip</code> option. * </p> * * @param files The writable files behaviour */
public void setWritableFiles(WritableFiles files) { super.setInternalWritableFiles(files); }
Retrieve a local copy during a checkout. Defaults to true.
Params:
  • get – The get local copy behaviour
/** * Retrieve a local copy during a checkout. Defaults to true. * * @param get The get local copy behaviour */
public void setGetLocalCopy(boolean get) { super.setInternalGetLocalCopy(get); } }