git-lfs/test/test-update.sh

59 lines
1.5 KiB
Bash
Raw Normal View History

2015-05-26 21:49:04 +00:00
#!/bin/sh
. "test/testlib.sh"
2015-05-26 22:08:03 +00:00
begin_test "update"
2015-05-26 21:49:04 +00:00
(
set -e
pre_push_hook="#!/bin/sh
2015-05-27 21:40:16 +00:00
command -v git-lfs >/dev/null 2>&1 || { echo >&2 \"\\nThis repository has been set up with Git LFS but Git LFS is not installed.\\n\"; exit 0; }
2015-05-26 21:49:04 +00:00
git lfs pre-push \"\$@\""
mkdir without-pre-push
cd without-pre-push
git init
[ "Updated pre-push hook" = "$(git lfs update)" ]
[ "$pre_push_hook" = "$(cat .git/hooks/pre-push)" ]
2015-05-26 21:49:04 +00:00
# run it again
[ "Updated pre-push hook" = "$(git lfs update)" ]
[ "$pre_push_hook" = "$(cat .git/hooks/pre-push)" ]
2015-05-26 21:49:04 +00:00
# replace old hook 1
echo "#!/bin/sh
git lfs push --stdin \$*" > .git/hooks/pre-push
[ "Updated pre-push hook" = "$(git lfs update)" ]
[ "$pre_push_hook" = "$(cat .git/hooks/pre-push)" ]
2015-05-26 21:49:04 +00:00
# replace old hook 2
echo "#!/bin/sh
git lfs push --stdin \"\$@\"" > .git/hooks/pre-push
[ "Updated pre-push hook" = "$(git lfs update)" ]
[ "$pre_push_hook" = "$(cat .git/hooks/pre-push)" ]
2015-05-26 21:49:04 +00:00
2015-05-27 21:40:16 +00:00
# replace old hook 3
echo "#!/bin/sh
git lfs pre-push \"\$@\"" > .git/hooks/pre-push
[ "Updated pre-push hook" = "$(git lfs update)" ]
[ "$pre_push_hook" = "$(cat .git/hooks/pre-push)" ]
2015-05-26 21:49:04 +00:00
# don't replace unexpected hook
echo "test" > .git/hooks/pre-push
expected="Hook already exists: pre-push
test
Run \`git lfs update --force\` to overwrite this hook."
[ "$expected" = "$(git lfs update 2>&1)" ]
[ "test" = "$(cat .git/hooks/pre-push)" ]
2015-05-26 21:49:04 +00:00
# force replace unexpected hook
[ "Updated pre-push hook" = "$(git lfs update --force)" ]
[ "$pre_push_hook" = "$(cat .git/hooks/pre-push)" ]
2015-05-26 21:49:04 +00:00
)
end_test