Imported Upstream version 2.5.0
[scm/test.git] / t / t-commit-delete-push.sh
1 #!/usr/bin/env bash
2
3 . "$(dirname "$0")/testlib.sh"
4
5 begin_test "commit, delete, then push"
6 (
7   set -e
8
9   reponame="$(basename "$0" ".sh")"
10   setup_remote_repo "$reponame"
11   clone_repo "$reponame" repo
12
13   git lfs track "*.dat"
14
15   deleted_oid=$(calc_oid "deleted\n")
16   echo "deleted" > deleted.dat
17   git add deleted.dat .gitattributes
18   git commit -m "add deleted file"
19
20   git lfs push origin master --dry-run | grep "push ee31ef227442936872744b50d3297385c08b40ffc7baeaf34a39e6d81d6cd9ee => deleted.dat"
21
22   assert_pointer "master" "deleted.dat" "$deleted_oid" 8
23
24   added_oid=$(calc_oid "added\n")
25   echo "added" > added.dat
26   git add added.dat
27   git commit -m "add file"
28
29   git lfs push origin master --dry-run | tee dryrun.log
30   grep "push ee31ef227442936872744b50d3297385c08b40ffc7baeaf34a39e6d81d6cd9ee => deleted.dat" dryrun.log
31   grep "push 3428719b7688c78a0cc8ba4b9e80b4e464c815fbccfd4b20695a15ffcefc22af => added.dat" dryrun.log
32
33   git rm deleted.dat
34   git commit -m "did not need deleted.dat after all"
35
36   git lfs push origin master --dry-run 2>&1 | tee dryrun.log
37   grep "push ee31ef227442936872744b50d3297385c08b40ffc7baeaf34a39e6d81d6cd9ee => deleted.dat" dryrun.log
38   grep "push 3428719b7688c78a0cc8ba4b9e80b4e464c815fbccfd4b20695a15ffcefc22af => added.dat" dryrun.log
39
40   git log
41   git push origin master 2>&1 > push.log || {
42     cat push.log
43     git lfs logs last
44     exit 1
45   }
46   grep "(2 of 2 files)" push.log | cat push.log
47
48   assert_server_object "$reponame" "$deleted_oid"
49   assert_server_object "$reponame" "$added_oid"
50 )
51 end_test