* [PATCH 4/3] git-fetch: test avoiding unnecessary copying from alternates
@ 2007-11-08 8:22 Shawn O. Pearce
2007-11-08 8:34 ` Shawn O. Pearce
0 siblings, 1 reply; 2+ messages in thread
From: Shawn O. Pearce @ 2007-11-08 8:22 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
This test verifies my prior "avoid local fetching from alternate"
patch is functional and doesn't regress in the future during any
additional improvements made to git.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
t/t5502-quickfetch.sh | 33 +++++++++++++++++++++++++++++++++
1 files changed, 33 insertions(+), 0 deletions(-)
diff --git a/t/t5502-quickfetch.sh b/t/t5502-quickfetch.sh
index b4760f2..16eadd6 100755
--- a/t/t5502-quickfetch.sh
+++ b/t/t5502-quickfetch.sh
@@ -86,4 +86,37 @@ test_expect_success 'quickfetch should not leave a corrupted repository' '
'
+test_expect_success 'quickfetch should not copy from alternate' '
+
+ (
+ mkdir quickclone &&
+ cd quickclone &&
+ git init-db &&
+ (cd ../.git/objects && pwd) >.git/objects/info/alternates &&
+ git remote add origin .. &&
+ git fetch -k -k
+ ) &&
+ obj_cnt=$( (
+ cd quickclone &&
+ git count-objects | sed -e "s/ *objects,.*//"
+ ) ) &&
+ pck_cnt=$( (
+ cd quickclone &&
+ git count-objects -v | sed -n -e "/packs:/{
+ s/packs://
+ p
+ q
+ }"
+ ) ) &&
+ origin_master=$( (
+ cd quickclone &&
+ git rev-parse origin/master
+ ) ) &&
+ echo "loose objects: $obj_cnt, packfiles: $pck_cnt" &&
+ test $obj_cnt -eq 0 &&
+ test $pck_cnt -eq 0 &&
+ test z$origin_master = z$(git rev-parse master)
+
+'
+
test_done
--
1.5.3.5.1590.gfadfad
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH 4/3] git-fetch: test avoiding unnecessary copying from alternates
2007-11-08 8:22 [PATCH 4/3] git-fetch: test avoiding unnecessary copying from alternates Shawn O. Pearce
@ 2007-11-08 8:34 ` Shawn O. Pearce
0 siblings, 0 replies; 2+ messages in thread
From: Shawn O. Pearce @ 2007-11-08 8:34 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
"Shawn O. Pearce" <spearce@spearce.org> wrote:
> This test verifies my prior "avoid local fetching from alternate"
> patch is functional and doesn't regress in the future during any
> additional improvements made to git.
...
> +test_expect_success 'quickfetch should not copy from alternate' '
> +
> + (
> + mkdir quickclone &&
> + cd quickclone &&
> + git init-db &&
> + (cd ../.git/objects && pwd) >.git/objects/info/alternates &&
> + git remote add origin .. &&
> + git fetch -k -k
Hmmph. On second thought I think this is a little sketchy for
a test. Versions without my quickfetch patch fail this test and
versions with it pass. But it depends on the implementation of
`-k -k` to always call index-pack over unpack-objects.
I'm using -k -k here to ensure we keep the pack fetched as we're only
fetching 6 objects and they are already reachable in the quickclone
repository thanks to the alternate ODB. If we use unpack-objects
during this fetch we will still pass this test because the objects
won't be unpacked if they are already reachable locally.
Of course this test is for a performance optimization. For 6
tiny objects it really doesn't matter if we copy them or not, or
if we copy them over a pipe only to discard them because they are
already reachable. It does however matter when you are talking
about nearly 300MB worth of objects. :-\
--
Shawn.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2007-11-08 8:35 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-08 8:22 [PATCH 4/3] git-fetch: test avoiding unnecessary copying from alternates Shawn O. Pearce
2007-11-08 8:34 ` Shawn O. Pearce
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox