2016-02-09 12:52:38 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
. "test/testlib.sh"
|
|
|
|
|
2016-02-12 14:49:56 +00:00
|
|
|
ensure_git_version_isnt $VERSION_LOWER "2.2.0"
|
|
|
|
|
2016-02-09 12:52:38 +00:00
|
|
|
begin_test "clone"
|
|
|
|
(
|
|
|
|
set -e
|
|
|
|
|
|
|
|
reponame="$(basename "$0" ".sh")"
|
|
|
|
setup_remote_repo "$reponame"
|
|
|
|
clone_repo "$reponame" repo
|
|
|
|
|
|
|
|
git lfs track "*.dat" 2>&1 | tee track.log
|
|
|
|
grep "Tracking \*.dat" track.log
|
|
|
|
|
|
|
|
# generate some test data & commits with random LFS data
|
|
|
|
echo "[
|
|
|
|
{
|
|
|
|
\"CommitDate\":\"$(get_date -10d)\",
|
|
|
|
\"Files\":[
|
|
|
|
{\"Filename\":\"file1.dat\",\"Size\":100},
|
|
|
|
{\"Filename\":\"file2.dat\",\"Size\":75}]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
\"CommitDate\":\"$(get_date -7d)\",
|
|
|
|
\"Files\":[
|
|
|
|
{\"Filename\":\"file1.dat\",\"Size\":110},
|
|
|
|
{\"Filename\":\"file3.dat\",\"Size\":66},
|
|
|
|
{\"Filename\":\"file4.dat\",\"Size\":23}]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
\"CommitDate\":\"$(get_date -10d)\",
|
|
|
|
\"Files\":[
|
|
|
|
{\"Filename\":\"file5.dat\",\"Size\":120},
|
|
|
|
{\"Filename\":\"file6.dat\",\"Size\":30}]
|
|
|
|
}
|
|
|
|
]" | lfstest-testutils addcommits
|
|
|
|
|
|
|
|
git push origin master
|
|
|
|
|
|
|
|
# Now clone again, test specific clone dir
|
|
|
|
cd "$TRASHDIR"
|
|
|
|
|
|
|
|
newclonedir="testclone1"
|
|
|
|
git lfs clone "$GITSERVER/$reponame" "$newclonedir" 2>&1 | tee lfsclone.log
|
|
|
|
grep "Cloning into" lfsclone.log
|
|
|
|
grep "Git LFS:" lfsclone.log
|
|
|
|
# should be no filter errors
|
|
|
|
[ ! $(grep "filter" lfsclone.log) ]
|
|
|
|
[ ! $(grep "error" lfsclone.log) ]
|
|
|
|
# should be cloned into location as per arg
|
|
|
|
[ -d "$newclonedir" ]
|
|
|
|
|
|
|
|
# check a few file sizes to make sure pulled
|
|
|
|
pushd "$newclonedir"
|
|
|
|
[ $(wc -c < "file1.dat") -eq 110 ]
|
|
|
|
[ $(wc -c < "file2.dat") -eq 75 ]
|
|
|
|
[ $(wc -c < "file3.dat") -eq 66 ]
|
|
|
|
popd
|
|
|
|
# Now check clone with implied dir
|
|
|
|
rm -rf "$reponame"
|
|
|
|
git lfs clone "$GITSERVER/$reponame" 2>&1 | tee lfsclone.log
|
|
|
|
grep "Cloning into" lfsclone.log
|
|
|
|
grep "Git LFS:" lfsclone.log
|
|
|
|
# should be no filter errors
|
|
|
|
[ ! $(grep "filter" lfsclone.log) ]
|
|
|
|
[ ! $(grep "error" lfsclone.log) ]
|
|
|
|
# clone location should be implied
|
|
|
|
[ -d "$reponame" ]
|
|
|
|
pushd "$reponame"
|
|
|
|
[ $(wc -c < "file1.dat") -eq 110 ]
|
|
|
|
[ $(wc -c < "file2.dat") -eq 75 ]
|
|
|
|
[ $(wc -c < "file3.dat") -eq 66 ]
|
|
|
|
popd
|
|
|
|
|
|
|
|
)
|
|
|
|
end_test
|
|
|
|
|