Marlin Commands

The main purpose of the Marlin package is to automate the process of incorporating Subversion revisions from the NEMO master repository into our Mercurial repository. See Workflow to Pull Changes from NEMO svn Repo for details of how the marlin command is used.

Use marlin --help to see the available options and sub-commands:

(marlin)$ marlin --help
usage: marlin [--version] [-v] [--log-file LOG_FILE] [-q] [-h] [--debug]

Salish Sea NEMO svn-hg Maintenance Tool

optional arguments:
  --version            show program's version number and exit
  -v, --verbose        Increase verbosity of output. Can be repeated.
  --log-file LOG_FILE  Specify a file to log output. Disabled by default.
  -q, --quiet          suppress output except warnings and errors
  -h, --help           show this help message and exit
  --debug              show tracebacks on errors

Commands:
  complete       print bash completion command
  help           print detailed help for another command
  incoming       Display SVN log of revisions that have not yet been brought in
  update         Apply SVN updates from upstream repo & commit them to Mercurial

incoming

The incoming sub-command displays a list of SVN revisions from the upstream repo that have not yet been applied to the local working copy. The list defaults to just the next revision that would be applied by an update operation, but the -l or --limit option allows the list to be extended. In particular, -l 0 will show all revisions between the working copy revision and the upstream repo HEAD revision.

(marlin)$ marlin help incoming
usage: marlin incoming [-h] [-l LIMIT]

Display SVN log of revisions that have not yet been brought in from the
upstream repo.

optional arguments:
  -h, --help            show this help message and exit
  -l LIMIT, --limit LIMIT
                        maximum number of log messages to show; defaults to 1

update

The update sub-command applies SVN updates from the upstream repo one revision at a time. After each svn update operation is completed the changes are committed to Mercurial using a commit message that identifies the SVN revision of the changes, and which includes the SVN commit message.

update defaults to applying just the next revision, but the --to-rev option allows revisions up to and including a specific revision number to be applied.

$ marlin help update
usage: marlin update [-h] [--to-rev TO_REV]

Apply SVN updates from upstream repo & commit them to Mercurial one at a time.

optional arguments:
  -h, --help       show this help message and exit
  --to-rev TO_REV  SVN revision number to update repo to