mirror of
https://github.com/git/git.git
synced 2024-11-27 12:03:55 +08:00
t/lib-pack: support SHA-256
Update the support routines for generating packs to support both SHA-1 and SHA-256. Compute the trailing pack checksum and its length correctly depending on the algorithm, and look up the object names based on the algorithm as well. Ensure we initialize the algorithm facts so that our callers need not do so. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
de93cc14ab
commit
db12505c2c
@ -35,9 +35,11 @@ pack_header () {
|
||||
# have hardcoded some well-known objects. See the case statements below for the
|
||||
# complete list.
|
||||
pack_obj () {
|
||||
test_oid_init
|
||||
|
||||
case "$1" in
|
||||
# empty blob
|
||||
e69de29bb2d1d6434b8b29ae775ad8c2e48c5391)
|
||||
$EMPTY_BLOB)
|
||||
case "$2" in
|
||||
'')
|
||||
printf '\060\170\234\003\0\0\0\0\1'
|
||||
@ -47,7 +49,7 @@ pack_obj () {
|
||||
;;
|
||||
|
||||
# blob containing "\7\76"
|
||||
e68fe8129b546b101aee9510c5328e7f21ca1d18)
|
||||
$(test_oid packlib_7_76))
|
||||
case "$2" in
|
||||
'')
|
||||
printf '\062\170\234\143\267\3\0\0\116\0\106'
|
||||
@ -59,11 +61,18 @@ pack_obj () {
|
||||
printf '\234\143\142\142\142\267\003\0\0\151\0\114'
|
||||
return
|
||||
;;
|
||||
37c8e2c15bb22b912e59b43fd51a4f7e9465ed0b5084c5a1411d991cbe630683)
|
||||
printf '\165\67\310\342\301\133\262\53\221\56\131' &&
|
||||
printf '\264\77\325\32\117\176\224\145\355\13\120' &&
|
||||
printf '\204\305\241\101\35\231\34\276\143\6\203\170' &&
|
||||
printf '\234\143\142\142\142\267\003\0\0\151\0\114'
|
||||
return
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
# blob containing "\7\0"
|
||||
01d7713666f4de822776c7622c10f1b07de280dc)
|
||||
$(test_oid packlib_7_0))
|
||||
case "$2" in
|
||||
'')
|
||||
printf '\062\170\234\143\147\0\0\0\20\0\10'
|
||||
@ -75,6 +84,13 @@ pack_obj () {
|
||||
printf '\143\142\142\142\147\0\0\0\53\0\16'
|
||||
return
|
||||
;;
|
||||
5d8e6fc40f2dab00e6983a48523fe57e621f46434cb58dbd4422fba03380d886)
|
||||
printf '\165\135\216\157\304\17\55\253\0\346\230\72' &&
|
||||
printf '\110\122\77\345\176\142\37\106\103\114\265' &&
|
||||
printf '\215\275\104\42\373\240\63\200\330\206\170\234' &&
|
||||
printf '\143\142\142\142\147\0\0\0\53\0\16'
|
||||
return
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
@ -86,7 +102,7 @@ pack_obj () {
|
||||
then
|
||||
echo "$1" | git pack-objects --stdout >pack_obj.tmp &&
|
||||
size=$(wc -c <pack_obj.tmp) &&
|
||||
dd if=pack_obj.tmp bs=1 count=$((size - 20 - 12)) skip=12 &&
|
||||
dd if=pack_obj.tmp bs=1 count=$((size - $(test_oid rawsz) - 12)) skip=12 &&
|
||||
rm -f pack_obj.tmp
|
||||
return
|
||||
fi
|
||||
@ -97,7 +113,8 @@ pack_obj () {
|
||||
|
||||
# Compute and append pack trailer to "$1"
|
||||
pack_trailer () {
|
||||
test-tool sha1 -b <"$1" >trailer.tmp &&
|
||||
test_oid_init &&
|
||||
test-tool $(test_oid algo) -b <"$1" >trailer.tmp &&
|
||||
cat trailer.tmp >>"$1" &&
|
||||
rm -f trailer.tmp
|
||||
}
|
||||
@ -108,3 +125,11 @@ pack_trailer () {
|
||||
clear_packs () {
|
||||
rm -f .git/objects/pack/*
|
||||
}
|
||||
|
||||
test_oid_cache <<-EOF
|
||||
packlib_7_0 sha1:01d7713666f4de822776c7622c10f1b07de280dc
|
||||
packlib_7_0 sha256:37c8e2c15bb22b912e59b43fd51a4f7e9465ed0b5084c5a1411d991cbe630683
|
||||
|
||||
packlib_7_76 sha1:e68fe8129b546b101aee9510c5328e7f21ca1d18
|
||||
packlib_7_76 sha256:5d8e6fc40f2dab00e6983a48523fe57e621f46434cb58dbd4422fba03380d886
|
||||
EOF
|
||||
|
Loading…
Reference in New Issue
Block a user