Taskcluster VCS Tools

Using VCS optimally in a CI environment is difficult tc-vcs aims to do this job for you via a set of taskcluster integrated commands.

Currently the following features are available:

  • Equal first class support for both hg and git.
  • Creating remote caches of clones caches.
  • Utilization of remote and local caches for clone operations.
  • "Checkout revision" commands (useful for mozilla "try" like workflows)

Usage:

This package has a somewhat stable internal interface (see /vcs) but it is primarily designed to be used as a CLI.

npm install taskcluster-vcs -g
tc-vcs --help

The most common and useful command is checkout

# Checkout revision of try (in usual mozilla "try" workflow fashion)
tc-vcs checkout https://hg.mozilla.org/mozilla-central https://hg.mozilla.org/try $REV $REV try_dir

Developing:

This project is developed in node.js and uses 6to5 to provide a complete ES6 based environment. In addition the experimental async operator is used heavily in conjunction with promises.

Directory Structure:

  • bin/tc-vcs : Primary entrypoint.
  • cli/ : Individual CLI sub commands.
  • test/ : Tests for tc-vcs
  • vcs/ : Internal version control abstractions for hg/git

Tests

Tests are written in mocha and require taskcluster credentials see the taskcluster client for details on how to configure the environment variables needed.

# Run all the tests
npm install

# Run one test
./node_modules/.bin/mocha <test>

LICENSE

See ./LICENSE