From: Junio C Hamano Date: Wed, 23 Mar 2011 04:38:12 +0000 (-0700) Subject: Merge branch 'jn/test-sanitize-git-env' X-Git-Tag: v1.7.5-rc0~40 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/50aaeca008194854dcc90836edaff58b9be6e0fc?ds=inline;hp=-c Merge branch 'jn/test-sanitize-git-env' * jn/test-sanitize-git-env: tests: scrub environment of GIT_* variables config: drop support for GIT_CONFIG_NOGLOBAL gitattributes: drop support for GIT_ATTR_NOGLOBAL tests: suppress system gitattributes tests: stop worrying about obsolete environment variables --- 50aaeca008194854dcc90836edaff58b9be6e0fc diff --combined cache.h index be6ce7237d,a8ef37a690..872bc9be11 --- a/cache.h +++ b/cache.h @@@ -5,7 -5,6 +5,7 @@@ #include "strbuf.h" #include "hash.h" #include "advice.h" +#include "gettext.h" #include SHA1_HEADER #ifndef git_SHA_CTX @@@ -504,13 -503,13 +504,13 @@@ extern int ie_modified(const struct ind struct pathspec { const char **raw; /* get_pathspec() result, not freed by free_pathspec() */ int nr; - int has_wildcard:1; - int recursive:1; + unsigned int has_wildcard:1; + unsigned int recursive:1; int max_depth; struct pathspec_item { const char *match; int len; - int has_wildcard:1; + unsigned int has_wildcard:1; } *items; }; @@@ -586,7 -585,7 +586,7 @@@ extern enum safe_crlf safe_crlf enum auto_crlf { AUTO_CRLF_FALSE = 0, AUTO_CRLF_TRUE = 1, - AUTO_CRLF_INPUT = -1, + AUTO_CRLF_INPUT = -1 }; extern enum auto_crlf auto_crlf; @@@ -732,9 -731,9 +732,9 @@@ static inline int is_absolute_path(cons return path[0] == '/' || has_dos_drive_prefix(path); } int is_directory(const char *); -const char *make_absolute_path(const char *path); -const char *make_nonrelative_path(const char *path); -const char *make_relative_path(const char *abs, const char *base); +const char *real_path(const char *path); +const char *absolute_path(const char *path); +const char *relative_path(const char *abs, const char *base); int normalize_path_copy(char *dst, const char *src); int longest_ancestor_length(const char *path, const char *prefix_list); char *strip_path_suffix(const char *path, const char *suffix); @@@ -914,8 -913,7 +914,8 @@@ extern struct packed_git time_t mtime; int pack_fd; unsigned pack_local:1, - pack_keep:1; + pack_keep:1, + do_not_close:1; unsigned char sha1[20]; /* something like ".git/objects/pack/xxxxx.pack" */ char pack_name[FLEX_ARRAY]; /* more */ @@@ -1022,7 -1020,6 +1022,6 @@@ extern const char *git_etc_gitconfig(vo extern int check_repository_format_version(const char *var, const char *value, void *cb); extern int git_env_bool(const char *, int); extern int git_config_system(void); - extern int git_config_global(void); extern int config_error_nonbool(const char *); extern const char *get_log_output_encoding(void); extern const char *get_commit_output_encoding(void); @@@ -1084,14 -1081,9 +1083,14 @@@ extern void alloc_report(void) /* trace.c */ __attribute__((format (printf, 1, 2))) extern void trace_printf(const char *format, ...); +extern void trace_vprintf(const char *key, const char *format, va_list ap); __attribute__((format (printf, 2, 3))) extern void trace_argv_printf(const char **argv, const char *format, ...); extern void trace_repo_setup(const char *prefix); +extern int trace_want(const char *key); +extern void trace_strbuf(const char *key, const struct strbuf *buf); + +void packet_trace_identity(const char *prog); /* convert.c */ /* returns 1 if *dst was used */ diff --combined config.c index fa740a6a60,217a77ddaf..e28197a3f6 --- a/config.c +++ b/config.c @@@ -20,7 -20,8 +20,7 @@@ static int zlib_compression_seen const char *config_exclusive_filename = NULL; -struct config_item -{ +struct config_item { struct config_item *next; char *name; char *value; @@@ -825,11 -826,6 +825,6 @@@ int git_config_system(void return !git_env_bool("GIT_CONFIG_NOSYSTEM", 0); } - int git_config_global(void) - { - return !git_env_bool("GIT_CONFIG_NOGLOBAL", 0); - } - int git_config_from_parameters(config_fn_t fn, void *data) { static int loaded_environment; @@@ -861,7 -857,7 +856,7 @@@ int git_config_early(config_fn_t fn, vo } home = getenv("HOME"); - if (git_config_global() && home) { + if (home) { char *user_config = xstrdup(mkpath("%s/.gitconfig", home)); if (!access(user_config, R_OK)) { ret += git_config_from_file(fn, user_config, data); diff --combined t/test-lib.sh index f4c1e04e4f,8aac727fb2..7cc9a52cbf --- a/t/test-lib.sh +++ b/t/test-lib.sh @@@ -43,36 -43,16 +43,16 @@@ TERM=dum export LANG LC_ALL PAGER TERM TZ EDITOR=: unset VISUAL - unset GIT_EDITOR - unset AUTHOR_DATE - unset AUTHOR_EMAIL - unset AUTHOR_NAME - unset COMMIT_AUTHOR_EMAIL - unset COMMIT_AUTHOR_NAME unset EMAIL - unset GIT_ALTERNATE_OBJECT_DIRECTORIES - unset GIT_AUTHOR_DATE + unset $(perl -e ' + my @env = keys %ENV; + my @vars = grep(/^GIT_/ && !/^GIT_(TRACE|DEBUG|USE_LOOKUP)/, @env); + print join("\n", @vars); + ') GIT_AUTHOR_EMAIL=author@example.com GIT_AUTHOR_NAME='A U Thor' - unset GIT_COMMITTER_DATE GIT_COMMITTER_EMAIL=committer@example.com GIT_COMMITTER_NAME='C O Mitter' - unset GIT_DIFF_OPTS - unset GIT_DIR - unset GIT_WORK_TREE - unset GIT_EXTERNAL_DIFF - unset GIT_INDEX_FILE - unset GIT_OBJECT_DIRECTORY - unset GIT_CEILING_DIRECTORIES - unset SHA1_FILE_DIRECTORIES - unset SHA1_FILE_DIRECTORY - unset GIT_NOTES_REF - unset GIT_NOTES_DISPLAY_REF - unset GIT_NOTES_REWRITE_REF - unset GIT_NOTES_REWRITE_MODE - unset GIT_REFLOG_ACTION - unset GIT_CHERRY_PICK_HELP - unset GIT_QUIET GIT_MERGE_VERBOSITY=5 export GIT_MERGE_VERBOSITY export GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME @@@ -954,8 -934,8 +934,8 @@@ f GIT_TEMPLATE_DIR="$GIT_BUILD_DIR"/templates/blt unset GIT_CONFIG GIT_CONFIG_NOSYSTEM=1 - GIT_CONFIG_NOGLOBAL=1 - export PATH GIT_EXEC_PATH GIT_TEMPLATE_DIR GIT_CONFIG_NOSYSTEM GIT_CONFIG_NOGLOBAL + GIT_ATTR_NOSYSTEM=1 + export PATH GIT_EXEC_PATH GIT_TEMPLATE_DIR GIT_CONFIG_NOSYSTEM GIT_ATTR_NOSYSTEM . "$GIT_BUILD_DIR"/GIT-BUILD-OPTIONS @@@ -1079,15 -1059,6 +1059,15 @@@ esa test -z "$NO_PERL" && test_set_prereq PERL test -z "$NO_PYTHON" && test_set_prereq PYTHON +# Can we rely on git's output in the C locale? +if test -n "$GETTEXT_POISON" +then + GIT_GETTEXT_POISON=YesPlease + export GIT_GETTEXT_POISON +else + test_set_prereq C_LOCALE_OUTPUT +fi + # test whether the filesystem supports symbolic links ln -s x y 2>/dev/null && test -h y 2>/dev/null && test_set_prereq SYMLINKS rm -f y