git-lfs/test/test-ls-files.sh
Rick Olson 2082b26ce7 tweak ls-files output
* simpler, easier to chop up with unix tools
* show LFS OID, not Git SHA1
* only scan the tree, not the refs
* show whether files are LFS pointers or full objects
2015-09-25 10:32:30 -06:00

112 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
. "test/testlib.sh"
begin_test "ls-files"
(
set -e
mkdir repo
cd repo
git init
git lfs track "*.dat" | grep "Tracking \*.dat"
echo "some data" > some.dat
echo "some text" > some.txt
echo "missing" > missing.dat
git add missing.dat
git commit -m "add missing file"
[ "6bbd052ab0 * missing.dat" = "$(git lfs ls-files)" ]
git rm missing.dat
git add some.dat some.txt
git commit -m "added some files, removed missing one"
git lfs ls-files | tee ls.log
grep some.dat ls.log
[ `wc -l < ls.log` = 1 ]
)
end_test
begin_test "ls-files: outside git repository"
(
set +e
git lfs ls-files 2>&1 > ls-files.log
res=$?
set -e
if [ "$res" = "0" ]; then
echo "Passes because $GIT_LFS_TEST_DIR is unset."
exit 0
fi
[ "$res" = "128" ]
grep "Not in a git repository" ls-files.log
)
end_test
begin_test "ls-files: with zero files"
(
set -e
mkdir empty
cd empty
git init
git lfs track "*.dat"
git add .gitattributes
set +e
git lfs ls-files 2> ls-files.log
res=$?
set -e
cat ls-files.log
[ "$res" = "2" ]
grep "Git can't resolve ref:" ls-files.log
git commit -m "initial commit"
[ "$(git lfs ls-files)" = "" ]
)
end_test
begin_test "ls-files: show duplicate files"
(
set -e
mkdir dupRepoShort
cd dupRepoShort
git init
git lfs track "*.tgz" | grep "Tracking \*.tgz"
echo "test content" > one.tgz
echo "test content" > two.tgz
git add one.tgz
git add two.tgz
git commit -m "add duplicate files"
expected="$(echo "a1fff0ffef * one.tgz
a1fff0ffef * two.tgz")"
[ "$expected" = "$(git lfs ls-files)" ]
)
end_test
begin_test "ls-files: show duplicate files with long OID"
(
set -e
mkdir dupRepoLong
cd dupRepoLong
git init
git lfs track "*.tgz" | grep "Tracking \*.tgz"
echo "test content" > one.tgz
echo "test content" > two.tgz
git add one.tgz
git add two.tgz
git commit -m "add duplicate files with long OID"
expected="$(echo "a1fff0ffefb9eace7230c24e50731f0a91c62f9cefdfe77121c2f607125dffae * one.tgz
a1fff0ffefb9eace7230c24e50731f0a91c62f9cefdfe77121c2f607125dffae * two.tgz")"
[ "$expected" = "$(git lfs ls-files --long)" ]
)
end_test