This command adds local distribution archives to the repository and registers their packages on a stack. Then it recursively pulls all the distributions that are necessary to satisfy their prerequisites.

When locating prerequisite packages, Pinto first looks at the packages that already exist in the local repository, then Pinto looks at the packages that are available on the upstream repositories.

Set the identity of the distribution author. The NAME is automatically forced to uppercase and must match /^[A-Z]{2}[-A-Z0-9]*$/ (that means two ASCII letters followed by zero or more ASCII letters, digits, or hyphens). Defaults to the user attribute specified in your ~/.pause configuration file if such file exists. Otherwise, defaults to your current login username.

When searching for a prerequisite package, always take the latest satisfactory version of the package found amongst all the upstream repositories, rather than just taking the first satisfactory version that is found. Remember that Pinto only searches the upstream repositories when the local repository does not already contain a satisfactory version of the package.

Use TEXT as the revision history log message. If you do not use the --message option or the --use-default-message option, then you will be prompted to enter the message via your text editor. Use the EDITOR or VISUAL environment variables to control which editor is used. A log message is not required whenever the --dry-run option is set, or if the action did not yield any changes to the repository.

Normally, failure to add an archive (or its prerequisites) causes the command to immediately abort and rollback the changes to the repository. But if --no-fail is set, then only the changes caused by the failed archive (and its prerequisites) will be rolled back and the command will continue processing the remaining archives.

This option is useful if you want to throw a list of archives into a repository and see which ones are problematic. Once you've fixed the broken ones, you can throw the whole list at the repository again.

Exclude the PACKAGE from the index. If the argument starts with a slash, then it is interpreted as a regular expression, and all packages matching the pattern will be excluded. Exclusions only apply to the added distributions (i.e. the arguments to this command) so they do not affect any prerequisited distributions that may also get pulled. You can repeat this option to specify multiple PACKAGES or PATTERNS.

This option is useful when Pinto's indexing is to aggressive and finds packages that it probably should not. Remember that Pinto does not promise to index exactly as PAUSE would. When using a PATTERN, take care to use a conservative one so you don't exclude the wrong packages. Pinto will throw an exception if you exclude every package in the distribution.

Pins all the packages in the added distributions to the stack, so they cannot be changed until you unpin them. The pin does not apply to any prerequisites that are pulled in for this distribution. However, you may pin them separately with the pin command, if you so desire.

Use the default value for the revision history log message. Pinto will generate a semi-informative log message just based on the command and its arguments. If you set an explicit message with --message, the --use-default-message option will be silently ignored.

Also pull development prerequisites so you'll have everything you need to work on those distributions, in the event that you need to patch them in the future. Be aware that most distributions do not actually declare their development prerequisites.