Jan Harkes <jaharkes@xxxxxxxxxx> wrote: > On Mon, Oct 30, 2006 at 03:26:11PM -0500, Shawn Pearce wrote: > > Actually the breakage is easier to reproduce without trashing > > a repository. > > > > Do the above so you have everything in one pack. Now use rev-list > > to simulate the object list construction in pack-objects as though > > we were doing a 'git repack -a -d': > > > > git-rev-list --objects --all \ > > --unpacked=.git/objects/pack/pack-*.pack \ > > | wc -l > > > > gives me 102 (WRONG WRONG WRONG WRONG!!!!!!) > > The problem seems to be that as soon as we hit something that is found > in a pack that is not on the ignore list, that object and all it's > parents are marked as uninteresting. So if the kept pack contains a > slice of commits (v1.4.3..v1.4.3.3) the revision walker will only return > the recent stuff (v1.4.3.3..) and drop the older data (..v1.4.3). Right - I got that far in my own research and then saw your patch drop into my inbox. :-) > The following patch does fix the problem Nicolas reported, but for some > reason I'm still getting only 102 objects (only tags and the commits > they refer to?) with your test. Ack'd. Your patch fixes both bugs for me. The rev-list test I talked about above is now turning up 31846 objects which is the correct count. The repack test Nico crafted works correctly too. -- Shawn. - 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