github.com/vanadium-archive/go.jiri@v0.0.0-20160715023856-abfb8b131290/cmd/jiri/doc.go (about)

     1  // Copyright 2015 The Vanadium Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // This file was auto-generated via go generate.
     6  // DO NOT UPDATE MANUALLY
     7  
     8  /*
     9  Command jiri is a multi-purpose tool for multi-repo development.
    10  
    11  Usage:
    12     jiri [flags] <command>
    13  
    14  The jiri commands are:
    15     cl          Manage changelists for multiple projects
    16     import      Adds imports to .jiri_manifest file
    17     profile     Display information about installed profiles
    18     project     Manage the jiri projects
    19     rebuild     Rebuild all jiri tools
    20     snapshot    Manage project snapshots
    21     update      Update all jiri tools and projects
    22     which       Show path to the jiri tool
    23     runp        Run a command in parallel across jiri projects
    24     help        Display help for commands or topics
    25  
    26  The jiri additional help topics are:
    27     filesystem  Description of jiri file system layout
    28     manifest    Description of manifest files
    29  
    30  The jiri flags are:
    31   -color=true
    32     Use color to format output.
    33   -v=false
    34     Print verbose output.
    35  
    36  The global flags are:
    37   -metadata=<just specify -metadata to activate>
    38     Displays metadata for the program and exits.
    39   -time=false
    40     Dump timing information to stderr before exiting the program.
    41  
    42  Jiri cl - Manage changelists for multiple projects
    43  
    44  Manage changelists for multiple projects.
    45  
    46  Usage:
    47     jiri cl [flags] <command>
    48  
    49  The jiri cl commands are:
    50     cleanup     Clean up changelists that have been merged
    51     mail        Mail a changelist for review
    52     new         Create a new local branch for a changelist
    53     sync        Bring a changelist up to date
    54  
    55  The jiri cl flags are:
    56   -color=true
    57     Use color to format output.
    58   -v=false
    59     Print verbose output.
    60  
    61  Jiri cl cleanup - Clean up changelists that have been merged
    62  
    63  Command "cleanup" checks that the given branches have been merged into the
    64  corresponding remote branch. If a branch differs from the corresponding remote
    65  branch, the command reports the difference and stops. Otherwise, it deletes the
    66  given branches.
    67  
    68  Usage:
    69     jiri cl cleanup [flags] <branches>
    70  
    71  <branches> is a list of branches to cleanup.
    72  
    73  The jiri cl cleanup flags are:
    74   -f=false
    75     Ignore unmerged changes.
    76   -remote-branch=master
    77     Name of the remote branch the CL pertains to, without the leading "origin/".
    78  
    79   -color=true
    80     Use color to format output.
    81   -v=false
    82     Print verbose output.
    83  
    84  Jiri cl mail - Mail a changelist for review
    85  
    86  Command "mail" squashes all commits of a local branch into a single "changelist"
    87  and mails this changelist to Gerrit as a single commit. First time the command
    88  is invoked, it generates a Change-Id for the changelist, which is appended to
    89  the commit message. Consecutive invocations of the command use the same
    90  Change-Id by default, informing Gerrit that the incomming commit is an update of
    91  an existing changelist.
    92  
    93  Usage:
    94     jiri cl mail [flags]
    95  
    96  The jiri cl mail flags are:
    97   -autosubmit=false
    98     Automatically submit the changelist when feasible.
    99   -cc=
   100     Comma-seperated list of emails or LDAPs to cc.
   101   -check-uncommitted=true
   102     Check that no uncommitted changes exist.
   103   -clean-multipart-metadata=false
   104     Cleanup the metadata associated with multipart CLs pertaining the MultiPart:
   105     x/y message without mailing any CLs.
   106   -commit-message-body-file=
   107     file containing the body of the CL description, that is, text without a
   108     ChangeID, MultiPart etc.
   109   -current-project-only=false
   110     Run mail in the current project only.
   111   -d=false
   112     Send a draft changelist.
   113   -edit=true
   114     Open an editor to edit the CL description.
   115   -host=
   116     Gerrit host to use.  Defaults to gerrit host specified in manifest.
   117   -m=
   118     CL description.
   119   -presubmit=all
   120     The type of presubmit tests to run. Valid values: none,all.
   121   -r=
   122     Comma-seperated list of emails or LDAPs to request review.
   123   -remote-branch=master
   124     Name of the remote branch the CL pertains to, without the leading "origin/".
   125   -set-topic=true
   126     Set Gerrit CL topic.
   127   -topic=
   128     CL topic, defaults to <username>-<branchname>.
   129   -verify=true
   130     Run pre-push git hooks.
   131  
   132   -color=true
   133     Use color to format output.
   134   -v=false
   135     Print verbose output.
   136  
   137  Jiri cl new - Create a new local branch for a changelist
   138  
   139  Command "new" creates a new local branch for a changelist. In particular, it
   140  forks a new branch with the given name from the current branch and records the
   141  relationship between the current branch and the new branch in the .jiri metadata
   142  directory. The information recorded in the .jiri metadata directory tracks
   143  dependencies between CLs and is used by the "jiri cl sync" and "jiri cl mail"
   144  commands.
   145  
   146  Usage:
   147     jiri cl new [flags] <name>
   148  
   149  <name> is the changelist name.
   150  
   151  The jiri cl new flags are:
   152   -color=true
   153     Use color to format output.
   154   -v=false
   155     Print verbose output.
   156  
   157  Jiri cl sync - Bring a changelist up to date
   158  
   159  Command "sync" brings the CL identified by the current branch up to date with
   160  the branch tracking the remote branch this CL pertains to. To do that, the
   161  command uses the information recorded in the .jiri metadata directory to
   162  identify the sequence of dependent CLs leading to the current branch. The
   163  command then iterates over this sequence bringing each of the CLs up to date
   164  with its ancestor. The end result of this process is that all CLs in the
   165  sequence are up to date with the branch that tracks the remote branch this CL
   166  pertains to.
   167  
   168  NOTE: It is possible that the command cannot automatically merge changes in an
   169  ancestor into its dependent. When that occurs, the command is aborted and prints
   170  instructions that need to be followed before the command can be retried.
   171  
   172  Usage:
   173     jiri cl sync [flags]
   174  
   175  The jiri cl sync flags are:
   176   -remote-branch=master
   177     Name of the remote branch the CL pertains to, without the leading "origin/".
   178  
   179   -color=true
   180     Use color to format output.
   181   -v=false
   182     Print verbose output.
   183  
   184  Jiri import
   185  
   186  Command "import" adds imports to the $JIRI_ROOT/.jiri_manifest file, which
   187  specifies manifest information for the jiri tool.  The file is created if it
   188  doesn't already exist, otherwise additional imports are added to the existing
   189  file.
   190  
   191  An <import> element is added to the manifest representing a remote manifest
   192  import.  The manifest file path is relative to the root directory of the remote
   193  import repository.
   194  
   195  Example:
   196    $ jiri import myfile https://foo.com/bar.git
   197  
   198  Run "jiri help manifest" for details on manifests.
   199  
   200  Usage:
   201     jiri import [flags] <manifest> <remote>
   202  
   203  <manifest> specifies the manifest file to use.
   204  
   205  <remote> specifies the remote manifest repository.
   206  
   207  The jiri import flags are:
   208   -name=manifest
   209     The name of the remote manifest project.
   210   -out=
   211     The output file.  Uses $JIRI_ROOT/.jiri_manifest if unspecified.  Uses stdout
   212     if set to "-".
   213   -overwrite=false
   214     Write a new .jiri_manifest file with the given specification.  If it already
   215     exists, the existing content will be ignored and the file will be
   216     overwritten.
   217   -protocol=git
   218     The version control protocol used by the remote manifest project.
   219   -remote-branch=master
   220     The branch of the remote manifest project to track, without the leading
   221     "origin/".
   222   -root=
   223     Root to store the manifest project locally.
   224  
   225   -color=true
   226     Use color to format output.
   227   -v=false
   228     Print verbose output.
   229  
   230  Jiri profile - Display information about installed profiles
   231  
   232  Display information about installed profiles and their configuration.
   233  
   234  Usage:
   235     jiri profile [flags] <command>
   236  
   237  The jiri profile commands are:
   238     list        List available or installed profiles
   239     env         Display profile environment variables
   240     install     Install the given profiles
   241     os-packages List the commands to install the OS packages required by the
   242                 given profiles
   243     uninstall   Uninstall the given profiles
   244     update      Install the latest default version of the given profiles
   245     cleanup     Cleanup the locally installed profiles
   246     available   List the available profiles
   247  
   248  The jiri profile flags are:
   249   -color=true
   250     Use color to format output.
   251   -v=false
   252     Print verbose output.
   253  
   254  Jiri profile list - List available or installed profiles
   255  
   256  List available or installed profiles.
   257  
   258  Usage:
   259     jiri profile list [flags] [<profiles>]
   260  
   261  <profiles> is a list of profiles to list, defaulting to all profiles if none are
   262  specifically requested. List can also be used to test for the presence of a
   263  specific target for the requested profiles. If the target is not installed, it
   264  will exit with an error.
   265  
   266  The jiri profile list flags are:
   267   -env=
   268     specify an environment variable in the form: <var>=[<val>],...
   269   -info=
   270     The following fields for use with -info are available:
   271     	SchemaVersion - the version of the profiles implementation.
   272     	DBPath - the path for the profiles database.
   273     	Target.InstallationDir - the installation directory of the requested profile.
   274     	Target.CommandLineEnv - the environment variables specified via the command line when installing this profile target.
   275     	Target.Env - the environment variables computed by the profile installation process for this target.
   276     	Target.Command - a command that can be used to create this profile.
   277     	Note: if no --target is specified then the requested field will be displayed for all targets.
   278  
   279     	Profile.Root - the root directory of the requested profile.
   280     	Profile.Name - the qualified name of the profile.
   281     	Profile.Installer - the name of the profile installer.
   282     	Profile.DBPath - the path to the database file for this profile.
   283     	Note: if no profiles are specified then the requested field will be displayed for all profiles.
   284   -merge-policies=+CCFLAGS,+CGO_CFLAGS,+CGO_CXXFLAGS,+CGO_LDFLAGS,+CXXFLAGS,GOARCH,GOOS,GOPATH:,^GOROOT*,+LDFLAGS,:PATH,VDLPATH:
   285     specify policies for merging environment variables
   286   -profiles=
   287     a comma separated list of profiles to use
   288   -profiles-db=$JIRI_ROOT/.jiri_root/profile_db
   289     the path, relative to JIRI_ROOT, that contains the profiles database.
   290   -skip-profiles=false
   291     if set, no profiles will be used
   292   -target=<runtime.GOARCH>-<runtime.GOOS>
   293     specifies a profile target in the following form: <arch>-<os>[@<version>]
   294   -v=false
   295     print more detailed information
   296  
   297   -color=true
   298     Use color to format output.
   299  
   300  Jiri profile env - Display profile environment variables
   301  
   302  List profile specific and target specific environment variables. If the
   303  requested environment variable name ends in = then only the value will be
   304  printed, otherwise both name and value are printed, i.e. CFLAGS="foo" vs just
   305  "foo".
   306  
   307  If no environment variable names are requested then all will be printed in
   308  <name>=<val> format.
   309  
   310  Usage:
   311     jiri profile env [flags] [<environment variable names>]
   312  
   313  [<environment variable names>] is an optional list of environment variables to
   314  display
   315  
   316  The jiri profile env flags are:
   317   -env=
   318     specify an environment variable in the form: <var>=[<val>],...
   319   -merge-policies=+CCFLAGS,+CGO_CFLAGS,+CGO_CXXFLAGS,+CGO_LDFLAGS,+CXXFLAGS,GOARCH,GOOS,GOPATH:,^GOROOT*,+LDFLAGS,:PATH,VDLPATH:
   320     specify policies for merging environment variables
   321   -profiles=
   322     a comma separated list of profiles to use
   323   -profiles-db=$JIRI_ROOT/.jiri_root/profile_db
   324     the path, relative to JIRI_ROOT, that contains the profiles database.
   325   -skip-profiles=false
   326     if set, no profiles will be used
   327   -target=<runtime.GOARCH>-<runtime.GOOS>
   328     specifies a profile target in the following form: <arch>-<os>[@<version>]
   329   -v=false
   330     print more detailed information
   331  
   332   -color=true
   333     Use color to format output.
   334  
   335  Jiri profile install - Install the given profiles
   336  
   337  Install the given profiles.
   338  
   339  Usage:
   340     jiri profile install [flags] <profiles>
   341  
   342  <profiles> is a list of profiles to install.
   343  
   344  The jiri profile install flags are:
   345   -env=
   346     specify an environment variable in the form: <var>=[<val>],...
   347   -force=false
   348     force install the profile even if it is already installed
   349   -profiles-db=$JIRI_ROOT/.jiri_root/profile_db
   350     the path, relative to JIRI_ROOT, that contains the profiles database.
   351   -profiles-dir=.jiri_root/profiles
   352     the directory, relative to JIRI_ROOT, that profiles are installed in
   353   -target=<runtime.GOARCH>-<runtime.GOOS>
   354     specifies a profile target in the following form: <arch>-<os>[@<version>]
   355  
   356   -color=true
   357     Use color to format output.
   358   -v=false
   359     Print verbose output.
   360  
   361  Jiri profile os-packages - List the commands to install the OS packages required by the given profiles
   362  
   363  List or optionally run the commands to install the OS packages required by the
   364  given profiles.
   365  
   366  Usage:
   367     jiri profile os-packages [flags] <profiles>
   368  
   369  <profiles> is a list of profiles to list OS packages for.
   370  
   371  The jiri profile os-packages flags are:
   372   -all=false
   373     print commands to install all required OS packages, not just those that are
   374     missing
   375   -env=
   376     specify an environment variable in the form: <var>=[<val>],...
   377   -install=false
   378     install the requested packages. This may need to be run as root.
   379   -profiles-db=$JIRI_ROOT/.jiri_root/profile_db
   380     the path, relative to JIRI_ROOT, that contains the profiles database.
   381   -profiles-dir=.jiri_root/profiles
   382     the directory, relative to JIRI_ROOT, that profiles are installed in
   383   -target=<runtime.GOARCH>-<runtime.GOOS>
   384     specifies a profile target in the following form: <arch>-<os>[@<version>]
   385  
   386   -color=true
   387     Use color to format output.
   388   -v=false
   389     Print verbose output.
   390  
   391  Jiri profile uninstall - Uninstall the given profiles
   392  
   393  Uninstall the given profiles.
   394  
   395  Usage:
   396     jiri profile uninstall [flags] <profiles>
   397  
   398  <profiles> is a list of profiles to uninstall.
   399  
   400  The jiri profile uninstall flags are:
   401   -all-targets=false
   402     apply to all targets for the specified profile(s)
   403   -profiles-db=$JIRI_ROOT/.jiri_root/profile_db
   404     the path, relative to JIRI_ROOT, that contains the profiles database.
   405   -profiles-dir=.jiri_root/profiles
   406     the directory, relative to JIRI_ROOT, that profiles are installed in
   407   -target=<runtime.GOARCH>-<runtime.GOOS>
   408     specifies a profile target in the following form: <arch>-<os>[@<version>]
   409   -v=false
   410     print more detailed information
   411  
   412   -color=true
   413     Use color to format output.
   414  
   415  Jiri profile update - Install the latest default version of the given profiles
   416  
   417  Install the latest default version of the given profiles.
   418  
   419  Usage:
   420     jiri profile update [flags] <profiles>
   421  
   422  <profiles> is a list of profiles to update, if omitted all profiles are updated.
   423  
   424  The jiri profile update flags are:
   425   -profiles-db=$JIRI_ROOT/.jiri_root/profile_db
   426     the path, relative to JIRI_ROOT, that contains the profiles database.
   427   -profiles-dir=.jiri_root/profiles
   428     the directory, relative to JIRI_ROOT, that profiles are installed in
   429   -v=false
   430     print more detailed information
   431  
   432   -color=true
   433     Use color to format output.
   434  
   435  Jiri profile cleanup - Cleanup the locally installed profiles
   436  
   437  Cleanup the locally installed profiles. This is generally required when
   438  recovering from earlier bugs or when preparing for a subsequent change to the
   439  profiles implementation.
   440  
   441  Usage:
   442     jiri profile cleanup [flags] <profiles>
   443  
   444  <profiles> is a list of profiles to cleanup, if omitted all profiles are
   445  cleaned.
   446  
   447  The jiri profile cleanup flags are:
   448   -gc=false
   449     uninstall profile targets that are older than the current default
   450   -profiles-db=$JIRI_ROOT/.jiri_root/profile_db
   451     the path, relative to JIRI_ROOT, that contains the profiles database.
   452   -profiles-dir=.jiri_root/profiles
   453     the directory, relative to JIRI_ROOT, that profiles are installed in
   454   -rewrite-profiles-db=false
   455     rewrite the profiles database to use the latest schema version
   456   -rm-all=false
   457     remove profiles database and all profile generated output files.
   458   -v=false
   459     print more detailed information
   460  
   461   -color=true
   462     Use color to format output.
   463  
   464  Jiri profile available - List the available profiles
   465  
   466  List the available profiles.
   467  
   468  Usage:
   469     jiri profile available [flags]
   470  
   471  The jiri profile available flags are:
   472   -describe=false
   473     print the profile description
   474   -v=false
   475     print more detailed information
   476  
   477   -color=true
   478     Use color to format output.
   479  
   480  Jiri project - Manage the jiri projects
   481  
   482  Manage the jiri projects.
   483  
   484  Usage:
   485     jiri project [flags] <command>
   486  
   487  The jiri project commands are:
   488     clean        Restore jiri projects to their pristine state
   489     info         Provided structured input for existing jiri projects and
   490                  branches
   491     list         List existing jiri projects and branches
   492     shell-prompt Print a succinct status of projects suitable for shell prompts
   493  
   494  The jiri project flags are:
   495   -color=true
   496     Use color to format output.
   497   -v=false
   498     Print verbose output.
   499  
   500  Jiri project clean - Restore jiri projects to their pristine state
   501  
   502  Restore jiri projects back to their master branches and get rid of all the local
   503  branches and changes.
   504  
   505  Usage:
   506     jiri project clean [flags] <project ...>
   507  
   508  <project ...> is a list of projects to clean up.
   509  
   510  The jiri project clean flags are:
   511   -branches=false
   512     Delete all non-master branches.
   513  
   514   -color=true
   515     Use color to format output.
   516   -v=false
   517     Print verbose output.
   518  
   519  Jiri project info - Provided structured input for existing jiri projects and branches
   520  
   521  Inspect the local filesystem and provide structured info on the existing
   522  projects and branches. Projects are specified using regular expressions that are
   523  matched against project keys. If no command line arguments are provided the
   524  project that the contains the current directory is used, or if run from outside
   525  of a given project, all projects will be used. The information to be displayed
   526  is specified using a go template, supplied via the -f flag, that is executed
   527  against the v.io/jiri/project.ProjectState structure. This structure currently
   528  has the following fields:
   529  project.ProjectState{Branches:[]project.BranchState(nil), CurrentBranch:"",
   530  HasUncommitted:false, HasUntracked:false, Project:project.Project{Name:"",
   531  Path:"", Protocol:"", Remote:"", RemoteBranch:"", Revision:"", GerritHost:"",
   532  GitHooks:"", RunHook:"", XMLName:struct {}{}}}
   533  
   534  Usage:
   535     jiri project info [flags] <project-keys>...
   536  
   537  <project-keys>... a list of project keys, as regexps, to apply the specified
   538  format to
   539  
   540  The jiri project info flags are:
   541   -f={{.Project.Name}}
   542     The go template for the fields to display.
   543  
   544   -color=true
   545     Use color to format output.
   546   -v=false
   547     Print verbose output.
   548  
   549  Jiri project list - List existing jiri projects and branches
   550  
   551  Inspect the local filesystem and list the existing projects and branches.
   552  
   553  Usage:
   554     jiri project list [flags]
   555  
   556  The jiri project list flags are:
   557   -branches=false
   558     Show project branches.
   559   -nopristine=false
   560     If true, omit pristine projects, i.e. projects with a clean master branch and
   561     no other branches.
   562  
   563   -color=true
   564     Use color to format output.
   565   -v=false
   566     Print verbose output.
   567  
   568  Jiri project shell-prompt - Print a succinct status of projects suitable for shell prompts
   569  
   570  Reports current branches of jiri projects (repositories) as well as an
   571  indication of each project's status:
   572    *  indicates that a repository contains uncommitted changes
   573    %  indicates that a repository contains untracked files
   574  
   575  Usage:
   576     jiri project shell-prompt [flags]
   577  
   578  The jiri project shell-prompt flags are:
   579   -check-dirty=true
   580     If false, don't check for uncommitted changes or untracked files. Setting
   581     this option to false is dangerous: dirty master branches will not appear in
   582     the output.
   583   -show-name=false
   584     Show the name of the current repo.
   585  
   586   -color=true
   587     Use color to format output.
   588   -v=false
   589     Print verbose output.
   590  
   591  Jiri rebuild - Rebuild all jiri tools
   592  
   593  Rebuilds all jiri tools and installs the resulting binaries into
   594  $JIRI_ROOT/.jiri_root/bin. This is similar to "jiri update", but does not update
   595  any projects before building the tools. The set of tools to rebuild is described
   596  in the manifest.
   597  
   598  Run "jiri help manifest" for details on manifests.
   599  
   600  Usage:
   601     jiri rebuild [flags]
   602  
   603  The jiri rebuild flags are:
   604   -color=true
   605     Use color to format output.
   606   -v=false
   607     Print verbose output.
   608  
   609  Jiri snapshot - Manage project snapshots
   610  
   611  The "jiri snapshot" command can be used to manage project snapshots. In
   612  particular, it can be used to create new snapshots and to list existing
   613  snapshots.
   614  
   615  Usage:
   616     jiri snapshot [flags] <command>
   617  
   618  The jiri snapshot commands are:
   619     checkout    Checkout a project snapshot
   620     create      Create a new project snapshot
   621     list        List existing project snapshots
   622  
   623  The jiri snapshot flags are:
   624   -dir=
   625     Directory where snapshot are stored.  Defaults to $JIRI_ROOT/.snapshot.
   626  
   627   -color=true
   628     Use color to format output.
   629   -v=false
   630     Print verbose output.
   631  
   632  Jiri snapshot checkout - Checkout a project snapshot
   633  
   634  The "jiri snapshot checkout <snapshot>" command restores local project state to
   635  the state in the given snapshot manifest.
   636  
   637  Usage:
   638     jiri snapshot checkout [flags] <snapshot>
   639  
   640  <snapshot> is the snapshot manifest file.
   641  
   642  The jiri snapshot checkout flags are:
   643   -gc=false
   644     Garbage collect obsolete repositories.
   645  
   646   -color=true
   647     Use color to format output.
   648   -dir=
   649     Directory where snapshot are stored.  Defaults to $JIRI_ROOT/.snapshot.
   650   -v=false
   651     Print verbose output.
   652  
   653  Jiri snapshot create - Create a new project snapshot
   654  
   655  The "jiri snapshot create <label>" command captures the current project state in
   656  a manifest.  If the -push-remote flag is provided, the snapshot is committed and
   657  pushed upstream.
   658  
   659  Internally, snapshots are organized as follows:
   660  
   661   <snapshot-dir>/
   662     labels/
   663       <label1>/
   664         <label1-snapshot1>
   665         <label1-snapshot2>
   666         ...
   667       <label2>/
   668         <label2-snapshot1>
   669         <label2-snapshot2>
   670         ...
   671       <label3>/
   672       ...
   673     <label1> # a symlink to the latest <label1-snapshot*>
   674     <label2> # a symlink to the latest <label2-snapshot*>
   675     ...
   676  
   677  NOTE: Unlike the jiri tool commands, the above internal organization is not an
   678  API. It is an implementation and can change without notice.
   679  
   680  Usage:
   681     jiri snapshot create [flags] <label>
   682  
   683  <label> is the snapshot label.
   684  
   685  The jiri snapshot create flags are:
   686   -push-remote=false
   687     Commit and push snapshot upstream.
   688   -time-format=2006-01-02T15:04:05Z07:00
   689     Time format for snapshot file name.
   690  
   691   -color=true
   692     Use color to format output.
   693   -dir=
   694     Directory where snapshot are stored.  Defaults to $JIRI_ROOT/.snapshot.
   695   -v=false
   696     Print verbose output.
   697  
   698  Jiri snapshot list - List existing project snapshots
   699  
   700  The "snapshot list" command lists existing snapshots of the labels specified as
   701  command-line arguments. If no arguments are provided, the command lists
   702  snapshots for all known labels.
   703  
   704  Usage:
   705     jiri snapshot list [flags] <label ...>
   706  
   707  <label ...> is a list of snapshot labels.
   708  
   709  The jiri snapshot list flags are:
   710   -color=true
   711     Use color to format output.
   712   -dir=
   713     Directory where snapshot are stored.  Defaults to $JIRI_ROOT/.snapshot.
   714   -v=false
   715     Print verbose output.
   716  
   717  Jiri update - Update all jiri tools and projects
   718  
   719  Updates all projects, builds the latest version of all tools, and installs the
   720  resulting binaries into $JIRI_ROOT/.jiri_root/bin. The sequence in which the
   721  individual updates happen guarantees that we end up with a consistent set of
   722  tools and source code. The set of projects and tools to update is described in
   723  the manifest.
   724  
   725  Run "jiri help manifest" for details on manifests.
   726  
   727  Usage:
   728     jiri update [flags]
   729  
   730  The jiri update flags are:
   731   -attempts=1
   732     Number of attempts before failing.
   733   -gc=false
   734     Garbage collect obsolete repositories.
   735   -manifest=
   736     Name of the project manifest.
   737  
   738   -color=true
   739     Use color to format output.
   740   -v=false
   741     Print verbose output.
   742  
   743  Jiri which - Show path to the jiri tool
   744  
   745  Which behaves similarly to the unix commandline tool.  It is useful in
   746  determining whether the jiri binary is being run directly, or run via the jiri
   747  shim script.
   748  
   749  If the binary is being run directly, the output looks like this:
   750  
   751    # binary
   752    /path/to/binary/jiri
   753  
   754  If the script is being run, the output looks like this:
   755  
   756    # script
   757    /path/to/script/jiri
   758  
   759  Usage:
   760     jiri which [flags]
   761  
   762  The jiri which flags are:
   763   -color=true
   764     Use color to format output.
   765   -v=false
   766     Print verbose output.
   767  
   768  Jiri runp - Run a command in parallel across jiri projects
   769  
   770  Run a command in parallel across one or more jiri projects using the specified
   771  profile target's environment. Commands are run using the shell specified by the
   772  users $SHELL environment variable, or "sh" if that's not set. Thus commands are
   773  run as $SHELL -c "args..."
   774  
   775  Usage:
   776     jiri runp [flags] <command line>
   777  
   778  A command line to be run in each project specified by the supplied command line
   779  flags. Any environment variables intended to be evaluated when the command line
   780  is run must be quoted to avoid expansion before being passed to runp by the
   781  shell.
   782  
   783  The jiri runp flags are:
   784   -collate-stdout=true
   785     Collate all stdout output from each parallel invocation and display it as if
   786     had been generated sequentially. This flag cannot be used with
   787     -show-name-prefix, -show-key-prefix or -interactive.
   788   -env=
   789     specify an environment variable in the form: <var>=[<val>],...
   790   -exit-on-error=false
   791     If set, all commands will killed as soon as one reports an error, otherwise,
   792     each will run to completion.
   793   -has-branch=
   794     A regular expression specifying branch names to use in matching projects. A
   795     project will match if the specified branch exists, even if it is not checked
   796     out.
   797   -has-gerrit-message=false
   798     If specified, match branches that have, or have no, gerrit message
   799   -has-uncommitted=false
   800     If specified, match projects that have, or have no, uncommitted changes
   801   -has-untracked=false
   802     If specified, match projects that have, or have no, untracked files
   803   -interactive=true
   804     If set, the command to be run is interactive and should not have its
   805     stdout/stderr manipulated. This flag cannot be used with -show-name-prefix,
   806     -show-key-prefix or -collate-stdout.
   807   -merge-policies=+CCFLAGS,+CGO_CFLAGS,+CGO_CXXFLAGS,+CGO_LDFLAGS,+CXXFLAGS,GOARCH,GOOS,GOPATH:,^GOROOT*,+LDFLAGS,:PATH,VDLPATH:
   808     specify policies for merging environment variables
   809   -profiles=
   810     a comma separated list of profiles to use
   811   -profiles-db=$JIRI_ROOT/.jiri_root/profile_db
   812     the path, relative to JIRI_ROOT, that contains the profiles database.
   813   -projects=
   814     A Regular expression specifying project keys to run commands in. By default,
   815     runp will use projects that have the same branch checked as the current
   816     project unless it is run from outside of a project in which case it will
   817     default to using all projects.
   818   -show-key-prefix=false
   819     If set, each line of output from each project will begin with the key of the
   820     project followed by a colon. This is intended for use with long running
   821     commands where the output needs to be streamed. Stdout and stderr are spliced
   822     apart. This flag cannot be used with -interactive, -show-name-prefix or
   823     -collate-stdout
   824   -show-name-prefix=false
   825     If set, each line of output from each project will begin with the name of the
   826     project followed by a colon. This is intended for use with long running
   827     commands where the output needs to be streamed. Stdout and stderr are spliced
   828     apart. This flag cannot be used with -interactive, -show-key-prefix or
   829     -collate-stdout.
   830   -skip-profiles=false
   831     if set, no profiles will be used
   832   -target=<runtime.GOARCH>-<runtime.GOOS>
   833     specifies a profile target in the following form: <arch>-<os>[@<version>]
   834   -v=false
   835     Print verbose logging information
   836  
   837   -color=true
   838     Use color to format output.
   839  
   840  Jiri help - Display help for commands or topics
   841  
   842  Help with no args displays the usage of the parent command.
   843  
   844  Help with args displays the usage of the specified sub-command or help topic.
   845  
   846  "help ..." recursively displays help for all commands and topics.
   847  
   848  Usage:
   849     jiri help [flags] [command/topic ...]
   850  
   851  [command/topic ...] optionally identifies a specific sub-command or help topic.
   852  
   853  The jiri help flags are:
   854   -style=compact
   855     The formatting style for help output:
   856        compact   - Good for compact cmdline output.
   857        full      - Good for cmdline output, shows all global flags.
   858        godoc     - Good for godoc processing.
   859        shortonly - Only output short description.
   860     Override the default by setting the CMDLINE_STYLE environment variable.
   861   -width=<terminal width>
   862     Format output to this target width in runes, or unlimited if width < 0.
   863     Defaults to the terminal width if available.  Override the default by setting
   864     the CMDLINE_WIDTH environment variable.
   865  
   866  Jiri filesystem - Description of jiri file system layout
   867  
   868  All data managed by the jiri tool is located in the file system under a root
   869  directory, colloquially called the jiri root directory.  The file system layout
   870  looks like this:
   871  
   872   [root]                              # root directory (name picked by user)
   873   [root]/.jiri_root                   # root metadata directory
   874   [root]/.jiri_root/bin               # contains tool binaries (jiri, etc.)
   875   [root]/.jiri_root/update_history    # contains history of update snapshots
   876   [root]/.manifest                    # contains jiri manifests
   877   [root]/[project1]                   # project directory (name picked by user)
   878   [root]/[project1]/.jiri             # project metadata directory
   879   [root]/[project1]/.jiri/metadata.v2 # project metadata file
   880   [root]/[project1]/.jiri/<<cls>>     # project per-cl metadata directories
   881   [root]/[project1]/<<files>>         # project files
   882   [root]/[project2]...
   883  
   884  The [root] and [projectN] directory names are picked by the user.  The <<cls>>
   885  are named via jiri cl new, and the <<files>> are named as the user adds files
   886  and directories to their project.  All other names above have special meaning to
   887  the jiri tool, and cannot be changed; you must ensure your path names don't
   888  collide with these special names.
   889  
   890  There are two ways to run the jiri tool:
   891  
   892  1) Shim script (recommended approach).  This is a shell script that looks for
   893  the [root] directory.  If the JIRI_ROOT environment variable is set, that is
   894  assumed to be the [root] directory.  Otherwise the script looks for the
   895  .jiri_root directory, starting in the current working directory and walking up
   896  the directory chain.  The search is terminated successfully when the .jiri_root
   897  directory is found; it fails after it reaches the root of the file system.  Thus
   898  the shim must be invoked from the [root] directory or one of its subdirectories.
   899  
   900  Once the [root] is found, the JIRI_ROOT environment variable is set to its
   901  location, and [root]/.jiri_root/bin/jiri is invoked.  That file contains the
   902  actual jiri binary.
   903  
   904  The point of the shim script is to make it easy to use the jiri tool with
   905  multiple [root] directories on your file system.  Keep in mind that when "jiri
   906  update" is run, the jiri tool itself is automatically updated along with all
   907  projects.  By using the shim script, you only need to remember to invoke the
   908  jiri tool from within the appropriate [root] directory, and the projects and
   909  tools under that [root] directory will be updated.
   910  
   911  The shim script is located at [root]/release/go/src/v.io/jiri/scripts/jiri
   912  
   913  2) Direct binary.  This is the jiri binary, containing all of the actual jiri
   914  tool logic.  The binary requires the JIRI_ROOT environment variable to point to
   915  the [root] directory.
   916  
   917  Note that if you have multiple [root] directories on your file system, you must
   918  remember to run the jiri binary corresponding to the setting of your JIRI_ROOT
   919  environment variable.  Things may fail if you mix things up, since the jiri
   920  binary is updated with each call to "jiri update", and you may encounter version
   921  mismatches between the jiri binary and the various metadata files or other
   922  logic.  This is the reason the shim script is recommended over running the
   923  binary directly.
   924  
   925  The jiri binary is located at [root]/.jiri_root/bin/jiri
   926  
   927  Jiri manifest - Description of manifest files
   928  
   929  Jiri manifest files describe the set of projects that get synced and tools that
   930  get built when running "jiri update".
   931  
   932  The first manifest file that jiri reads is in $JIRI_ROOT/.jiri_manifest.  This
   933  manifest **must** exist for the jiri tool to work.
   934  
   935  Usually the manifest in $JIRI_ROOT/.jiri_manifest will import other manifests
   936  from remote repositories via <import> tags, but it can contain its own list of
   937  projects and tools as well.
   938  
   939  Manifests have the following XML schema:
   940  
   941  <manifest>
   942    <imports>
   943      <import remote="https://vanadium.googlesource.com/manifest"
   944              manifest="public"
   945              name="manifest"
   946      />
   947      <localimport file="/path/to/local/manifest"/>
   948      ...
   949    </imports>
   950    <projects>
   951      <project name="my-project"
   952               path="path/where/project/lives"
   953               protocol="git"
   954               remote="https://github.com/myorg/foo"
   955               revision="ed42c05d8688ab23"
   956               remotebranch="my-branch"
   957               gerrithost="https://myorg-review.googlesource.com"
   958               githooks="path/to/githooks-dir"
   959               runhook="path/to/runhook-script"
   960      />
   961      ...
   962    </projects>
   963    <tools>
   964      <tool name="jiri"
   965            package="v.io/jiri"
   966            project="release.go.jiri"
   967      />
   968      ...
   969    </tools>
   970  </manifest>
   971  
   972  The <import> and <localimport> tags can be used to share common projects and
   973  tools across multiple manifests.
   974  
   975  A <localimport> tag should be used when the manifest being imported and the
   976  importing manifest are both in the same repository, or when neither one is in a
   977  repository.  The "file" attribute is the path to the manifest file being
   978  imported.  It can be absolute, or relative to the importing manifest file.
   979  
   980  If the manifest being imported and the importing manifest are in different
   981  repositories then an <import> tag must be used, with the following attributes:
   982  
   983  * remote (required) - The remote url of the repository containing the manifest
   984  to be imported
   985  
   986  * manifest (required) - The path of the manifest file to be imported, relative
   987  to the repository root.
   988  
   989  * name (optional) - The name of the project corresponding to the manifest
   990  repository.  If your manifest contains a <project> with the same remote as the
   991  manifest remote, then the "name" attribute of on the <import> tag should match
   992  the "name" attribute on the <project>.  Otherwise, jiri will clone the manifest
   993  repository on every update.
   994  
   995  The <project> tags describe the projects to sync, and what state they should
   996  sync to, accoring to the following attributes:
   997  
   998  * name (required) - The name of the project.
   999  
  1000  * path (required) - The location where the project will be located, relative to
  1001  the jiri root.
  1002  
  1003  * remote (required) - The remote url of the project repository.
  1004  
  1005  * protocol (optional) - The protocol to use when cloning and syncing the repo.
  1006  Currently "git" is the default and only supported protocol.
  1007  
  1008  * remotebranch (optional) - The remote branch that the project will sync to.
  1009  Defaults to "master".  The "remotebranch" attribute is ignored if "revision" is
  1010  specified.
  1011  
  1012  * revision (optional) - The specific revision (usually a git SHA) that the
  1013  project will sync to.  If "revision" is  specified then the "remotebranch"
  1014  attribute is ignored.
  1015  
  1016  * gerrithost (optional) - The url of the Gerrit host for the project.  If
  1017  specified, then running "jiri cl mail" will upload a CL to this Gerrit host.
  1018  
  1019  * githooks (optional) - The path (relative to $JIRI_ROOT) of a directory
  1020  containing git hooks that will be installed in the projects .git/hooks directory
  1021  during each update.
  1022  
  1023  * runhook (optional) - The path (relate to $JIRI_ROOT) of a script that will be
  1024  run during each update.
  1025  
  1026  The <tool> tags describe the tools that will be compiled and installed in
  1027  $JIRI_ROOT/.jiri_root/bin after each update.  The tools must be written in go,
  1028  and are identified by their package name and the project that contains their
  1029  code.  They are configured via the following attributes:
  1030  
  1031  * name (required) - The name of the binary that will be installed in
  1032    JIRI_ROOT/.jiri_root/bin
  1033  
  1034  * package (required) - The name of the Go package that will be passed to "go
  1035    build".
  1036  
  1037  * project (required) - The name of the project that contains the source code
  1038    for the tool.
  1039  */
  1040  package main