App::Pinto::Command::pin - force a package to stay in a stack


version 0.14


  pinto --root=REPOSITORY_ROOT pin [OPTIONS] TARGET ...


This command pins a package so that it cannot be changed even if a different version is added or pulled to the stack The pin is local to the stack and does not affect any other stacks.

A package must be registered on the stack before you can pin it. To bring a package onto the stack, use the pull or register commands. To remove the pin from a package, see the unpin command.

When pinning, all its sister packages in that distribution also become pinned. Pinned packages also cannot be unregistered from the stack or deleted from the repository without the --force option.


Arguments are the targets you wish to unpin. Targets can be specified as packages or distributions, such as:



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.



Controls the style of the diff reports. STYLE must be either concise or detailed. Concise reports show only one record for each distribution added or deleted. Detailed reports show one record for every package added or deleted.

The default style is concise. However, the default style can changed by setting the PINTO_DIFF_STYLE environment variable to your preferred STYLE. This variable affects the default style for diff reports generated by all other commands too.


Go through all the motions, but do not actually commit any changes to the repository. Use this option to see how the command would potentially impact the stack.


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 PINTO_EDITOR or 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.


Pins the package on the stack with the given NAME. Defaults to the name of whichever stack is currently marked as the default stack. Use the stacks command to see the stacks in the repository.


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.


Jeffrey Ryan Thalhammer <>


This software is copyright (c) 2015 by Jeffrey Ryan Thalhammer.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.