On 2009.10.27 14:46:27 -0400, Jeff King wrote: > On Tue, Oct 27, 2009 at 12:50:55PM -0400, Jeff King wrote: > > > > Actually, it's beta_gc_dev_old and beta_gc_dev, not the same refs. > > > > OK, I'm a bit blind. Thanks for pointing it out. I'll still see if I can > > replicate it. > > I'm not having any luck reproducing here with a simple case. :( I'm > trying: You need more parent repos, and you need packs. What I guess what happens is: The first remote gets fetched from. The first remote gets pruned. This initializes the pack stuff. The second remote gets fetched from, and creates a _new_ _pack_. The second remote gets pruned (*) The third remote gets fetched from. The third remote gets pruned. Now, this prune step calls for_each_ref, which looks through the new refs for the second remote. This fails, because the new pack was not present when the pack "system" got initialzed. (*) I have no idea why this step doesn't fail... But hey, I have no idea about the whole pack handling either. I just recall that there's some initialization step... This reproduces the issue here: #!/bin/sh rm -rf parent* child commit() { echo $1 >file && git add file && git commit -m $1 } mkdir parent0 && ( cd parent0 && git init && commit one ) && mkdir parent1 && ( cd parent1 && git init && commit two && commit three && git checkout -b other ) && mkdir parent2 && ( cd parent2 && git init && commit four ) && mkdir child && ( cd child && git init && git config fetch.unpackLimit 1 git remote add parent0 file://$PWD/../parent0 && git remote add parent1 file://$PWD/../parent1 && git remote add parent2 file://$PWD/../parent2 && git remote update ) && ( cd parent1 && git checkout master && git branch -d other && git reset --hard HEAD^ && commit five ) && ( cd child && git remote update --prune ) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html