Code

unpack-trees.c: assume submodules are clean during check-out
authorJunio C Hamano <gitster@pobox.com>
Sat, 4 Aug 2007 05:13:09 +0000 (22:13 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sun, 5 Aug 2007 17:55:55 +0000 (10:55 -0700)
commit936492d3cf96817f03182712ca14eb4744c721ef
treede65c7eaa5cd4ae96ad3e415298107c11c00abdf
parent64a476e691cb08c2f8bd6d40cc88fb8ccb9ed955
unpack-trees.c: assume submodules are clean during check-out

Sven originally raised this issue:

    If you have a submodule checked out and you go back (or
    forward) to a revision of the supermodule that contains a
    different revision of the submodule and then switch to
    another revision, it will complain that the submodule is not
    uptodate, because git simply didn't update the submodule in
    the first move.

The current policy is to consider it is perfectly normal that
checked-out submodule is out-of-sync wrt the supermodule index.
At least until we introduce a superproject repository
configuration option that says "in this repository, I do care
about this submodule and at any time I move around in the
superproject, recursively check out the submodule to match", it
is a reasonable policy, as we currently do not recursively
checkout the submodules at all.  The most extreme case of this
policy is that the superproject index knows about the submodule
but the subdirectory does not even have to be checked out.

The function verify_uptodate(), called during the two-way merge
aka branch switching, is about "make sure the filesystem entity
that corresponds to this cache entry is up to date, lest we lose
the local modifications".  As we explicitly allow submodule
checkout to drift from the supermodule index entry, the check
should say "Ok, for submodules, not matching is the norm" for
now.

Later when we have the ability to mark "I care about this
submodule to be always in sync with the superproject" (thereby
implementing automatic recursive checkout and perhaps diff,
among other things), we should check if the submodule in
question is marked as such and perform the current test.

Acked-by: Lars Hjemli <hjemli@gmail.com>
Acked-by: Sven Verdoolaege <skimo@kotnet.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
unpack-trees.c