1App::Pinto::Command::puUlsle(r3)Contributed Perl DocumenAtpapt:i:oPninto::Command::pull(3)
2
3
4

NAME

6       App::Pinto::Command::pull - pull archives from upstream repositories
7

VERSION

9       version 0.14
10

SYNOPSIS

12         pinto --root=REPOSITORY_ROOT pull [OPTIONS] TARGET ...
13

DESCRIPTION

15       This command locates packages in your upstream repositories and then
16       pulls the distributions providing those packages into your repository
17       and registers them on a stack.  Then it recursively locates and pulls
18       all the distributions that are necessary to satisfy their
19       prerequisites.   You can also request to directly pull particular
20       distributions.
21
22       When locating packages, Pinto first looks at the packages that already
23       exist in the local repository, then Pinto looks at the packages that
24       are available on the upstream repositories.
25

COMMAND ARGUMENTS

27       Arguments are the targets that you want to pull.  Targets can be
28       specified as packages (with or without a version specification) or as
29       distributions.  Targets can be expressed in a number of ways, so please
30       see "TARGETS" below for more information.
31
32       You can also pipe arguments to this command over STDIN.  In that case,
33       blank lines and lines that look like comments (i.e. starting with "#"
34       or ';') will be ignored.
35

COMMAND OPTIONS

37       --cascade
38           !! THIS OPTION IS EXPERIMENTAL !!
39
40           When searching for a package (or one of its prerequisites), always
41           take the latest satisfactory version of the package found amongst
42           all the upstream repositories, rather than just taking the first
43           satisfactory version that is found.  Remember that Pinto only
44           searches the upstream repositories when the local repository does
45           not already contain a satisfactory version of the package.
46
47       --diff-style=STYLE
48           Controls the style of the diff reports.  STYLE must be either
49           "concise" or "detailed".  Concise reports show only one record for
50           each distribution added or deleted.  Detailed reports show one
51           record for every package added or deleted.
52
53           The default style is "concise".  However, the default style can
54           changed by setting the "PINTO_DIFF_STYLE" environment variable to
55           your preferred STYLE.  This variable affects the default style for
56           diff reports generated by all other commands too.
57
58       --dry-run
59           Go through all the motions, but do not actually commit any changes
60           to the repository.  At the conclusion, a diff showing the changes
61           that would have been made will be displayed.  Use this option to
62           see how upgrades would potentially impact the stack.
63
64       --no-fail
65           !! THIS OPTION IS EXPERIMENTAL !!
66
67           Normally, failure to pull a target (or its prerequisites) causes
68           the command to immediately abort and rollback the changes to the
69           repository.  But if "--no-fail" is set, then only the changes
70           caused by the failed target (and its prerequisites) will be rolled
71           back and the command will continue processing the remaining
72           targets.
73
74           This option is useful if you want to throw a list of targets into a
75           repository and see which ones are problematic.  Once you've fixed
76           the broken ones, you can throw the whole list at the repository
77           again.
78
79       --message=TEXT
80       -m TEXT
81           Use TEXT as the revision history log message.  If you do not use
82           the "--message" option or the "--use-default-message" option, then
83           you will be prompted to enter the message via your text editor.
84           Use the "PINTO_EDITOR" or "EDITOR" or "VISUAL" environment
85           variables to control which editor is used.  A log message is not
86           required whenever the "--dry-run" option is set, or if the action
87           did not yield any changes to the repository.
88
89       --pin
90           Pins the packages to the stack, so they cannot be changed until you
91           unpin them.  Only the packages in the requested targets will be
92           pinned -- packages in prerequisites will not be pinned.  However,
93           you may pin them separately with the pin command if you so desire.
94
95       --recurse
96       --no-recurse
97           Recursively pull any distributions required to satisfy
98           prerequisites for the targets.  The default value for this option
99           can be configured in the pinto.ini configuration file for the
100           repository (it is usually set to 1).  To disable recursion, use
101           "--no-recurse".
102
103       --skip-missing-prerequisite=PACKAGE
104       -k PACKAGE
105           !! THIS OPTION IS EXPERIMENTAL !!
106
107           Skip any prerequisite with name PACKAGE if a satisfactory version
108           cannot be found.  However, a warning will be given whenever this
109           occurrs.  This option only has effect when recursively fetching
110           prerequisites for the targets (See also the "--recurse" option).
111           This option can be repeated.
112
113       --skip-all-missing-prerequisites
114       -K  !! THIS OPTION IS EXPERIMENTAL !!
115
116           Skips all missing prerequisites if a satisfactory version cannot be
117           found.  However, a warning will be given whenever this occurrs.
118           This option will silently override the
119           "--skip-missing-prerequisite" option and only has effect when
120           recursively fetching prerequisites for the targets (See also the
121           "--recurse" option).
122
123       --stack=NAME
124       -s NAME
125           Puts all the packages onto the stack with the given NAME.  Defaults
126           to the name of whichever stack is currently marked as the default
127           stack.  Use the stacks command to see the stacks in the repository.
128
129       --use-default-message
130       -M  Use the default value for the revision history log message.  Pinto
131           will generate a semi-informative log message just based on the
132           command and its arguments.  If you set an explicit message with
133           "--message", the "--use- default-message" option will be silently
134           ignored.
135
136       --with-development-prerequisites
137       --wd
138           Also pull development prerequisites so you'll have everything you
139           need to work on those distributions, in the event that you need to
140           patch them in the future.  Be aware that most distributions do not
141           actually declare their development prerequisites.
142

