2015-07-30 02:37:31 +00:00
#!/usr/bin/env bash
2015-06-28 12:48:59 +00:00
. "test/testlib.sh"
begin_test "init again"
(
set -e
[ "git-lfs smudge %f" = " $( git config filter.lfs.smudge) " ]
[ "git-lfs clean %f" = " $( git config filter.lfs.clean) " ]
git lfs init
[ "git-lfs smudge %f" = " $( git config filter.lfs.smudge) " ]
[ "git-lfs clean %f" = " $( git config filter.lfs.clean) " ]
)
end_test
begin_test "init with old settings"
(
set -e
git config --global filter.lfs.smudge "git lfs smudge %f"
git config --global filter.lfs.clean "git lfs clean %f"
2015-07-06 23:12:31 +00:00
set +e
2015-06-28 12:48:59 +00:00
git lfs init 2> init.log
2015-07-06 23:12:31 +00:00
res = $?
set -e
[ " $res " = 2 ]
2015-06-28 12:48:59 +00:00
2015-09-04 16:29:38 +00:00
cat init.log
grep -E "(clean|smudge) attribute should be" init.log
2015-07-07 14:43:59 +00:00
[ ` grep -c "(MISSING)" init.log` = "0" ]
2015-06-28 12:48:59 +00:00
[ "git lfs smudge %f" = " $( git config filter.lfs.smudge) " ]
[ "git lfs clean %f" = " $( git config filter.lfs.clean) " ]
2015-07-06 23:12:31 +00:00
git lfs init --force
[ "git-lfs smudge %f" = " $( git config filter.lfs.smudge) " ]
[ "git-lfs clean %f" = " $( git config filter.lfs.clean) " ]
2015-06-28 12:48:59 +00:00
)
end_test
2015-08-13 23:13:00 +00:00
begin_test "init updates repo hooks"
(
set -e
mkdir init-repo-hooks
cd init-repo-hooks
git init
pre_push_hook = " #!/bin/sh
2015-08-14 15:59:16 +00:00
command -v git-lfs >/dev/null 2>& 1 || { echo >& 2 \" \\ nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting .git/hooks/pre-push.\\ n\" ; exit 2; }
2015-08-13 23:13:00 +00:00
git lfs pre-push \" \$ @\" "
[ " Updated pre-push hook.
Git LFS initialized." = " $( git lfs init) " ]
[ " $pre_push_hook " = " $( cat .git/hooks/pre-push) " ]
# replace old hook
# more-comprehensive hook update tests are in test-update.sh
echo " #!/bin/sh
git lfs push --stdin \$ *" > .git/hooks/pre-push
[ " Updated pre-push hook.
Git LFS initialized." = " $( git lfs init) " ]
[ " $pre_push_hook " = " $( cat .git/hooks/pre-push) " ]
# don't replace unexpected hook
expected = " Hook already exists: pre-push
test
Run \` git lfs update --force\` to overwrite this hook.
Git LFS initialized."
echo "test" > .git/hooks/pre-push
[ "test" = " $( cat .git/hooks/pre-push) " ]
[ " $expected " = " $( git lfs init 2>& 1) " ]
[ "test" = " $( cat .git/hooks/pre-push) " ]
# force replace unexpected hook
[ " Updated pre-push hook.
Git LFS initialized." = " $( git lfs init --force) " ]
[ " $pre_push_hook " = " $( cat .git/hooks/pre-push) " ]
2015-09-17 22:35:04 +00:00
2015-10-19 20:33:43 +00:00
[ -n " $LFS_DOCKER " ] && exit 0
2015-09-30 23:38:13 +00:00
2015-09-17 22:35:04 +00:00
echo "test with bare repository"
cd ..
git clone --mirror init-repo-hooks bare-init-repo-hooks
cd bare-init-repo-hooks
2015-09-17 22:37:25 +00:00
git lfs env
2015-09-17 22:35:04 +00:00
git lfs init
2015-09-17 22:37:25 +00:00
ls -al hooks
2015-09-17 22:35:04 +00:00
[ " $pre_push_hook " = " $( cat hooks/pre-push) " ]
2015-08-13 23:13:00 +00:00
)
end_test
2015-09-23 17:58:16 +00:00
2015-10-19 20:47:18 +00:00
begin_test "init outside repository directory"
(
set -e
if [ -d "hooks" ] ; then
ls -al
echo "hooks dir exists"
exit 1
fi
git lfs init 2>& 1 > check.log
if [ -d "hooks" ] ; then
ls -al
echo "hooks dir exists"
exit 1
fi
cat check.log
# doesn't print this because being in a git repo is not necessary for init
[ " $( grep -c "Not in a git repository" check.log) " = "0" ]
)
end_test
2015-09-25 16:43:06 +00:00
begin_test "init --skip-smudge"
2015-09-23 18:20:30 +00:00
(
set -e
git lfs init
[ "git-lfs clean %f" = " $( git config filter.lfs.clean) " ]
[ "git-lfs smudge %f" = " $( git config filter.lfs.smudge) " ]
2015-09-23 19:43:04 +00:00
git lfs init --skip-smudge
2015-09-23 18:20:30 +00:00
[ "git-lfs clean %f" = " $( git config filter.lfs.clean) " ]
2015-09-23 19:43:04 +00:00
[ "git-lfs smudge --skip %f" = " $( git config filter.lfs.smudge) " ]
2015-09-23 18:20:30 +00:00
git lfs init --force
[ "git-lfs clean %f" = " $( git config filter.lfs.clean) " ]
[ "git-lfs smudge %f" = " $( git config filter.lfs.smudge) " ]
)
end_test
2015-09-23 17:58:16 +00:00
begin_test "init --local"
(
set -e
# old values that should be ignored by `init --local`
git config --global filter.lfs.smudge "git lfs smudge %f"
git config --global filter.lfs.clean "git lfs clean %f"
mkdir init-local-repo
cd init-local-repo
git init
git lfs init --local
[ "git-lfs clean %f" = " $( git config filter.lfs.clean) " ]
[ "git-lfs clean %f" = " $( git config --local filter.lfs.clean) " ]
[ "git lfs clean %f" = " $( git config --global filter.lfs.clean) " ]
)
end_test
begin_test "init --local outside repository"
(
set +e
2015-09-30 23:43:43 +00:00
2015-10-19 20:33:43 +00:00
[ -n " $LFS_DOCKER " ] && exit 0
2015-09-30 23:43:43 +00:00
2015-09-23 17:58:16 +00:00
git lfs init --local 2> err.log
res = $?
[ "Not in a git repository." = " $( cat err.log) " ]
[ "0" != " $res " ]
)
end_test