unpack-trees: pass old oid to verify_clean_submodule
The check (which uses the old oid) is yet to be implemented, but this part is just a refactor, so it can go separately first. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
6e3c1595c6
commit
d6b1230067
@ -1407,7 +1407,8 @@ static void invalidate_ce_path(const struct cache_entry *ce,
|
||||
* Currently, git does not checkout subprojects during a superproject
|
||||
* checkout, so it is not going to overwrite anything.
|
||||
*/
|
||||
static int verify_clean_submodule(const struct cache_entry *ce,
|
||||
static int verify_clean_submodule(const char *old_sha1,
|
||||
const struct cache_entry *ce,
|
||||
enum unpack_trees_error_types error_type,
|
||||
struct unpack_trees_options *o)
|
||||
{
|
||||
@ -1427,16 +1428,18 @@ static int verify_clean_subdirectory(const struct cache_entry *ce,
|
||||
struct dir_struct d;
|
||||
char *pathbuf;
|
||||
int cnt = 0;
|
||||
unsigned char sha1[20];
|
||||
|
||||
if (S_ISGITLINK(ce->ce_mode) &&
|
||||
resolve_gitlink_ref(ce->name, "HEAD", sha1) == 0) {
|
||||
/* If we are not going to update the submodule, then
|
||||
if (S_ISGITLINK(ce->ce_mode)) {
|
||||
unsigned char sha1[20];
|
||||
int sub_head = resolve_gitlink_ref(ce->name, "HEAD", sha1);
|
||||
/*
|
||||
* If we are not going to update the submodule, then
|
||||
* we don't care.
|
||||
*/
|
||||
if (!hashcmp(sha1, ce->oid.hash))
|
||||
if (!sub_head && !hashcmp(sha1, ce->oid.hash))
|
||||
return 0;
|
||||
return verify_clean_submodule(ce, error_type, o);
|
||||
return verify_clean_submodule(sub_head ? NULL : sha1_to_hex(sha1),
|
||||
ce, error_type, o);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user