mirror of
https://github.com/git/git
synced 2024-08-27 19:49:21 +00:00
Merge branch 'bc/maint-keep-pack'
* bc/maint-keep-pack: repack: only unpack-unreachable if we are deleting redundant packs
This commit is contained in:
commit
c9d8563c81
|
@ -38,12 +38,11 @@ OPTIONS
|
|||
dangling.
|
||||
|
||||
-A::
|
||||
Same as `-a`, but any unreachable objects in a previous
|
||||
pack become loose, unpacked objects, instead of being
|
||||
left in the old pack. Unreachable objects are never
|
||||
intentionally added to a pack, even when repacking.
|
||||
When used with '-d', this option
|
||||
prevents unreachable objects from being immediately
|
||||
Same as `-a`, unless '-d' is used. Then any unreachable
|
||||
objects in a previous pack become loose, unpacked objects,
|
||||
instead of being left in the old pack. Unreachable objects
|
||||
are never intentionally added to a pack, even when repacking.
|
||||
This option prevents unreachable objects from being immediately
|
||||
deleted by way of being left in the old pack and then
|
||||
removed. Instead, the loose unreachable objects
|
||||
will be pruned according to normal expiry rules
|
||||
|
|
|
@ -71,7 +71,8 @@ case ",$all_into_one," in
|
|||
existing="$existing $e"
|
||||
fi
|
||||
done
|
||||
if test -n "$args" -a -n "$unpack_unreachable"
|
||||
if test -n "$args" -a -n "$unpack_unreachable" -a \
|
||||
-n "$remove_redundant"
|
||||
then
|
||||
args="$args $unpack_unreachable"
|
||||
fi
|
||||
|
|
|
@ -8,7 +8,7 @@ fsha1=
|
|||
csha1=
|
||||
tsha1=
|
||||
|
||||
test_expect_success '-A option leaves unreachable objects unpacked' '
|
||||
test_expect_success '-A with -d option leaves unreachable objects unpacked' '
|
||||
echo content > file1 &&
|
||||
git add . &&
|
||||
git commit -m initial_commit &&
|
||||
|
@ -58,7 +58,7 @@ compare_mtimes ()
|
|||
' -- "$@"
|
||||
}
|
||||
|
||||
test_expect_success 'unpacked objects receive timestamp of pack file' '
|
||||
test_expect_success '-A without -d option leaves unreachable objects packed' '
|
||||
fsha1path=$(echo "$fsha1" | sed -e "s|\(..\)|\1/|") &&
|
||||
fsha1path=".git/objects/$fsha1path" &&
|
||||
csha1path=$(echo "$csha1" | sed -e "s|\(..\)|\1/|") &&
|
||||
|
@ -75,7 +75,19 @@ test_expect_success 'unpacked objects receive timestamp of pack file' '
|
|||
git branch -D transient_branch &&
|
||||
sleep 1 &&
|
||||
git repack -A -l &&
|
||||
compare_mtimes "$packfile" "$fsha1path" "$csha1path" "$tsha1path"
|
||||
test ! -f "$fsha1path" &&
|
||||
test ! -f "$csha1path" &&
|
||||
test ! -f "$tsha1path" &&
|
||||
git show $fsha1 &&
|
||||
git show $csha1 &&
|
||||
git show $tsha1
|
||||
'
|
||||
|
||||
test_expect_success 'unpacked objects receive timestamp of pack file' '
|
||||
tmppack=".git/objects/pack/tmp_pack" &&
|
||||
ln "$packfile" "$tmppack" &&
|
||||
git repack -A -l -d &&
|
||||
compare_mtimes "$tmppack" "$fsha1path" "$csha1path" "$tsha1path"
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
Loading…
Reference in a new issue