print_sha1_ellipsis: introduce helper

Introduce a helper print_sha1_ellipsis() that pays attention to the
GIT_PRINT_SHA1_ELLIPSIS environment variable, and prepare the tests to
unconditionally set it for the test pieces that will be broken once the code
stops showing the extra dots by default.

The removal of these dots is merely a plan at this step and has not happened
yet but soon will.

Document GIT_PRINT_SHA1_ELLIPSIS.

Signed-off-by: Ann T Ropea <bedhanger@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ann T Ropea 2017-12-03 22:27:39 +01:00 коммит произвёл Junio C Hamano
Родитель f61d89e100
Коммит a2cd709de3
6 изменённых файлов: 33 добавлений и 3 удалений

Просмотреть файл

@ -709,6 +709,15 @@ of clones and fetches.
the background which do not want to cause lock contention with
other operations on the repository. Defaults to `1`.
`GIT_PRINT_SHA1_ELLIPSIS` (deprecated)::
If set to `yes`, print an ellipsis following an
(abbreviated) SHA-1 value. This affects indications of
detached HEADs (linkgit:git-checkout[1]) and the raw
diff output (linkgit:git-diff[1]). Printing an
ellipsis in the cases mentioned is no longer considered
adequate and support for it is likely to be removed in the
foreseeable future (along with the variable).
Discussion[[Discussion]]
------------------------

Просмотреть файл

@ -1942,4 +1942,10 @@ void sleep_millisec(int millisec);
*/
void safe_create_dir(const char *dir, int share);
/*
* Should we print an ellipsis after an abbreviated SHA-1 value
* when doing diff-raw output or indicating a detached HEAD?
*/
extern int print_sha1_ellipsis(void);
#endif /* CACHE_H */

Просмотреть файл

@ -343,3 +343,18 @@ int use_optional_locks(void)
{
return git_env_bool(GIT_OPTIONAL_LOCKS_ENVIRONMENT, 1);
}
int print_sha1_ellipsis(void)
{
/*
* Determine if the calling environment contains the variable
* GIT_PRINT_SHA1_ELLIPSIS set to "yes".
*/
static int cached_result = -1; /* unknown */
if (cached_result < 0) {
const char *v = getenv("GIT_PRINT_SHA1_ELLIPSIS");
cached_result = (v && !strcasecmp(v, "yes"));
}
return cached_result;
}

Просмотреть файл

@ -19,7 +19,7 @@ test_expect_success 'setup: create subprojects' '
git update-index --add sub1 &&
git add sub2 &&
git commit -q -m "subprojects added" &&
git diff-tree --abbrev=5 HEAD^ HEAD |cut -d" " -f-3,5- >current &&
GIT_PRINT_SHA1_ELLIPSIS="yes" git diff-tree --abbrev=5 HEAD^ HEAD |cut -d" " -f-3,5- >current &&
git branch save HEAD &&
cat >expected <<-\EOF &&
:000000 160000 00000... A sub1

Просмотреть файл

@ -131,7 +131,7 @@ do
test_expect_success "git $cmd" '
{
echo "\$ git $cmd"
git $cmd |
GIT_PRINT_SHA1_ELLIPSIS="yes" git $cmd |
sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \
-e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/"
echo "\$"

Просмотреть файл

@ -876,7 +876,7 @@ test_expect_success 'L: verify internal tree sorting' '
EXPECT_END
git fast-import <input &&
git diff-tree --abbrev --raw L^ L >output &&
GIT_PRINT_SHA1_ELLIPSIS="yes" git diff-tree --abbrev --raw L^ L >output &&
test_cmp expect output
'