TARGETS

144       Targets are a compact notation that identifies the things you want to
145       pull into your repository.  Targets come in two flavors: package
146       targets and distribution targets.
147
148   Package Targets
149       A package target consists of a package name and (optionally) a version
150       specification.  Here are some examples:
151
152         Foo::Bar                                 # Any version of Foo::Bar
153         Foo::Bar~1.2                             # Foo::Bar version 1.2 or higher
154         Foo::Bar==1.2                            # Only version 1.2 of Foo::Bar
155         Foo::Bar<1,2!=1.3,<=1.9                  # Complex version range
156
157       Package names are case-sensitive, and the version specification must
158       follow the format used by CPAN::Meta::Requirements.  All whitespace
159       within the target will be discarded.  If your version specification
160       contains any special shell characters, take care to quote or escape
161       them in your command.
162
163       In all cases, pinto queries the local repository and then each upstream
164       repository in order, and pulls the first distribution it can find that
165       provides a package which satisfies the version specification.
166
167   Distribution Targets
168       A distribution target consists of an author ID, zero or more
169       subdirectories, and the distribution name and version number.   This
170       corresponds to the actual path where the distribution archive lives in
171       the repository or CPAN mirror.  Here are some examples.
172
173         SHAKESPEARE/King-Lear-1.2.tar.gz         # A specific distribution
174         SHAKESPEARE/tragedies/Hamlet-4.2.tar.gz  # Same, but with a subdirectory
175
176       The author ID will always be forced to uppercase, but the reset of the
177       path is case-sensitive.
178
179   Caveats
180       PAUSE <http://pause.perl.org> has no strict rules on how packages are
181       versioned.  It is quite common to see a package with the same verison
182       number (or no version at all) in many releases of a distribution.  So
183       when you specify a package target with a precise version or version
184       range, what you actually get is the latest distribution
185       (chronologically) that has a package which satisfies the target.  Most
186       of the time this works out fine because you usally pull the "main
187       module" of the distribution and authors always increment that version
188       in each release.
189
190       Since most CPAN mirrors only report the latest version of a package
191       they have, they often cannot satisfy package targets that have a
192       precise version specification.  However, the mirror at
193       <http://cpan.stratopan.com> is special and can locate a precise version
194       of any package.
195
196       Package targets always resolve to production releases, unless you
197       specify a precise developer release version (e.g. "Foo::Bar==1.03_01").
198       But since most CPAN mirrors do not index developer releases, this only
199       works when using the mirror at <http://cpan.stratopan.com>.  However,
200       you can usually pull a developer release from any mirror by using a
201       distribution target.  Remember that developer releases are those with
202       an underscore in the version number.
203
204       For repositories created with Pinto version 0.098 or later, the first
205       upstream source is "http://cpan.stratopan.com" (unless you configure it
206       otherwise).  For repositories created with older versions, you can
207       manually add "http://cpan.stratopan.com" to the "sources" parameter in
208       the configuration file located at .pinto/config/pinto.ini within the
209       repository.
210

AUTHOR

212       Jeffrey Ryan Thalhammer <jeff@stratopan.com>
213
215       This software is copyright (c) 2015 by Jeffrey Ryan Thalhammer.
216
217       This is free software; you can redistribute it and/or modify it under
218       the same terms as the Perl 5 programming language system itself.
219
220
221
222perl v5.34.0                      2021-07-22      App::Pinto::Command::pull(3)
Impressum