fetchdevgit – module for any(1) engine to work with development sources from git(1).

Description

Module allows the work with git repositories: download, update, checkout at needed version. Also by option it generates plain patches from git history and stores them in PATCHDIR.

    any do default,fetchdevgit worked-by-0.99

If there are no sources in ANYDEVSRCDIR for current package, module tries to clone them from the place, put in any_fetch_dev_git_string (remote or local). Then it does checkout on first matched required version, given by any_dev_src_version.

If the sources are already in place, and autoupdate is allowed, module tries to check them out to the needed version and update (unless version is tag). Autoupdate is regulated by any_fetch_dev_autoupdate. When it is turned off, just cloning of new sources is done. Thus existing local sources are not modified, even if they are of another version or not from git at all.

After clone and update module calculates the inner version of package: total quantity of commits in the sources plus in the DISTDIR is the result. Module suggests DISTDIR is kept under git as well (but repository may be independent from sources). Final number is recorded to $T/inner_version.

If any_fetch_patchgen is set to 1, module generates series of patches from git history. It takes into account original unchanged source files and doesn't include them into patches. The result is placed into PATCHDIR. Option is unset by default.

Interfaces

The module implements any-map(7) interfaces:
fetch_dev(3)
fetch_dev_inner_version(3)
fetch_gen_patches(3)

Options

any_dev_src_version
Space separated list of possible versions for development sources to use. Version can be branch name or tag. If there is matching tag for entry from the list, it is chosen ; otherwise matching remote branch name is searched. If entry has no matches, next entry is taken.
If option is unset, single value master is checked.

any_fetch_dev_autoupdate
If set to 1, module will try to update existing local sources and check them out according to currently asked version. Unset by default.

any_fetch_dev_git_string
String with host and path to the sources. String does not include the name of current package itself.
Examples: git://localhost:8080/sources, /home/user/src

any_fetch_patchgen
If set to 1, the generation of patches from git history is done. Unset by default.

any_fetch_patchgen_withstatic
If set to 1, the generation of patches is done disregarding patches, statically saved inside static_PATCHDIR (according option any_static_patch_dir) or atom_static_PATCHDIR. By default the generation of patches is not performed in presence of static patches.

any_local_src_hashing
If set to 1, turns on the hashing of local sources names.

any_remote_src_hashing
If set to 1, turns on the hashing of development sources names.

See also