Forager is a git vendoring tool similar to git subtree, only it records the actions it takes so that they are reversible and changeable later.
As a 2.0, forager will also attempt to understand different dependency files and use them to download and manage vendored dependencies.
I can run forager -h, forager --help or forager help to get a help page.
-
I can run
forager git install <vendor-name> [--version <vendor-version>] <git-url> [--commit <commit>] [--sourcesub <subdir>] <target-dir>to install a subdirectory from a git repository at a particular commit to my own repo. The information about what was done is stored into the forager database, including specific commit, source subdirectory, and target directory relative to the git repository root. It makes a commit of the files as done, and then records the commit hash of the change. This is sufficient to recover the date of the change, and the state of the files, natively. This is a good thing. Also, the record of when the vendoring happened is good too. Name is mandatory. Version is optional, but will be set automatically if not supplied using a default algorithm ofgit describe. -
If
git-lfsis installed, forager will use it automatically to transfer over git-lfs things from the source repo. It may also force usage based on configuration. -
I can run
forager query file <file-path>to determine if the file is owned by a particular vendor. I can also tell by running this command if the file has changed since its previous installation. -
I can run
forager query commit <vendor> [--all]to list the commit of last vendoring of a particular vendor.
I can run forager db file check <file-path> to determine if the file is
currently different than when it was vendored. Why not just rely on git? Well,
git can't tell if the file was moved, and forager can't tell when the change was
committed, only if the
I can run
I can run `forage git update [--commit <commitk
You can run `forager than its previous installation or if it was installed.