#!/usr/bin/env bash . "test/testlib.sh" begin_test "untrack" ( set -e # no need to setup a remote repo, since this test doesn't need to push or pull reponame="untrack" git init $reponame cd $reponame # track *.jpg once git lfs track "*.jpg" | grep "Tracking \"\*.jpg\"" echo "* annex.backend=SHA512E" >> .gitattributes git lfs untrack "*.jpg" expected="* annex.backend=SHA512E" [ "$expected" = "$(cat .gitattributes)" ] ) end_test begin_test "untrack outside git repo" ( set -e reponame="outside" mkdir $reponame cd $reponame git lfs untrack "*.foo" || { # this fails if it's run outside of a git repo using GIT_LFS_TEST_DIR # git itself returns an exit status of 128 # $ git show # fatal: Not a git repository (or any of the parent directories): .git # $ echo "$?" # 128 [ "$?" = "128" ] exit 0 } if [ -n "$GIT_LFS_TEST_DIR" ]; then echo "GIT_LFS_TEST_DIR should be set outside of any Git repository" exit 1 fi ) end_test begin_test "untrack removes escape sequences" ( set -e reponame="untrack-remove-escape-sequence" git init "$reponame" cd "$reponame" git lfs track " " | grep "Tracking \" \"" assert_attributes_count "[[:space:]]" "filter=lfs" 1 git lfs untrack " " | grep "Untracking \" \"" assert_attributes_count "[[:space:]]" "filter=lfs" 0 git lfs track "#" | grep "Tracking \"#\"" assert_attributes_count "\\#" "filter=lfs" 1 git lfs untrack "#" | grep "Untracking \"#\"" assert_attributes_count "\\#" "filter=lfs" 0 ) end_test