t / t5300-pack-object.shon commit git-init-db: create "pack" subdirectory under objects (f49fb35)
   1#!/bin/sh
   2#
   3# Copyright (c) 2005 Junio C Hamano
   4#
   5
   6test_description='git-pack-object
   7
   8'
   9. ./test-lib.sh
  10
  11TRASH=`pwd`
  12
  13test_expect_success \
  14    'setup' \
  15    'rm -f .git/index*
  16     for i in a b c
  17     do
  18             dd if=/dev/zero bs=4k count=1 | tr "\\0" $i >$i &&
  19             git-update-cache --add $i || exit
  20     done &&
  21     cat c >d && echo foo >>d && git-update-cache --add d &&
  22     tree=`git-write-tree` &&
  23     commit=`git-commit-tree $tree </dev/null` && {
  24         echo $tree &&
  25         echo $commit &&
  26         git-ls-tree $tree | sed -e "s/.* \\([0-9a-f]*\\)       .*/\\1/"
  27     } >obj-list && {
  28         git-diff-tree --root -p $commit &&
  29         while read object
  30         do
  31            t=`git-cat-file -t $object` &&
  32            git-cat-file $t $object || exit 1
  33         done <obj-list
  34     } >expect'
  35
  36test_expect_success \
  37    'pack without delta' \
  38    'git-pack-objects --window=0 test-1 <obj-list'
  39
  40rm -fr .git2
  41mkdir .git2
  42
  43test_expect_success \
  44    'unpack without delta' \
  45    'GIT_OBJECT_DIRECTORY=.git2/objects &&
  46     export GIT_OBJECT_DIRECTORY &&
  47     git-init-db &&
  48     git-unpack-objects test-1'
  49
  50unset GIT_OBJECT_DIRECTORY
  51cd $TRASH/.git2
  52
  53test_expect_success \
  54    'check unpack without delta' \
  55    '(cd ../.git && find objects -type f -print) |
  56     while read path
  57     do
  58         cmp $path ../.git/$path || {
  59             echo $path differs.
  60             exit 1
  61         }
  62     done'
  63cd $TRASH
  64
  65test_expect_success \
  66    'pack with delta' \
  67    'pwd &&
  68     git-pack-objects test-2 <obj-list'
  69
  70rm -fr .git2
  71mkdir .git2
  72
  73test_expect_success \
  74    'unpack with delta' \
  75    'GIT_OBJECT_DIRECTORY=.git2/objects &&
  76     export GIT_OBJECT_DIRECTORY &&
  77     git-init-db &&
  78     git-unpack-objects test-2'
  79
  80unset GIT_OBJECT_DIRECTORY
  81cd $TRASH/.git2
  82test_expect_success \
  83    'check unpack with delta' \
  84    '(cd ../.git && find objects -type f -print) |
  85     while read path
  86     do
  87         cmp $path ../.git/$path || {
  88             echo $path differs.
  89             exit 1
  90         }
  91     done'
  92cd $TRASH
  93
  94rm -fr .git2
  95mkdir .git2
  96
  97test_expect_success \
  98    'use packed objects' \
  99    'GIT_OBJECT_DIRECTORY=.git2/objects &&
 100     export GIT_OBJECT_DIRECTORY &&
 101     git-init-db &&
 102     mkdir .git2/objects/pack &&
 103     cp test-1.pack test-1.idx .git2/objects/pack && {
 104         git-diff-tree --root -p $commit &&
 105         while read object
 106         do
 107            t=`git-cat-file -t $object` &&
 108            git-cat-file $t $object || exit 1
 109         done <obj-list
 110    } >current &&
 111    diff expect current'
 112
 113
 114test_expect_success \
 115    'use packed deltified objects' \
 116    'GIT_OBJECT_DIRECTORY=.git2/objects &&
 117     export GIT_OBJECT_DIRECTORY &&
 118     rm -f .git2/objects/pack/test-?.idx &&
 119     cp test-2.pack test-2.idx .git2/objects/pack && {
 120         git-diff-tree --root -p $commit &&
 121         while read object
 122         do
 123            t=`git-cat-file -t $object` &&
 124            git-cat-file $t $object || exit 1
 125         done <obj-list
 126    } >current &&
 127    diff expect current'
 128
 129test_done