summaryrefslogtreecommitdiff
path: root/shallow.c
diff options
context:
space:
mode:
Diffstat (limited to 'shallow.c')
-rw-r--r--shallow.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/shallow.c b/shallow.c
index 02fdbfc554..5fa2b15d37 100644
--- a/shallow.c
+++ b/shallow.c
@@ -43,6 +43,13 @@ int register_shallow(struct repository *r, const struct object_id *oid)
int is_repository_shallow(struct repository *r)
{
+ /*
+ * NEEDSWORK: This function updates
+ * r->parsed_objects->{is_shallow,shallow_stat} as a side effect but
+ * there is no corresponding function to clear them when the shallow
+ * file is updated.
+ */
+
FILE *fp;
char buf[1024];
const char *path = r->parsed_objects->alternate_shallow_file;
@@ -241,7 +248,8 @@ static void check_shallow_file_for_update(struct repository *r)
if (r->parsed_objects->is_shallow == -1)
BUG("shallow must be initialized by now");
- if (!stat_validity_check(r->parsed_objects->shallow_stat, git_path_shallow(the_repository)))
+ if (!stat_validity_check(r->parsed_objects->shallow_stat,
+ git_path_shallow(r)))
die("shallow file has changed since we read it");
}