archive: rename attribute specfile to export-subst

As suggested by Junio and Johannes, change the name of the former
attribute specfile to export-subst to indicate its function rather
than purpose and to make clear that it is not applied to working tree
files.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
René Scharfe 2007-09-06 18:51:11 +02:00 committed by Junio C Hamano
parent df4a394f91
commit 38c9c9b798
3 changed files with 19 additions and 19 deletions

View File

@ -424,10 +424,10 @@ frotz unspecified
Creating an archive Creating an archive
~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~


`specfile` `export-subst`
^^^^^^^^^^ ^^^^^^^^^^^^^^


If the attribute `specfile` is set for a file then git will expand If the attribute `export-subst` is set for a file then git will expand
several placeholders when adding this file to an archive. The several placeholders when adding this file to an archive. The
expansion depends on the availability of a commit ID, i.e. if expansion depends on the availability of a commit ID, i.e. if
gitlink:git-archive[1] has been given a tree instead of a commit or a gitlink:git-archive[1] has been given a tree instead of a commit or a

View File

@ -81,7 +81,7 @@ static int run_remote_archiver(const char *remote, int argc,
return !!rv; return !!rv;
} }


static void *format_specfile(const struct commit *commit, const char *format, static void *format_subst(const struct commit *commit, const char *format,
unsigned long *sizep) unsigned long *sizep)
{ {
unsigned long len = *sizep, result_len = 0; unsigned long len = *sizep, result_len = 0;
@ -131,22 +131,22 @@ static void *convert_to_archive(const char *path,
const void *src, unsigned long *sizep, const void *src, unsigned long *sizep,
const struct commit *commit) const struct commit *commit)
{ {
static struct git_attr *attr_specfile; static struct git_attr *attr_export_subst;
struct git_attr_check check[1]; struct git_attr_check check[1];


if (!commit) if (!commit)
return NULL; return NULL;


if (!attr_specfile) if (!attr_export_subst)
attr_specfile = git_attr("specfile", 8); attr_export_subst = git_attr("export-subst", 12);


check[0].attr = attr_specfile; check[0].attr = attr_export_subst;
if (git_checkattr(path, ARRAY_SIZE(check), check)) if (git_checkattr(path, ARRAY_SIZE(check), check))
return NULL; return NULL;
if (!ATTR_TRUE(check[0].value)) if (!ATTR_TRUE(check[0].value))
return NULL; return NULL;


return format_specfile(commit, src, sizep); return format_subst(commit, src, sizep);
} }


void *sha1_file_to_archive(const char *path, const unsigned char *sha1, void *sha1_file_to_archive(const char *path, const unsigned char *sha1,

View File

@ -28,7 +28,7 @@ commit id embedding:
TAR=${TAR:-tar} TAR=${TAR:-tar}
UNZIP=${UNZIP:-unzip} UNZIP=${UNZIP:-unzip}


SPECFILEFORMAT=%H%n SUBSTFORMAT=%H%n


test_expect_success \ test_expect_success \
'populate workdir' \ 'populate workdir' \
@ -36,7 +36,7 @@ test_expect_success \
echo simple textfile >a/a && echo simple textfile >a/a &&
mkdir a/bin && mkdir a/bin &&
cp /bin/sh a/bin && cp /bin/sh a/bin &&
printf "A\$Format:%s\$O" "$SPECFILEFORMAT" >a/specfile && printf "A\$Format:%s\$O" "$SUBSTFORMAT" >a/substfile &&
ln -s a a/l1 && ln -s a a/l1 &&
(p=long_path_to_a_file && cd a && (p=long_path_to_a_file && cd a &&
for depth in 1 2 3 4 5; do mkdir $p && cd $p; done && for depth in 1 2 3 4 5; do mkdir $p && cd $p; done &&
@ -108,20 +108,20 @@ test_expect_success \
'diff -r a c/prefix/a' 'diff -r a c/prefix/a'


test_expect_success \ test_expect_success \
'create an archive with a specfile' \ 'create an archive with a substfile' \
'echo specfile specfile >a/.gitattributes && 'echo substfile export-subst >a/.gitattributes &&
git archive HEAD >f.tar && git archive HEAD >f.tar &&
rm a/.gitattributes' rm a/.gitattributes'


test_expect_success \ test_expect_success \
'extract specfile' \ 'extract substfile' \
'(mkdir f && cd f && $TAR xf -) <f.tar' '(mkdir f && cd f && $TAR xf -) <f.tar'


test_expect_success \ test_expect_success \
'validate specfile contents' \ 'validate substfile contents' \
'git log --max-count=1 "--pretty=format:A${SPECFILEFORMAT}O" HEAD \ 'git log --max-count=1 "--pretty=format:A${SUBSTFORMAT}O" HEAD \
>f/a/specfile.expected && >f/a/substfile.expected &&
diff f/a/specfile.expected f/a/specfile' diff f/a/substfile.expected f/a/substfile'


test_expect_success \ test_expect_success \
'git archive --format=zip' \ 'git archive --format=zip' \