| // Copyright 2015 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // This file was auto-generated via go generate. |
| // DO NOT UPDATE MANUALLY |
| |
| /* |
| Command jiri is a multi-purpose tool for multi-repo development. |
| |
| Usage: |
| jiri [flags] <command> |
| |
| The jiri commands are: |
| cl Manage project changelists |
| contributors List project contributors |
| project Manage the jiri projects |
| rebuild Rebuild all jiri tools |
| snapshot Manage project snapshots |
| update Update all jiri tools and projects |
| help Display help for commands or topics |
| |
| The jiri additional help topics are: |
| layout Description of jiri file system layout |
| manifest Description of manifest files |
| |
| The jiri flags are: |
| -color=true |
| Use color to format output. |
| -n=false |
| Show what commands will run but do not execute them. |
| -v=false |
| Print verbose output. |
| |
| The global flags are: |
| -metadata=<just specify -metadata to activate> |
| Displays metadata for the program and exits. |
| -time=false |
| Dump timing information to stderr before exiting the program. |
| |
| Jiri cl - Manage project changelists |
| |
| Manage project changelists. |
| |
| Usage: |
| jiri cl [flags] <command> |
| |
| The jiri cl commands are: |
| cleanup Clean up changelists that have been merged |
| mail Mail a changelist for review |
| new Create a new local branch for a changelist |
| sync Bring a changelist up to date |
| |
| The jiri cl flags are: |
| -color=true |
| Use color to format output. |
| -n=false |
| Show what commands will run but do not execute them. |
| -v=false |
| Print verbose output. |
| |
| Jiri cl cleanup - Clean up changelists that have been merged |
| |
| Command "cleanup" checks that the given branches have been merged into the |
| corresponding remote branch. If a branch differs from the corresponding remote |
| branch, the command reports the difference and stops. Otherwise, it deletes the |
| given branches. |
| |
| Usage: |
| jiri cl cleanup [flags] <branches> |
| |
| <branches> is a list of branches to cleanup. |
| |
| The jiri cl cleanup flags are: |
| -f=false |
| Ignore unmerged changes. |
| -remote-branch=master |
| Name of the remote branch the CL pertains to. |
| |
| -color=true |
| Use color to format output. |
| -n=false |
| Show what commands will run but do not execute them. |
| -v=false |
| Print verbose output. |
| |
| Jiri cl mail - Mail a changelist for review |
| |
| Command "mail" squashes all commits of a local branch into a single "changelist" |
| and mails this changelist to Gerrit as a single commit. First time the command |
| is invoked, it generates a Change-Id for the changelist, which is appended to |
| the commit message. Consecutive invocations of the command use the same |
| Change-Id by default, informing Gerrit that the incomming commit is an update of |
| an existing changelist. |
| |
| Usage: |
| jiri cl mail [flags] |
| |
| The jiri cl mail flags are: |
| -autosubmit=false |
| Automatically submit the changelist when feasiable. |
| -cc= |
| Comma-seperated list of emails or LDAPs to cc. |
| -check-uncommitted=true |
| Check that no uncommitted changes exist. |
| -d=false |
| Send a draft changelist. |
| -edit=true |
| Open an editor to edit the CL description. |
| -host= |
| Gerrit host to use. Defaults to gerrit host specified in manifest. |
| -m= |
| CL description. |
| -presubmit=all |
| The type of presubmit tests to run. Valid values: none,all. |
| -r= |
| Comma-seperated list of emails or LDAPs to request review. |
| -remote-branch=master |
| Name of the remote branch the CL pertains to. |
| -set-topic=true |
| Set Gerrit CL topic. |
| -topic= |
| CL topic, defaults to <username>-<branchname>. |
| -verify=true |
| Run pre-push git hooks. |
| |
| -color=true |
| Use color to format output. |
| -n=false |
| Show what commands will run but do not execute them. |
| -v=false |
| Print verbose output. |
| |
| Jiri cl new - Create a new local branch for a changelist |
| |
| Command "new" creates a new local branch for a changelist. In particular, it |
| forks a new branch with the given name from the current branch and records the |
| relationship between the current branch and the new branch in the .jiri metadata |
| directory. The information recorded in the .jiri metadata directory tracks |
| dependencies between CLs and is used by the "jiri cl sync" and "jiri cl mail" |
| commands. |
| |
| Usage: |
| jiri cl new [flags] <name> |
| |
| <name> is the changelist name. |
| |
| The jiri cl new flags are: |
| -color=true |
| Use color to format output. |
| -n=false |
| Show what commands will run but do not execute them. |
| -v=false |
| Print verbose output. |
| |
| Jiri cl sync - Bring a changelist up to date |
| |
| Command "sync" brings the CL identified by the current branch up to date with |
| the branch tracking the remote branch this CL pertains to. To do that, the |
| command uses the information recorded in the .jiri metadata directory to |
| identify the sequence of dependent CLs leading to the current branch. The |
| command then iterates over this sequence bringing each of the CLs up to date |
| with its ancestor. The end result of this process is that all CLs in the |
| sequence are up to date with the branch that tracks the remote branch this CL |
| pertains to. |
| |
| NOTE: It is possible that the command cannot automatically merge changes in an |
| ancestor into its dependent. When that occurs, the command is aborted and prints |
| instructions that need to be followed before the command can be retried. |
| |
| Usage: |
| jiri cl sync [flags] |
| |
| The jiri cl sync flags are: |
| -remote-branch=master |
| Name of the remote branch the CL pertains to. |
| |
| -color=true |
| Use color to format output. |
| -n=false |
| Show what commands will run but do not execute them. |
| -v=false |
| Print verbose output. |
| |
| Jiri contributors - List project contributors |
| |
| Lists project contributors. Projects to consider can be specified as an |
| argument. If no projects are specified, all projects in the current manifest are |
| considered by default. |
| |
| Usage: |
| jiri contributors [flags] <projects> |
| |
| <projects> is a list of projects to consider. |
| |
| The jiri contributors flags are: |
| -aliases= |
| Path to the aliases file. |
| -n=false |
| Show number of contributions. |
| |
| -color=true |
| Use color to format output. |
| -v=false |
| Print verbose output. |
| |
| Jiri project - Manage the jiri projects |
| |
| Manage the jiri projects. |
| |
| Usage: |
| jiri project [flags] <command> |
| |
| The jiri project commands are: |
| clean Restore jiri projects to their pristine state |
| list List existing jiri projects and branches |
| shell-prompt Print a succinct status of projects suitable for shell prompts |
| poll Poll existing jiri projects |
| |
| The jiri project flags are: |
| -color=true |
| Use color to format output. |
| -n=false |
| Show what commands will run but do not execute them. |
| -v=false |
| Print verbose output. |
| |
| Jiri project clean - Restore jiri projects to their pristine state |
| |
| Restore jiri projects back to their master branches and get rid of all the local |
| branches and changes. |
| |
| Usage: |
| jiri project clean [flags] <project ...> |
| |
| <project ...> is a list of projects to clean up. |
| |
| The jiri project clean flags are: |
| -branches=false |
| Delete all non-master branches. |
| |
| -color=true |
| Use color to format output. |
| -n=false |
| Show what commands will run but do not execute them. |
| -v=false |
| Print verbose output. |
| |
| Jiri project list - List existing jiri projects and branches |
| |
| Inspect the local filesystem and list the existing projects and branches. |
| |
| Usage: |
| jiri project list [flags] |
| |
| The jiri project list flags are: |
| -branches=false |
| Show project branches. |
| -nopristine=false |
| If true, omit pristine projects, i.e. projects with a clean master branch and |
| no other branches. |
| |
| -color=true |
| Use color to format output. |
| -n=false |
| Show what commands will run but do not execute them. |
| -v=false |
| Print verbose output. |
| |
| Jiri project shell-prompt - Print a succinct status of projects suitable for shell prompts |
| |
| Reports current branches of jiri projects (repositories) as well as an |
| indication of each project's status: |
| * indicates that a repository contains uncommitted changes |
| % indicates that a repository contains untracked files |
| |
| Usage: |
| jiri project shell-prompt [flags] |
| |
| The jiri project shell-prompt flags are: |
| -check-dirty=true |
| If false, don't check for uncommitted changes or untracked files. Setting |
| this option to false is dangerous: dirty master branches will not appear in |
| the output. |
| -show-name=false |
| Show the name of the current repo. |
| |
| -color=true |
| Use color to format output. |
| -n=false |
| Show what commands will run but do not execute them. |
| -v=false |
| Print verbose output. |
| |
| Jiri project poll - Poll existing jiri projects |
| |
| Poll jiri projects that can affect the outcome of the given tests and report |
| whether any new changes in these projects exist. If no tests are specified, all |
| projects are polled by default. |
| |
| Usage: |
| jiri project poll [flags] <test ...> |
| |
| <test ...> is a list of tests that determine what projects to poll. |
| |
| The jiri project poll flags are: |
| -manifest= |
| Name of the project manifest. |
| |
| -color=true |
| Use color to format output. |
| -n=false |
| Show what commands will run but do not execute them. |
| -v=false |
| Print verbose output. |
| |
| Jiri rebuild - Rebuild all jiri tools |
| |
| Rebuilds all jiri tools and installs the resulting binaries into |
| $JIRI_ROOT/.jiri_root/bin. This is similar to "jiri update", but does not update |
| any projects before building the tools. The set of tools to rebuild is described |
| in the manifest. |
| |
| Run "jiri help manifest" for details on manifests. |
| |
| Usage: |
| jiri rebuild [flags] |
| |
| The jiri rebuild flags are: |
| -color=true |
| Use color to format output. |
| -n=false |
| Show what commands will run but do not execute them. |
| -v=false |
| Print verbose output. |
| |
| Jiri snapshot - Manage project snapshots |
| |
| The "jiri snapshot" command can be used to manage project snapshots. In |
| particular, it can be used to create new snapshots and to list existing |
| snapshots. |
| |
| The command-line flag "-remote" determines whether the command pertains to |
| "local" snapshots that are only stored locally or "remote" snapshots the are |
| revisioned in the manifest repository. |
| |
| Usage: |
| jiri snapshot [flags] <command> |
| |
| The jiri snapshot commands are: |
| create Create a new project snapshot |
| list List existing project snapshots |
| |
| The jiri snapshot flags are: |
| -remote=false |
| Manage remote snapshots. |
| |
| -color=true |
| Use color to format output. |
| -n=false |
| Show what commands will run but do not execute them. |
| -v=false |
| Print verbose output. |
| |
| Jiri snapshot create - Create a new project snapshot |
| |
| The "jiri snapshot create <label>" command captures the current project state in |
| a manifest and, depending on the value of the -remote flag, the command either |
| stores the manifest in the local $JIRI_ROOT/.snapshots directory, or in the |
| manifest repository, pushing the change to the remote repository and thus making |
| it available globally. |
| |
| Internally, snapshots are organized as follows: |
| |
| <snapshot-dir>/ |
| labels/ |
| <label1>/ |
| <label1-snapshot1> |
| <label1-snapshot2> |
| ... |
| <label2>/ |
| <label2-snapshot1> |
| <label2-snapshot2> |
| ... |
| <label3>/ |
| ... |
| <label1> # a symlink to the latest <label1-snapshot*> |
| <label2> # a symlink to the latest <label2-snapshot*> |
| ... |
| |
| NOTE: Unlike the jiri tool commands, the above internal organization is not an |
| API. It is an implementation and can change without notice. |
| |
| Usage: |
| jiri snapshot create [flags] <label> |
| |
| <label> is the snapshot label. |
| |
| The jiri snapshot create flags are: |
| -time-format=2006-01-02T15:04:05Z07:00 |
| Time format for snapshot file name. |
| |
| -color=true |
| Use color to format output. |
| -n=false |
| Show what commands will run but do not execute them. |
| -remote=false |
| Manage remote snapshots. |
| -v=false |
| Print verbose output. |
| |
| Jiri snapshot list - List existing project snapshots |
| |
| The "snapshot list" command lists existing snapshots of the labels specified as |
| command-line arguments. If no arguments are provided, the command lists |
| snapshots for all known labels. |
| |
| Usage: |
| jiri snapshot list [flags] <label ...> |
| |
| <label ...> is a list of snapshot labels. |
| |
| The jiri snapshot list flags are: |
| -color=true |
| Use color to format output. |
| -n=false |
| Show what commands will run but do not execute them. |
| -remote=false |
| Manage remote snapshots. |
| -v=false |
| Print verbose output. |
| |
| Jiri update - Update all jiri tools and projects |
| |
| Updates all projects, builds the latest version of all tools, and installs the |
| resulting binaries into $JIRI_ROOT/.jiri_root/bin. The sequence in which the |
| individual updates happen guarantees that we end up with a consistent set of |
| tools and source code. The set of projects and tools to update is described in |
| the manifest. |
| |
| Run "jiri help manifest" for details on manifests. |
| |
| Usage: |
| jiri update [flags] |
| |
| The jiri update flags are: |
| -attempts=1 |
| Number of attempts before failing. |
| -gc=false |
| Garbage collect obsolete repositories. |
| -manifest= |
| Name of the project manifest. |
| |
| -color=true |
| Use color to format output. |
| -n=false |
| Show what commands will run but do not execute them. |
| -v=false |
| Print verbose output. |
| |
| Jiri help - Display help for commands or topics |
| |
| Help with no args displays the usage of the parent command. |
| |
| Help with args displays the usage of the specified sub-command or help topic. |
| |
| "help ..." recursively displays help for all commands and topics. |
| |
| Usage: |
| jiri help [flags] [command/topic ...] |
| |
| [command/topic ...] optionally identifies a specific sub-command or help topic. |
| |
| The jiri help flags are: |
| -style=compact |
| The formatting style for help output: |
| compact - Good for compact cmdline output. |
| full - Good for cmdline output, shows all global flags. |
| godoc - Good for godoc processing. |
| shortonly - Only output short description. |
| Override the default by setting the CMDLINE_STYLE environment variable. |
| -width=<terminal width> |
| Format output to this target width in runes, or unlimited if width < 0. |
| Defaults to the terminal width if available. Override the default by setting |
| the CMDLINE_WIDTH environment variable. |
| |
| Jiri layout - Description of jiri file system layout |
| |
| All data managed by the jiri tool is located in the file system under a root |
| directory, colloquially called the jiri root directory. The file system layout |
| looks like this: |
| |
| [root] # root directory (name picked by user) |
| [root]/.jiri_root # root metadata directory |
| [root]/.jiri_root/bin # contains tool binaries (jiri, etc.) |
| [root]/.jiri_root/update_history # contains history of update snapshots |
| [root]/.manifest # contains jiri manifests |
| [root]/[project1] # project directory (name picked by user) |
| [root]/[project1]/.jiri # project metadata directory |
| [root]/[project1]/.jiri/metadata.v2 # project metadata file |
| [root]/[project1]/.jiri/<<cls>> # project per-cl metadata directories |
| [root]/[project1]/<<files>> # project files |
| [root]/[project2]... |
| |
| The [root] and [projectN] directory names are picked by the user. The <<cls>> |
| are named via jiri cl new, and the <<files>> are named as the user adds files |
| and directories to their project. All other names above have special meaning to |
| the jiri tool, and cannot be changed; you must ensure your path names don't |
| collide with these special names. |
| |
| There are two ways to run the jiri tool: |
| |
| 1) Shim script (recommended approach). This is a shell script that looks for |
| the [root] directory. If the JIRI_ROOT environment variable is set, that is |
| assumed to be the [root] directory. Otherwise the script looks for the |
| .jiri_root directory, starting in the current working directory and walking up |
| the directory chain. The search is terminated successfully when the .jiri_root |
| directory is found; it fails after it reaches the root of the file system. Thus |
| the shim must be invoked from the [root] directory or one of its subdirectories. |
| |
| Once the [root] is found, the JIRI_ROOT environment variable is set to its |
| location, and [root]/.jiri_root/bin/jiri is invoked. That file contains the |
| actual jiri binary. |
| |
| The point of the shim script is to make it easy to use the jiri tool with |
| multiple [root] directories on your file system. Keep in mind that when "jiri |
| update" is run, the jiri tool itself is automatically updated along with all |
| projects. By using the shim script, you only need to remember to invoke the |
| jiri tool from within the appropriate [root] directory, and the projects and |
| tools under that [root] directory will be updated. |
| |
| The shim script is located at [root]/release/go/src/v.io/jiri/scripts/jiri |
| |
| 2) Direct binary. This is the jiri binary, containing all of the actual jiri |
| tool logic. The binary requires the JIRI_ROOT environment variable to point to |
| the [root] directory. |
| |
| Note that if you have multiple [root] directories on your file system, you must |
| remember to run the jiri binary corresponding to the setting of your JIRI_ROOT |
| environment variable. Things may fail if you mix things up, since the jiri |
| binary is updated with each call to "jiri update", and you may encounter version |
| mismatches between the jiri binary and the various metadata files or other |
| logic. This is the reason the shim script is recommended over running the |
| binary directly. |
| |
| The binary is located at [root]/.jiri_root/bin/jiri |
| |
| Jiri manifest - Description of manifest files |
| |
| Jiri manifests are revisioned and stored in a "manifest" repository, that is |
| available locally in $JIRI_ROOT/.manifest. The manifest uses the following XML |
| schema: |
| |
| <manifest> |
| <imports> |
| <import name="default"/> |
| ... |
| </imports> |
| <projects> |
| <project name="release.go.jiri" |
| path="release/go/src/v.io/jiri" |
| protocol="git" |
| name="https://vanadium.googlesource.com/release.go.jiri" |
| revision="HEAD"/> |
| ... |
| </projects> |
| <tools> |
| <tool name="jiri" package="v.io/jiri"/> |
| ... |
| </tools> |
| </manifest> |
| |
| The <import> element can be used to share settings across multiple manifests. |
| Import names are interpreted relative to the $JIRI_ROOT/.manifest/v2 directory. |
| Import cycles are not allowed and if a project or a tool is specified multiple |
| times, the last specification takes effect. In particular, the elements <project |
| name="foo" exclude="true"/> and <tool name="bar" exclude="true"/> can be used to |
| exclude previously included projects and tools. |
| |
| The tool identifies which manifest to use using the following algorithm. If the |
| $JIRI_ROOT/.local_manifest file exists, then it is used. Otherwise, the |
| $JIRI_ROOT/.manifest/v2/<manifest>.xml file is used, where <manifest> is the |
| value of the -manifest command-line flag, which defaults to "default". |
| */ |
| package main |