aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn Pearce <spearce@spearce.org>2006-10-30 17:35:18 -0500
committerJunio C Hamano <junkio@cox.net>2006-10-30 19:35:16 -0800
commit6fb75bed5c4a6ce099a24e581ea327e9de3ab8b0 (patch)
treec110b1b0d4a2d4a6bdaf4d957d9da9b6115b1efb
parent79a65697be00f3b53430930078a7d34b591d5070 (diff)
downloadgit-6fb75bed5c4a6ce099a24e581ea327e9de3ab8b0.tar.gz
git-6fb75bed5c4a6ce099a24e581ea327e9de3ab8b0.tar.xz
Move deny_non_fast_forwards handling completely into receive-pack.
The 'receive.denynonfastforwards' option has nothing to do with the repository format version. Since receive-pack already uses git_config to initialize itself before executing any updates we can use the normal configuration strategy and isolate the receive specific variables away from the core variables. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--cache.h1
-rw-r--r--environment.c1
-rw-r--r--receive-pack.c16
-rw-r--r--setup.c2
4 files changed, 16 insertions, 4 deletions
diff --git a/cache.h b/cache.h
index d0a165729..f4f7be191 100644
--- a/cache.h
+++ b/cache.h
@@ -188,7 +188,6 @@ extern int prefer_symlink_refs;
extern int log_all_ref_updates;
extern int warn_ambiguous_refs;
extern int shared_repository;
-extern int deny_non_fast_forwards;
extern const char *apply_default_whitespace;
extern int zlib_compression_level;
diff --git a/environment.c b/environment.c
index 63b1d155b..84d870ca4 100644
--- a/environment.c
+++ b/environment.c
@@ -20,7 +20,6 @@ int warn_ambiguous_refs = 1;
int repository_format_version;
char git_commit_encoding[MAX_ENCODING_LENGTH] = "utf-8";
int shared_repository = PERM_UMASK;
-int deny_non_fast_forwards = 0;
const char *apply_default_whitespace;
int zlib_compression_level = Z_DEFAULT_COMPRESSION;
int pager_in_use;
diff --git a/receive-pack.c b/receive-pack.c
index ea2dbd4e3..f2b1c29bd 100644
--- a/receive-pack.c
+++ b/receive-pack.c
@@ -9,11 +9,25 @@ static const char receive_pack_usage[] = "git-receive-pack <git-dir>";
static const char *unpacker[] = { "unpack-objects", NULL };
+static int deny_non_fast_forwards = 0;
static int report_status;
static char capabilities[] = "report-status";
static int capabilities_sent;
+static int receive_pack_config(const char *var, const char *value)
+{
+ git_default_config(var, value);
+
+ if (strcmp(var, "receive.denynonfastforwards") == 0)
+ {
+ deny_non_fast_forwards = git_config_bool(var, value);
+ return 0;
+ }
+
+ return 0;
+}
+
static int show_ref(const char *path, const unsigned char *sha1)
{
if (capabilities_sent)
@@ -338,6 +352,8 @@ int main(int argc, char **argv)
if(!enter_repo(dir, 0))
die("'%s': unable to chdir or not a git archive", dir);
+ git_config(receive_pack_config);
+
write_head_info();
/* EOF */
diff --git a/setup.c b/setup.c
index 9a46a58a4..2afdba414 100644
--- a/setup.c
+++ b/setup.c
@@ -244,8 +244,6 @@ int check_repository_format_version(const char *var, const char *value)
repository_format_version = git_config_int(var, value);
else if (strcmp(var, "core.sharedrepository") == 0)
shared_repository = git_config_perm(var, value);
- else if (strcmp(var, "receive.denynonfastforwards") == 0)
- deny_non_fast_forwards = git_config_bool(var, value);
return 0;
}