submodule: add submodule.<name>.active
authorW. Trevor King <wking@tremily.us>
Sun, 2 Dec 2012 19:24:54 +0000 (14:24 -0500)
committerW. Trevor King <wking@tremily.us>
Mon, 3 Dec 2012 14:37:03 +0000 (09:37 -0500)
commitfbe2d8419902700a6b0b40defaa5801811b887f7
tree018c384dcdd2af3a8f1e399151a1b69c84965a2a
parentb045c16cffe6eb86c157a6c7397166a46e147442
submodule: add submodule.<name>.active

This new setting provides an explicit way to mark submodules as active
or inactive.  This avoids the previous method of overloading a local
submodule.<name>.url definition (or non-definition) to mean "this
submodule is active (or inactive)".

Implementation details
======================

New functions:

* get_submodule_active: decide if submodule is active based on the
  configuration files.  Also upgrades from older configurations that
  used the presense of submodule.<name>.url as an activation marker.
* module_list_active: wrap module_list to only return active
  submodules.
* die_on_module_list_error: replace die_if_unmatched to also catch
  other errors (e.g. explicitly listing an inactive submodule for a
  command that only processes active submodules).

New arguments:

* get_submodule_config: additional arguments are passed through to
  `git config`, which allows get_submodule_active to use --bool
  normalization.

Signed-off-by: W. Trevor King <wking@tremily.us>
git-submodule.sh