Source: tfs/checkout.js

var format = require('../utils/format'),
    tf     = require('../utils/tf');

/**
 * Makes the local file writable, and changes its Pending Change status
 * to \"edit\" in the workspace. Edit is an alias for the Checkout command.
 *
 * <h5>Note</h5>
 * Any edits that you make to items that have been checked out
 * are not reflected in the server for Team Foundation version control
 * until you perform a check-in operation.
 *
 * <h5>Required Permissions</h5>
 * To use the checkout command, your Check out permission must be set to Allow,
 * and you must be either the workspace owner or your global Administer
 * workspaces permission must be set to Allow.
 * Also, if you use the /lock option with a value other than none,
 * your Lock permission must be set to Allow.
 *
 * @summary  Makes the local file writable, and changes its status to "edit".
 * @see      https://msdn.microsoft.com/en-us/library/1yft8zkw.aspx
 * @module   TFS Checkout
 * @version  1.4.0
 *
 * @param  {Array}    itemspec File(s) and folder(s) to get latest version of.
 *                             If empty, equals CWD.
 * @param  {Object}   options  Checkout command options
 * @param  {Function} callback Function to call back once executed
 */
var checkout = function(itemspec, options, callback) {
  var params = itemspec.length ? itemspec : [process.cwd()];
  params = params.concat(format.options(options));

  tf('checkout', params, callback, !!options.verbose);
};

module.exports = checkout;