Imported Upstream version 2.5.1
[scm/test.git] / t / t-fetch-refspec.sh
1 #!/usr/bin/env bash
2
3 . "$(dirname "$0")/testlib.sh"
4
5 begin_test "fetch with good ref"
6 (
7   set -e
8
9   reponame="fetch-master-branch-required"
10   setup_remote_repo "$reponame"
11   clone_repo "$reponame" "$reponame"
12
13   git lfs track "*.dat"
14   echo "a" > a.dat
15   git add .gitattributes a.dat
16   git commit -m "add a.dat"
17
18   git push origin master
19
20   # $ echo "a" | shasum -a 256
21   oid="87428fc522803d31065e7bce3cf03fe475096631e5e07bbd7a0fde60c4cf25c7"
22   assert_local_object "$oid" 2
23   assert_server_object "$reponame" "$oid" "refs/heads/master"
24
25   rm -rf .git/lfs/objects
26   git lfs fetch --all
27   assert_local_object "$oid" 2
28 )
29 end_test
30
31 begin_test "fetch with tracked ref"
32 (
33   set -e
34
35   reponame="fetch-tracked-branch-required"
36   setup_remote_repo "$reponame"
37   clone_repo "$reponame" "$reponame"
38
39   git lfs track "*.dat"
40   echo "a" > a.dat
41   git add .gitattributes a.dat
42   git commit -m "add a.dat"
43
44   git push origin master:tracked
45
46   # $ echo "a" | shasum -a 256
47   oid="87428fc522803d31065e7bce3cf03fe475096631e5e07bbd7a0fde60c4cf25c7"
48   assert_local_object "$oid" 2
49   assert_server_object "$reponame" "$oid" "refs/heads/tracked"
50
51   rm -rf .git/lfs/objects
52   git config push.default upstream
53   git config branch.master.merge refs/heads/tracked
54   git lfs fetch --all
55   assert_local_object "$oid" 2
56 )
57 end_test
58
59 begin_test "fetch with bad ref"
60 (
61   set -e
62
63   reponame="fetch-other-branch-required"
64   setup_remote_repo "$reponame"
65   clone_repo "$reponame" "$reponame"
66
67   git lfs track "*.dat"
68   echo "a" > a.dat
69   git add .gitattributes a.dat
70   git commit -m "add a.dat"
71
72   git push origin master:other
73
74   # $ echo "a" | shasum -a 256
75   oid="87428fc522803d31065e7bce3cf03fe475096631e5e07bbd7a0fde60c4cf25c7"
76   assert_local_object "$oid" 2
77   assert_server_object "$reponame" "$oid" "refs/heads/other"
78
79   rm -rf .git/lfs/objects
80   GIT_CURL_VERBOSE=1 git lfs fetch --all 2>&1 | tee fetch.log
81   if [ "0" -eq "${PIPESTATUS[0]}" ]; then
82     echo >&2 "fatal: expected 'git lfs fetch' to fail"
83     exit 1
84   fi
85
86   grep 'Expected ref "refs/heads/other", got "refs/heads/master"' fetch.log
87 )
88 end_test