3 . "$(dirname "$0")/testlib.sh"
5 reponame="$(basename "$0" ".sh")"
7 contents_oid=$(calc_oid "$contents")
9 begin_test "init fetch unclean paths"
13 setup_remote_repo $reponame
14 clone_repo $reponame repo
16 git lfs track "*.dat" 2>&1 | tee track.log
17 grep "Tracking \"\*.dat\"" track.log
20 printf "$contents" > dir/a.dat
23 git add .gitattributes
24 git commit -m "add dir/a.dat" 2>&1 | tee commit.log
25 grep "master (root-commit)" commit.log
26 grep "2 files changed" commit.log
27 grep "create mode 100644 dir/a.dat" commit.log
28 grep "create mode 100644 .gitattributes" commit.log
30 [ "a" = "$(cat dir/a.dat)" ]
32 assert_local_object "$contents_oid" 1
33 refute_server_object "$contents_oid"
35 git push origin master 2>&1 | tee push.log
36 grep "Uploading LFS objects: 100% (1/1), 1 B" push.log
37 grep "master -> master" push.log
39 assert_server_object "$reponame" "$contents_oid"
41 # This clone is used for subsequent tests
42 clone_repo "$reponame" clone
46 begin_test "fetch unclean paths with include filter in gitconfig"
50 rm -rf .git/lfs/objects
52 git config "lfs.fetchinclude" "dir/"
54 assert_local_object "$contents_oid" 1
58 begin_test "fetch unclean paths with exclude filter in gitconfig"
62 rm -rf .git/lfs/objects
63 git config --unset "lfs.fetchinclude"
65 git config "lfs.fetchexclude" "dir/"
67 refute_local_object "$contents_oid"
71 begin_test "fetch unclean paths with include filter in cli"
75 rm -rf .git/lfs/objects
77 git config --unset "lfs.fetchexclude"
79 rm -rf .git/lfs/objects
80 git lfs fetch -I="dir/"
81 assert_local_object "$contents_oid" 1
85 begin_test "fetch unclean paths with exclude filter in cli"
89 rm -rf .git/lfs/objects
91 git lfs fetch -X="dir/"
92 refute_local_object "$contents_oid"