#!/bin/sh # # Copyright (c) 2005 Junio C Hamano # test_description='See why rewinding head breaks send-pack ' . ./test-lib.sh touch cpio-test test_expect_success 'working cpio' 'echo cpio-test | cpio -o > /dev/null' cnt='1' test_expect_success setup ' tree=$(git-write-tree) && commit=$(echo "Commit #0" | git-commit-tree $tree) && zero=$commit && parent=$zero && for i in $cnt do sleep 1 && commit=$(echo "Commit #$i" | git-commit-tree $tree -p $parent) && parent=$commit || return 1 done && git-update-ref HEAD "$commit" && git-clone -l ./. victim && cd victim && git-log && cd .. && git-update-ref HEAD "$zero" && parent=$zero && for i in $cnt do sleep 1 && commit=$(echo "Rebase #$i" | git-commit-tree $tree -p $parent) && parent=$commit || return 1 done && git-update-ref HEAD "$commit" && echo Rebase && git-log' test_expect_success \ 'pushing rewound head should not barf but require --force' ' # should not fail but refuse to update. if git-send-pack ./victim/.git/ master then # now it should fail with Pasky patch echo >&2 Gaah, it should have failed. false else echo >&2 Thanks, it correctly failed. true fi && if cmp victim/.git/refs/heads/master .git/refs/heads/master then # should have been left as it was! false else true fi && # this should update git-send-pack --force ./victim/.git/ master && cmp victim/.git/refs/heads/master .git/refs/heads/master ' test_done