Browse Source
We have deprecated the old environment variable names for quite a while and now it's time to remove them. Gone are: SHA1_FILE_DIRECTORIES AUTHOR_DATE AUTHOR_EMAIL AUTHOR_NAME COMMIT_AUTHOR_EMAIL COMMIT_AUTHOR_NAME SHA1_FILE_DIRECTORY Signed-off-by: Junio C Hamano <junkio@cox.net>maint
Junio C Hamano
20 years ago
13 changed files with 16 additions and 318 deletions
@ -1,75 +0,0 @@
@@ -1,75 +0,0 @@
|
||||
/* |
||||
* Copyright (C) 2005 Junio C Hamano |
||||
*/ |
||||
#include "cache.h" |
||||
|
||||
/* |
||||
* This array must be sorted by its canonical name, because |
||||
* we do look-up by binary search. |
||||
*/ |
||||
static struct backward_compatible_env { |
||||
const char *canonical; |
||||
const char *old; |
||||
} bc_name[] = { |
||||
{ "GIT_ALTERNATE_OBJECT_DIRECTORIES", "SHA1_FILE_DIRECTORIES" }, |
||||
{ "GIT_AUTHOR_DATE", "AUTHOR_DATE" }, |
||||
{ "GIT_AUTHOR_EMAIL", "AUTHOR_EMAIL" }, |
||||
{ "GIT_AUTHOR_NAME", "AUTHOR_NAME" }, |
||||
{ "GIT_COMMITTER_EMAIL", "COMMIT_AUTHOR_EMAIL" }, |
||||
{ "GIT_COMMITTER_NAME", "COMMIT_AUTHOR_NAME" }, |
||||
{ "GIT_OBJECT_DIRECTORY", "SHA1_FILE_DIRECTORY" }, |
||||
}; |
||||
|
||||
static void warn_old_environment(int pos) |
||||
{ |
||||
int i; |
||||
static int warned = 0; |
||||
if (warned) |
||||
return; |
||||
|
||||
warned = 1; |
||||
fprintf(stderr, |
||||
"warning: Attempting to use %s\n", |
||||
bc_name[pos].old); |
||||
fprintf(stderr, |
||||
"warning: GIT environment variables have been renamed.\n" |
||||
"warning: Please adjust your scripts and environment.\n"); |
||||
for (i = 0; i < sizeof(bc_name) / sizeof(bc_name[0]); i++) { |
||||
/* warning is needed only when old name is there and |
||||
* new name is not. |
||||
*/ |
||||
if (!getenv(bc_name[i].canonical) && getenv(bc_name[i].old)) |
||||
fprintf(stderr, "warning: old %s => new %s\n", |
||||
bc_name[i].old, bc_name[i].canonical); |
||||
} |
||||
} |
||||
|
||||
char *gitenv_bc(const char *e) |
||||
{ |
||||
int first, last; |
||||
char *val = getenv(e); |
||||
if (val) |
||||
die("gitenv_bc called on existing %s; fix the caller.", e); |
||||
|
||||
first = 0; |
||||
last = sizeof(bc_name) / sizeof(bc_name[0]); |
||||
while (last > first) { |
||||
int next = (last + first) >> 1; |
||||
int cmp = strcmp(e, bc_name[next].canonical); |
||||
if (!cmp) { |
||||
val = getenv(bc_name[next].old); |
||||
/* If the user has only old name, warn. |
||||
* otherwise stay silent. |
||||
*/ |
||||
if (val) |
||||
warn_old_environment(next); |
||||
return val; |
||||
} |
||||
if (cmp < 0) { |
||||
last = next; |
||||
continue; |
||||
} |
||||
first = next+1; |
||||
} |
||||
return NULL; |
||||
} |
@ -1,84 +0,0 @@
@@ -1,84 +0,0 @@
|
||||
#!/bin/sh |
||||
# |
||||
# Copyright (c) 2005 Junio C Hamano |
||||
# |
||||
|
||||
test_description='general environment name warning test. |
||||
|
||||
This test makes sure that use of deprecated environment variables |
||||
trigger the warnings from gitenv().' |
||||
|
||||
env_vars='GIT_AUTHOR_DATE:AUTHOR_DATE |
||||
GIT_AUTHOR_EMAIL:AUTHOR_EMAIL |
||||
GIT_AUTHOR_NAME:AUTHOR_NAME |
||||
GIT_COMMITTER_EMAIL:COMMIT_AUTHOR_EMAIL |
||||
GIT_COMMITTER_NAME:COMMIT_AUTHOR_NAME |
||||
GIT_ALTERNATE_OBJECT_DIRECTORIES:SHA1_FILE_DIRECTORIES |
||||
GIT_OBJECT_DIRECTORY:SHA1_FILE_DIRECTORY |
||||
' |
||||
|
||||
. ./test-lib.sh |
||||
|
||||
export_them () { |
||||
for ev in $env_vars |
||||
do |
||||
new=$(expr "$ev" : '\(.*\):') |
||||
old=$(expr "$ev" : '.*:\(.*\)') |
||||
# Build and eval the following: |
||||
# case "${VAR+set}" in set) export VAR;; esac |
||||
evstr='case "${'$new'+set}" in set) export '$new';; esac' |
||||
eval "$evstr" |
||||
evstr='case "${'$old'+set}" in set) export '$old';; esac' |
||||
eval "$evstr" |
||||
done |
||||
} |
||||
|
||||
date >path0 |
||||
git-update-index --add path0 |
||||
tree=$(git-write-tree) |
||||
|
||||
AUTHOR_DATE='Wed May 11 23:55:18 2005' |
||||
AUTHOR_EMAIL='author@example.xz' |
||||
AUTHOR_NAME='A U Thor' |
||||
COMMIT_AUTHOR_EMAIL='author@example.xz' |
||||
COMMIT_AUTHOR_NAME='A U Thor' |
||||
SHA1_FILE_DIRECTORY=.git/objects |
||||
|
||||
export_them |
||||
|
||||
echo 'foo' | git-commit-tree $tree >/dev/null 2>errmsg |
||||
cat >expected-err <<\EOF |
||||
warning: Attempting to use SHA1_FILE_DIRECTORY |
||||
warning: GIT environment variables have been renamed. |
||||
warning: Please adjust your scripts and environment. |
||||
warning: old AUTHOR_DATE => new GIT_AUTHOR_DATE |
||||
warning: old AUTHOR_EMAIL => new GIT_AUTHOR_EMAIL |
||||
warning: old AUTHOR_NAME => new GIT_AUTHOR_NAME |
||||
warning: old COMMIT_AUTHOR_EMAIL => new GIT_COMMITTER_EMAIL |
||||
warning: old COMMIT_AUTHOR_NAME => new GIT_COMMITTER_NAME |
||||
warning: old SHA1_FILE_DIRECTORY => new GIT_OBJECT_DIRECTORY |
||||
EOF |
||||
sed -ne '/^warning: /p' <errmsg >generated-err |
||||
|
||||
test_expect_success \ |
||||
'using old names should issue warnings.' \ |
||||
'cmp generated-err expected-err' |
||||
|
||||
for ev in $env_vars |
||||
do |
||||
new=$(expr "$ev" : '\(.*\):') |
||||
old=$(expr "$ev" : '.*:\(.*\)') |
||||
# Build and eval the following: |
||||
# NEWENV=$OLDENV |
||||
evstr="$new=\$$old" |
||||
eval "$evstr" |
||||
done |
||||
export_them |
||||
echo 'foo' | git-commit-tree $tree >/dev/null 2>errmsg |
||||
sed -ne '/^warning: /p' <errmsg >generated-err |
||||
|
||||
test_expect_success \ |
||||
'using old names but having new names should not issue warnings.' \ |
||||
'cmp generated-err /dev/null' |
||||
|
||||
test_done |
@ -1,132 +0,0 @@
@@ -1,132 +0,0 @@
|
||||
#!/bin/sh |
||||
# |
||||
# Copyright (c) 2005 Junio C Hamano |
||||
# |
||||
|
||||
test_description='Using new and old environment names. |
||||
|
||||
This test makes sure that use of deprecated environment variables |
||||
still works, using both new and old names makes new one take precedence, |
||||
and GIT_DIR and GIT_ALTERNATE_OBJECT_DIRECTORIES mechanism works.' |
||||
|
||||
env_vars='GIT_AUTHOR_DATE:AUTHOR_DATE |
||||
GIT_AUTHOR_EMAIL:AUTHOR_EMAIL |
||||
GIT_AUTHOR_NAME:AUTHOR_NAME |
||||
GIT_COMMITTER_EMAIL:COMMIT_AUTHOR_EMAIL |
||||
GIT_COMMITTER_NAME:COMMIT_AUTHOR_NAME |
||||
GIT_ALTERNATE_OBJECT_DIRECTORIES:SHA1_FILE_DIRECTORIES |
||||
GIT_OBJECT_DIRECTORY:SHA1_FILE_DIRECTORY |
||||
' |
||||
|
||||
. ./test-lib.sh |
||||
|
||||
export_them () { |
||||
for ev in $env_vars |
||||
do |
||||
new=$(expr "$ev" : '\(.*\):') |
||||
old=$(expr "$ev" : '.*:\(.*\)') |
||||
# Build and eval the following: |
||||
# case "${VAR+set}" in set) export VAR;; esac |
||||
evstr='case "${'$new'+set}" in set) export '$new';; esac' |
||||
eval "$evstr" |
||||
evstr='case "${'$old'+set}" in set) export '$old';; esac' |
||||
eval "$evstr" |
||||
done |
||||
} |
||||
|
||||
SHA1_FILE_DIRECTORY=.svn/objects ;# whoa |
||||
export SHA1_FILE_DIRECTORY |
||||
|
||||
rm -fr .git |
||||
mkdir .svn |
||||
test_expect_success \ |
||||
'using SHA1_FILE_DIRECTORY in git-init-db' \ |
||||
'git-init-db && test -d .svn/objects/cb' |
||||
|
||||
unset SHA1_FILE_DIRECTORY |
||||
GIT_DIR=.svn |
||||
export GIT_DIR |
||||
rm -fr .git .svn |
||||
mkdir .svn |
||||
test_expect_success \ |
||||
'using GIT_DIR in git-init-db' \ |
||||
'git-init-db && test -d .svn/objects/cb' |
||||
|
||||
date >path0 |
||||
test_expect_success \ |
||||
'using GIT_DIR in git-update-index' \ |
||||
'git-update-index --add path0 && test -f .svn/index' |
||||
|
||||
sedScript='s|\(..\)|.svn/objects/\1/|' |
||||
|
||||
test_expect_success \ |
||||
'using GIT_DIR in git-write-tree' \ |
||||
'tree=$(git-write-tree) && |
||||
test -f $(echo "$tree" | sed -e "$sedScript")' |
||||
|
||||
AUTHOR_DATE='Sat May 14 00:00:00 2005 -0000' |
||||
AUTHOR_EMAIL='author@example.xz' |
||||
AUTHOR_NAME='A U Thor' |
||||
COMMIT_AUTHOR_EMAIL='author@example.xz' |
||||
COMMIT_AUTHOR_NAME='A U Thor' |
||||
export_them |
||||
|
||||
test_expect_success \ |
||||
'using GIT_DIR and old variable names in git-commit-tree' \ |
||||
'commit=$(echo foo | git-commit-tree $tree) && |
||||
test -f $(echo "$commit" | sed -e "$sedScript")' |
||||
|
||||
test_expect_success \ |
||||
'using GIT_DIR in git-cat-file' \ |
||||
'git-cat-file commit $commit >current' |
||||
|
||||
cat >expected <<\EOF |
||||
author A U Thor <author@example.xz> |
||||
committer A U Thor <author@example.xz> |
||||
EOF |
||||
test_expect_success \ |
||||
'verify old AUTHOR variables were used correctly in commit' \ |
||||
'sed -ne '\''/^\(author\)/s|>.*|>|p'\'' -e'\''/^\(committer\)/s|>.*|>|p'\''\ current > out && cmp out expected' |
||||
|
||||
unset GIT_DIR |
||||
test_expect_success \ |
||||
'git-init-db without GIT_DIR' \ |
||||
'git-init-db && test -d .git && test -d .git/objects/ef' |
||||
|
||||
SHA1_FILE_DIRECTORIES=.svn/objects |
||||
export SHA1_FILE_DIRECTORIES |
||||
|
||||
test_expect_success \ |
||||
'using SHA1_FILE_DIRECTORIES with git-ls-tree' \ |
||||
'git-ls-tree $commit && git-ls-tree $tree' |
||||
|
||||
GIT_AUTHOR_DATE='Sat May 14 12:00:00 2005 -0000' |
||||
GIT_AUTHOR_EMAIL='rohtua@example.xz' |
||||
GIT_AUTHOR_NAME='R O Htua' |
||||
GIT_COMMITTER_EMAIL='rohtua@example.xz' |
||||
GIT_COMMITTER_NAME='R O Htua' |
||||
export_them |
||||
|
||||
sedScript='s|\(..\)|.git/objects/\1/|' |
||||
test_expect_success \ |
||||
'using new author variables with git-commit-tree' \ |
||||
'commit2=$(echo foo | git-commit-tree $tree) && |
||||
test -f $(echo "$commit2" | sed -e "$sedScript")' |
||||
|
||||
GIT_ALTERNATE_OBJECT_DIRECTORIES=.git/objects |
||||
GIT_DIR=nowhere |
||||
export GIT_DIR GIT_ALTERNATE_OBJECT_DIRECTORIES |
||||
|
||||
test_expect_success \ |
||||
'git-cat-file with GIT_DIR and GIT_ALTERNATE_OBJECT_DIRECTORIES' \ |
||||
'git-cat-file commit $commit2 >current' |
||||
|
||||
cat >expected <<\EOF |
||||
author R O Htua <rohtua@example.xz> |
||||
committer R O Htua <rohtua@example.xz> |
||||
EOF |
||||
test_expect_success \ |
||||
'verify new AUTHOR variables were used correctly in commit.' \ |
||||
'sed -ne '\''/^\(author\)/s|>.*|>|p'\'' -e'\''/^\(committer\)/s|>.*|>|p'\''\ current > out && cmp out expected' |
||||
|
||||
test_done |
Loading…
Reference in new issue