#!/usr/bin/env bash . "test/testlib.sh" ensure_git_version_isnt $VERSION_LOWER "2.2.0" 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