2018-11-26 19:57:26 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
. "$(dirname "$0")/testlib.sh"
|
|
|
|
|
|
|
|
begin_test "macros"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
reponame="$(basename "$0" ".sh")"
|
|
|
|
clone_repo "$reponame" repo
|
|
|
|
|
|
|
|
mkdir dir
|
|
|
|
printf '[attr]lfs filter=lfs diff=lfs merge=lfs -text\n*.dat lfs\n' \
|
|
|
|
> .gitattributes
|
|
|
|
printf '[attr]lfs2 filter=lfs diff=lfs merge=lfs -text\n*.bin lfs2\n' \
|
|
|
|
> dir/.gitattributes
|
|
|
|
git add .gitattributes dir
|
|
|
|
git commit -m 'initial import'
|
|
|
|
|
|
|
|
contents="some data"
|
|
|
|
printf "$contents" > foo.dat
|
|
|
|
git add *.dat
|
|
|
|
git commit -m 'foo.dat'
|
|
|
|
assert_local_object "$(calc_oid "$contents")" 9
|
|
|
|
|
|
|
|
contents2="other data"
|
|
|
|
printf "$contents2" > dir/foo.bin
|
|
|
|
git add dir
|
|
|
|
git commit -m 'foo.bin'
|
|
|
|
refute_local_object "$(calc_oid "$contents2")"
|
|
|
|
|
|
|
|
git lfs track '*.dat' 2>&1 | tee track.log
|
|
|
|
grep '"*.dat" already supported' track.log
|
|
|
|
|
|
|
|
git lfs track 'dir/*.bin' 2>&1 | tee track.log
|
|
|
|
! grep '"dir/*.bin" already supported' track.log
|
|
|
|
)
|
|
|
|
end_test
|
2018-11-26 21:18:03 +00:00
|
|
|
|
|
|
|
begin_test "macros with HOME"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
reponame="$(basename "$0" ".sh")-home"
|
|
|
|
clone_repo "$reponame" repo-home
|
|
|
|
|
|
|
|
mkdir -p "$HOME/.config/git"
|
|
|
|
printf '[attr]lfs filter=lfs diff=lfs merge=lfs -text\n*.dat lfs\n' \
|
|
|
|
> "$HOME/.config/git/attributes"
|
|
|
|
|
|
|
|
contents="some data"
|
|
|
|
printf "$contents" > foo.dat
|
|
|
|
git add *.dat
|
|
|
|
git commit -m 'foo.dat'
|
|
|
|
assert_local_object "$(calc_oid "$contents")" 9
|
|
|
|
|
|
|
|
git lfs track 2>&1 | tee track.log
|
|
|
|
grep '*.dat' track.log
|
|
|
|
)
|
|
|
|
end_test
|
2018-11-26 21:26:34 +00:00
|
|
|
|
|
|
|
begin_test "macros with HOME split"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
reponame="$(basename "$0" ".sh")-home-split"
|
|
|
|
clone_repo "$reponame" repo-home-split
|
|
|
|
|
|
|
|
mkdir -p "$HOME/.config/git"
|
|
|
|
printf '[attr]lfs filter=lfs diff=lfs merge=lfs -text\n' \
|
|
|
|
> "$HOME/.config/git/attributes"
|
|
|
|
|
|
|
|
printf '*.dat lfs\n' > .gitattributes
|
|
|
|
git add .gitattributes
|
|
|
|
git commit -m 'initial import'
|
|
|
|
|
|
|
|
contents="some data"
|
|
|
|
printf "$contents" > foo.dat
|
|
|
|
git add *.dat
|
|
|
|
git commit -m 'foo.dat'
|
|
|
|
assert_local_object "$(calc_oid "$contents")" 9
|
|
|
|
|
|
|
|
git lfs track '*.dat' 2>&1 | tee track.log
|
|
|
|
grep '"*.dat" already supported' track.log
|
|
|
|
)
|
|
|
|
end_test
|