]>
Commit | Line | Data |
---|---|---|
947adb27 JH |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (c) 2005 Junio C Hamano | |
4 | # | |
5 | ||
6 | test_description='Using new and old environment names. | |
7 | ||
8 | This test makes sure that use of deprecated environment variables | |
9 | still works, using both new and old names makes new one take precedence, | |
10 | and GIT_DIR and GIT_ALTERNATE_OBJECT_DIRECTORIES mechanism works.' | |
11 | ||
12 | env_vars='GIT_AUTHOR_DATE:AUTHOR_DATE | |
13 | GIT_AUTHOR_EMAIL:AUTHOR_EMAIL | |
14 | GIT_AUTHOR_NAME:AUTHOR_NAME | |
15 | GIT_COMMITTER_EMAIL:COMMIT_AUTHOR_EMAIL | |
16 | GIT_COMMITTER_NAME:COMMIT_AUTHOR_NAME | |
17 | GIT_ALTERNATE_OBJECT_DIRECTORIES:SHA1_FILE_DIRECTORIES | |
18 | GIT_OBJECT_DIRECTORY:SHA1_FILE_DIRECTORY | |
19 | ' | |
20 | ||
21 | . ./test-lib.sh | |
22 | ||
23 | export_them () { | |
24 | for ev in $env_vars | |
25 | do | |
26 | new=$(expr "$ev" : '\(.*\):') | |
27 | old=$(expr "$ev" : '.*:\(.*\)') | |
28 | # Build and eval the following: | |
29 | # case "${VAR+set}" in set) export VAR;; esac | |
30 | evstr='case "${'$new'+set}" in set) export '$new';; esac' | |
31 | eval "$evstr" | |
32 | evstr='case "${'$old'+set}" in set) export '$old';; esac' | |
33 | eval "$evstr" | |
34 | done | |
35 | } | |
36 | ||
37 | SHA1_FILE_DIRECTORY=.svn/objects ;# whoa | |
38 | export SHA1_FILE_DIRECTORY | |
39 | ||
40 | rm -fr .git | |
41 | mkdir .svn | |
42 | test_expect_success \ | |
43 | 'using SHA1_FILE_DIRECTORY in git-init-db' \ | |
44 | 'git-init-db && test -d .svn/objects/cb' | |
45 | ||
46 | unset SHA1_FILE_DIRECTORY | |
47 | GIT_DIR=.svn | |
48 | export GIT_DIR | |
49 | rm -fr .git .svn | |
50 | mkdir .svn | |
51 | test_expect_success \ | |
52 | 'using GIT_DIR in git-init-db' \ | |
53 | 'git-init-db && test -d .svn/objects/cb' | |
54 | ||
55 | date >path0 | |
56 | test_expect_success \ | |
215a7ad1 JH |
57 | 'using GIT_DIR in git-update-index' \ |
58 | 'git-update-index --add path0 && test -f .svn/index' | |
947adb27 JH |
59 | |
60 | sedScript='s|\(..\)|.svn/objects/\1/|' | |
61 | ||
62 | test_expect_success \ | |
63 | 'using GIT_DIR in git-write-tree' \ | |
64 | 'tree=$(git-write-tree) && | |
65 | test -f $(echo "$tree" | sed -e "$sedScript")' | |
66 | ||
67 | AUTHOR_DATE='Sat May 14 00:00:00 2005 -0000' | |
68 | AUTHOR_EMAIL='author@example.xz' | |
69 | AUTHOR_NAME='A U Thor' | |
70 | COMMIT_AUTHOR_EMAIL='author@example.xz' | |
71 | COMMIT_AUTHOR_NAME='A U Thor' | |
72 | export_them | |
73 | ||
74 | test_expect_success \ | |
75 | 'using GIT_DIR and old variable names in git-commit-tree' \ | |
76 | 'commit=$(echo foo | git-commit-tree $tree) && | |
77 | test -f $(echo "$commit" | sed -e "$sedScript")' | |
78 | ||
79 | test_expect_success \ | |
80 | 'using GIT_DIR in git-cat-file' \ | |
81 | 'git-cat-file commit $commit >current' | |
82 | ||
83 | cat >expected <<\EOF | |
84 | author A U Thor <author@example.xz> | |
85 | committer A U Thor <author@example.xz> | |
86 | EOF | |
87 | test_expect_success \ | |
88 | 'verify old AUTHOR variables were used correctly in commit' \ | |
368da625 | 89 | 'sed -ne '\''/^\(author\)/s|>.*|>|p'\'' -e'\''/^\(committer\)/s|>.*|>|p'\''\ current > out && cmp out expected' |
947adb27 JH |
90 | |
91 | unset GIT_DIR | |
92 | test_expect_success \ | |
93 | 'git-init-db without GIT_DIR' \ | |
94 | 'git-init-db && test -d .git && test -d .git/objects/ef' | |
95 | ||
96 | SHA1_FILE_DIRECTORIES=.svn/objects | |
97 | export SHA1_FILE_DIRECTORIES | |
98 | ||
99 | test_expect_success \ | |
100 | 'using SHA1_FILE_DIRECTORIES with git-ls-tree' \ | |
101 | 'git-ls-tree $commit && git-ls-tree $tree' | |
102 | ||
103 | GIT_AUTHOR_DATE='Sat May 14 12:00:00 2005 -0000' | |
104 | GIT_AUTHOR_EMAIL='rohtua@example.xz' | |
105 | GIT_AUTHOR_NAME='R O Htua' | |
106 | GIT_COMMITTER_EMAIL='rohtua@example.xz' | |
107 | GIT_COMMITTER_NAME='R O Htua' | |
108 | export_them | |
109 | ||
110 | sedScript='s|\(..\)|.git/objects/\1/|' | |
111 | test_expect_success \ | |
112 | 'using new author variables with git-commit-tree' \ | |
113 | 'commit2=$(echo foo | git-commit-tree $tree) && | |
114 | test -f $(echo "$commit2" | sed -e "$sedScript")' | |
115 | ||
116 | GIT_ALTERNATE_OBJECT_DIRECTORIES=.git/objects | |
117 | GIT_DIR=nowhere | |
118 | export GIT_DIR GIT_ALTERNATE_OBJECT_DIRECTORIES | |
119 | ||
120 | test_expect_success \ | |
121 | 'git-cat-file with GIT_DIR and GIT_ALTERNATE_OBJECT_DIRECTORIES' \ | |
122 | 'git-cat-file commit $commit2 >current' | |
123 | ||
124 | cat >expected <<\EOF | |
125 | author R O Htua <rohtua@example.xz> | |
126 | committer R O Htua <rohtua@example.xz> | |
127 | EOF | |
128 | test_expect_success \ | |
129 | 'verify new AUTHOR variables were used correctly in commit.' \ | |
368da625 | 130 | 'sed -ne '\''/^\(author\)/s|>.*|>|p'\'' -e'\''/^\(committer\)/s|>.*|>|p'\''\ current > out && cmp out expected' |
947adb27 JH |
131 | |
132 | test_done |