summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2023-04-22 23:19:59 +0100
committerEdward Thomson <ethomson@edwardthomson.com>2023-04-24 11:49:12 +0100
commitdd15c615bde54eb02c5cec17257a83dcd8528371 (patch)
tree882f31fe53a21966733e67ef759d678bce13b62f
parent190a4c55df72b32adf4d60f77cbc47276b74f84b (diff)
downloadlibgit2-dd15c615bde54eb02c5cec17257a83dcd8528371.tar.gz
shallow: remove feature flag
The opt mechanism isn't _really_ meant to be for feature flags, and it's weird to feature flag shallow / unshallow at all.
-rw-r--r--include/git2/common.h6
-rw-r--r--src/libgit2/commit.c5
-rw-r--r--src/libgit2/grafts.c6
-rw-r--r--src/libgit2/grafts.h2
-rw-r--r--src/libgit2/libgit2.c4
-rw-r--r--src/libgit2/repository.c2
-rw-r--r--tests/libgit2/clone/shallow.c2
-rw-r--r--tests/libgit2/grafts/basic.c2
-rw-r--r--tests/libgit2/grafts/shallow.c12
9 files changed, 5 insertions, 36 deletions
diff --git a/include/git2/common.h b/include/git2/common.h
index b09b078a1..f968deb23 100644
--- a/include/git2/common.h
+++ b/include/git2/common.h
@@ -224,8 +224,7 @@ typedef enum {
GIT_OPT_GET_OWNER_VALIDATION,
GIT_OPT_SET_OWNER_VALIDATION,
GIT_OPT_GET_HOMEDIR,
- GIT_OPT_SET_HOMEDIR,
- GIT_OPT_ENABLE_SHALLOW
+ GIT_OPT_SET_HOMEDIR
} git_libgit2_opt_t;
/**
@@ -462,9 +461,6 @@ typedef enum {
* > { "!noop", "newext" } indicates that the caller does not want
* > to support repositories with the `noop` extension but does want
* > to support repositories with the `newext` extension.
- *
- * opts(GIT_OPT_ENABLE_SHALLOW, int enabled)
- * > Enable or disable shallow clone support completely.
*
* opts(GIT_OPT_GET_OWNER_VALIDATION, int *enabled)
* > Gets the owner validation setting for repository
diff --git a/src/libgit2/commit.c b/src/libgit2/commit.c
index a7d831115..f7be73acf 100644
--- a/src/libgit2/commit.c
+++ b/src/libgit2/commit.c
@@ -553,14 +553,11 @@ int git_commit__parse_ext(
git_repository *repo = git_object_owner((git_object *)commit);
git_commit_graft *graft;
int error;
-
+
if ((error = commit_parse(commit, git_odb_object_data(odb_obj),
git_odb_object_size(odb_obj), parse_opts)) < 0)
return error;
- if (!git_shallow__enabled)
- return 0;
-
/* Perform necessary grafts */
if (git_grafts_get(&graft, repo->grafts, git_odb_object_id(odb_obj)) != 0 &&
git_grafts_get(&graft, repo->shallow_grafts, git_odb_object_id(odb_obj)) != 0)
diff --git a/src/libgit2/grafts.c b/src/libgit2/grafts.c
index 7cbb1dd76..13c33aad0 100644
--- a/src/libgit2/grafts.c
+++ b/src/libgit2/grafts.c
@@ -12,8 +12,6 @@
#include "oidarray.h"
#include "parse.h"
-bool git_shallow__enabled = false;
-
struct git_grafts {
/* Map of `git_commit_graft`s */
git_oidmap *commits;
@@ -97,13 +95,13 @@ int git_grafts_refresh(git_grafts *grafts)
if (!grafts->path)
return 0;
- if ((error = git_futils_readbuffer_updated(&contents, grafts->path,
+ if ((error = git_futils_readbuffer_updated(&contents, grafts->path,
(grafts->path_checksum).id, &updated)) < 0) {
if (error == GIT_ENOTFOUND) {
git_grafts_clear(grafts);
error = 0;
}
-
+
goto cleanup;
}
diff --git a/src/libgit2/grafts.h b/src/libgit2/grafts.h
index 4139438bb..fc61468f5 100644
--- a/src/libgit2/grafts.h
+++ b/src/libgit2/grafts.h
@@ -19,8 +19,6 @@ typedef struct {
typedef struct git_grafts git_grafts;
-extern bool git_shallow__enabled;
-
int git_grafts_new(git_grafts **out);
int git_grafts_from_file(git_grafts **out, const char *path);
void git_grafts_free(git_grafts *grafts);
diff --git a/src/libgit2/libgit2.c b/src/libgit2/libgit2.c
index c5a9287fb..178880c9e 100644
--- a/src/libgit2/libgit2.c
+++ b/src/libgit2/libgit2.c
@@ -436,10 +436,6 @@ int git_libgit2_opts(int key, ...)
error = git_sysdir_set(GIT_SYSDIR_HOME, va_arg(ap, const char *));
break;
- case GIT_OPT_ENABLE_SHALLOW:
- git_shallow__enabled = (va_arg(ap, int) != 0);
- break;
-
default:
git_error_set(GIT_ERROR_INVALID, "invalid option key");
error = -1;
diff --git a/src/libgit2/repository.c b/src/libgit2/repository.c
index 1e356c84e..99982b724 100644
--- a/src/libgit2/repository.c
+++ b/src/libgit2/repository.c
@@ -1099,7 +1099,7 @@ int git_repository_open_ext(
if (error < 0)
goto cleanup;
- if (git_shallow__enabled && (error = load_grafts(repo)) < 0)
+ if ((error = load_grafts(repo)) < 0)
goto cleanup;
if ((flags & GIT_REPOSITORY_OPEN_BARE) != 0) {
diff --git a/tests/libgit2/clone/shallow.c b/tests/libgit2/clone/shallow.c
index eacfe1bcf..28b0116fa 100644
--- a/tests/libgit2/clone/shallow.c
+++ b/tests/libgit2/clone/shallow.c
@@ -4,12 +4,10 @@
void test_clone_shallow__initialize(void)
{
- cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_SHALLOW, 1));
}
void test_clone_shallow__cleanup(void)
{
- git_libgit2_opts(GIT_OPT_ENABLE_SHALLOW, 0);
}
static int remote_single_branch(git_remote **out, git_repository *repo, const char *name, const char *url, void *payload)
diff --git a/tests/libgit2/grafts/basic.c b/tests/libgit2/grafts/basic.c
index 5ad437b19..fe7477097 100644
--- a/tests/libgit2/grafts/basic.c
+++ b/tests/libgit2/grafts/basic.c
@@ -7,13 +7,11 @@ static git_repository *g_repo;
void test_grafts_basic__initialize(void)
{
- git_libgit2_opts(GIT_OPT_ENABLE_SHALLOW, 1);
g_repo = cl_git_sandbox_init("grafted.git");
}
void test_grafts_basic__cleanup(void)
{
- git_libgit2_opts(GIT_OPT_ENABLE_SHALLOW, 0);
cl_git_sandbox_cleanup();
}
diff --git a/tests/libgit2/grafts/shallow.c b/tests/libgit2/grafts/shallow.c
index 8c2723922..5911a26aa 100644
--- a/tests/libgit2/grafts/shallow.c
+++ b/tests/libgit2/grafts/shallow.c
@@ -7,25 +7,13 @@
static git_repository *g_repo;
static git_oid g_shallow_oid;
-void test_grafts_shallow__set_feature_flag(void)
-{
- cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_SHALLOW, 1));
-}
-
-void test_grafts_shallow__unset_feature_flag(void)
-{
- cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_SHALLOW, 0));
-}
-
void test_grafts_shallow__initialize(void)
{
- git_libgit2_opts(GIT_OPT_ENABLE_SHALLOW, 1);
cl_git_pass(git_oid__fromstr(&g_shallow_oid, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1));
}
void test_grafts_shallow__cleanup(void)
{
- git_libgit2_opts(GIT_OPT_ENABLE_SHALLOW, 0);
cl_git_sandbox_cleanup();
}