clone: recursive and reference option triggers submodule alternates
commit31224cbdc723d78a310b4cdbbd5abcfcbd44a4e5
authorStefan Beller <sbeller@google.com>
Wed, 17 Aug 2016 22:45:35 +0000 (17 15:45 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 18 Aug 2016 00:19:11 +0000 (17 17:19 -0700)
tree90ca060a6f542ff8a71d5fa34561f4cbd54b1f3d
parentf7415b4d71150d5c2d52f87c8792591237aaf00e
clone: recursive and reference option triggers submodule alternates

When `--recursive` and `--reference` is given, it is reasonable to
expect that the submodules are created with references to the submodules
of the given alternate for the superproject.

  An initial attempt to do this was presented to the mailing list, which
  used flags that are passed around ("--super-reference") that instructed
  the submodule clone to look for a reference in the submodules of the
  referenced superproject. This is not well thought out, as any further
  `submodule update` should also respect the initial setup.

  When a new  submodule is added to the superproject and the alternate
  of the superproject does not know about that submodule yet, we rather
  error out informing the user instead of being unclear if we did or did
  not use a submodules alternate.

To solve this problem introduce new options that store the configuration
for what the user wanted originally.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/config.txt
builtin/clone.c
builtin/submodule--helper.c
t/t7408-submodule-reference.sh