Shawn Pearce <spearce@xxxxxxxxxxx> writes: > 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!!!!!!) Now I think I know what is going on. The meaning of "unpacked" (with or without the "pretend as if all objects in this pack are loose") has always been to stop traversing once we hit a packed object, not "do not include already packed object". So --unpacked=pretend-this-is-loose was wrong to begin with; it probably should have been --incremental=pretend-this-is-loose. How about reverting the following: commit ce8590748b918687abc4c7cd2d432dd23f07ae40 Author: Shawn Pearce <spearce@xxxxxxxxxxx> Only repack active packs by skipping over kept packs. commit 106d710bc13f34aec1a15c4cff80f062f384edf6 Author: Junio C Hamano <junkio@xxxxxxx> pack-objects --unpacked=<existing pack> option. - 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