From 120ad2b0f13b60266fec9760bba3b5abfcd6fb78 Mon Sep 17 00:00:00 2001 From: Taylor Blau Date: Thu, 30 Apr 2020 13:48:50 -0600 Subject: shallow: extract a header file for shallow-related functions There are many functions in commit.h that are more related to shallow repositories than they are to any sort of generic commit machinery. Likely this began when there were only a few shallow-related functions, and commit.h seemed a reasonable enough place to put them. But, now there are a good number of shallow-related functions, and placing them all in 'commit.h' doesn't make sense. This patch extracts a 'shallow.h', which takes all of the declarations from 'commit.h' for functions which already exist in 'shallow.c'. We will bring the remaining shallow-related functions defined in 'commit.c' in a subsequent patch. For now, move only the ones that already are implemented in 'shallow.c', and update the necessary includes. Signed-off-by: Taylor Blau Signed-off-by: Junio C Hamano --- fetch-pack.c | 1 + 1 file changed, 1 insertion(+) (limited to 'fetch-pack.c') diff --git a/fetch-pack.c b/fetch-pack.c index a618f3b029..401d028e41 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -22,6 +22,7 @@ #include "connected.h" #include "fetch-negotiator.h" #include "fsck.h" +#include "shallow.h" static int transfer_unpack_limit = -1; static int fetch_unpack_limit = -1; -- cgit v1.2.3 From cac4b8e22ee39e52341d718450f8e4055c4dc16f Mon Sep 17 00:00:00 2001 From: Taylor Blau Date: Thu, 30 Apr 2020 13:48:57 -0600 Subject: shallow: use struct 'shallow_lock' for additional safety In previous patches, the functions 'commit_shallow_file' and 'rollback_shallow_file' were introduced to reset the shallowness validity checks on a repository after potentially modifying '.git/shallow'. These functions can be made safer by wrapping the 'struct lockfile *' in a new type, 'shallow_lock', so that they cannot be called with a raw lock (and potentially misused by other code that happens to possess a lockfile, but has nothing to do with shallowness). This patch introduces that type as a thin wrapper around 'struct lockfile', and updates the two aforementioned functions and their callers to use it. Suggested-by: Junio C Hamano Helped-by: Jonathan Nieder Signed-off-by: Taylor Blau Signed-off-by: Junio C Hamano --- fetch-pack.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'fetch-pack.c') diff --git a/fetch-pack.c b/fetch-pack.c index 401d028e41..27d2d08cc0 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -35,7 +35,7 @@ static int fetch_fsck_objects = -1; static int transfer_fsck_objects = -1; static int agent_supported; static int server_supports_filtering; -static struct lock_file shallow_lock; +static struct shallow_lock shallow_lock; static const char *alternate_shallow_file; static struct strbuf fsck_msg_types = STRBUF_INIT; -- cgit v1.2.3