NAME
App::Pinto::Admin::Command::add - add local distributions to the repository
VERSION
version 0.038
SYNOPSIS
pinto-admin --root=/some/dir add [OPTIONS] ARCHIVE_FILE_OR_URL ...
pinto-admin --root=/some/dir add [OPTIONS] < LIST_OF_ARCHIVE_FILES_OR_URLS
DESCRIPTION
This command adds a local distribution archive and all its packages to the repository and recomputes the 'latest' version of the packages that were in that distribution.
When a distribution is first added to the repository, the author becomes the owner of the distribution (actually, the packages). Thereafter, only the same author can add new versions or remove those packages. However, this is not strongly enforced -- you can change your author identity at any time using the --author
option.
By default, Pinto also recursively imports all the distributions that are required to provide the prerequisite packages for the newly added distribution. When searching for those prerequisite packages, Pinto first looks at the the packages that already exist in the local repository, then Pinto looks at the packages that are available available on the remote repositories. At present, Pinto takes the *first* package it can find that satisfies the prerequisite. In the future, you may be able to direct Pinto to instead choose the *latest* package that satisfies the prerequisite (NOT SURE THOSE LAST TWO STATEMENTS ARE TRUE).
Imported distributions will be assigned to their original author, not the author who added the distribution that triggered the import. Also, packages provided by imported distributions are still considered foreign, so locally added packages will always override ones that you imported, even if the imported package has a higher version.
COMMAND ARGUMENTS
Arguments to this command are paths to the distribution files that you wish to add. Each of these files must exist and must be readable. If a path looks like a URL, then the distribution first retrieved from that URL and stored in a temporary file, which is subsequently added.
You can also pipe arguments to this command over STDIN. In that case, blank lines and lines that look like comments (i.e. starting with "#" or ';') will be ignored.
COMMAND OPTIONS
-
Sets your identity as a distribution author. The
NAME
must be alphanumeric characters (no spaces) and will be forced to uppercase. Defaults to theuser
specified in your~/.pause
configuration file (if such file exists). Otherwise, defaults to your current login username. - --message=MESSAGE
-
Prepends the MESSAGE to the VCS log message that Pinto generates. This is only relevant if you are using a VCS-based storage mechanism for Pinto.
- --nocommit
-
Prevents Pinto from committing changes in the repository to the VCS after the operation. This is only relevant if you are using a VCS-based storage mechanism. Beware this will leave your working copy out of sync with the VCS. It is up to you to then commit or rollback the changes using your VCS tools directly. Pinto will not commit old changes that were left from a previous operation.
- --noinit
-
Prevents Pinto from pulling/updating the repository from the VCS before the operation. This is only relevant if you are using a VCS-based storage mechanism. This can speed up operations considerably, but should only be used if you *know* that your working copy is up-to-date and you are going to be the only actor touching the Pinto repository within the VCS.
- --norecurse
-
Prevents Pinto from recursively importing distributions required to satisfy the prerequisites of the added distribution. Imported distributions are pulled from whatever remote repositories are configured as the
source
for this local repository. - --tag=NAME
-
Instructs Pinto to tag the head revision of the repository at NAME. This is only relevant if you are using a VCS-based storage mechanism. The syntax of the NAME depends on the type of VCS you are using.
DISCUSSION
Using the 'add' command on a distribution you got from another repository (such as CPAN mirror) effectively makes that distribution local. So you become the owner of that distribution, even if the repository already contains a foreign distribution that was pulled from another repository by the mirror
or import
command.
Local packages are always considered 'later' then any foreign package with the same name, even if the foreign package has a higher version number. This allows you to mask a foreign package with your own locally patched version.
AUTHOR
Jeffrey Ryan Thalhammer <jeff@imaginative-software.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Imaginative Software Systems.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.