t / t5400-send-pack.shon commit t3100: add ls-tree -t and -d tests. (57ae0d0)
   1#!/bin/sh
   2#
   3# Copyright (c) 2005 Junio C Hamano
   4#
   5
   6test_description='See why rewinding head breaks send-pack
   7
   8'
   9. ./test-lib.sh
  10
  11touch cpio-test
  12test_expect_success 'working cpio' 'echo cpio-test | cpio -o > /dev/null'
  13
  14cnt='1'
  15test_expect_success setup '
  16        tree=$(git-write-tree) &&
  17        commit=$(echo "Commit #0" | git-commit-tree $tree) &&
  18        zero=$commit &&
  19        parent=$zero &&
  20        for i in $cnt
  21        do
  22            sleep 1 &&
  23            commit=$(echo "Commit #$i" | git-commit-tree $tree -p $parent) &&
  24            parent=$commit || return 1
  25        done &&
  26        git-update-ref HEAD "$commit" &&
  27        git-clone -l ./. victim &&
  28        cd victim &&
  29        git-log &&
  30        cd .. &&
  31        git-update-ref HEAD "$zero" &&
  32        parent=$zero &&
  33        for i in $cnt
  34        do
  35            sleep 1 &&
  36            commit=$(echo "Rebase #$i" | git-commit-tree $tree -p $parent) &&
  37            parent=$commit || return 1
  38        done &&
  39        git-update-ref HEAD "$commit" &&
  40        echo Rebase &&
  41        git-log'
  42
  43test_expect_success \
  44        'pushing rewound head should not barf but require --force' ' 
  45        # should not fail but refuse to update.
  46        git-send-pack ./victim/.git/ master &&
  47        if cmp victim/.git/refs/heads/master .git/refs/heads/master
  48        then
  49                # should have been left as it was!
  50                false
  51        else
  52                true
  53        fi &&
  54        # this should update
  55        git-send-pack --force ./victim/.git/ master &&
  56        cmp victim/.git/refs/heads/master .git/refs/heads/master
  57'
  58
  59test_done