{"thread":{"id":"64743","subject":"Delta Islands without bitmaps?","startedAt":"2026-01-08T00:56:05Z","lastAt":"2026-01-15T20:39:22Z","messageCount":2,"participants":["Martin Fick","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"533257","messageId":"CH3PR12MB90262C525E918BDE952987FFC285A@CH3PR12MB9026.namprd12.prod.outlook.com","threadId":"64743","inReplyTo":null,"subject":"Delta Islands without bitmaps?","fromName":"Martin Fick","fromEmail":"mfick@nvidia.com","sentAt":"2026-01-08T00:56:03Z","receivedAt":"2026-01-08T00:56:05Z","isPatch":false,"sender":{"key":"mfick@nvidia.com","avatar":"https://gravatar.com/avatar/17127f5962cba0a9b2fe0c81d6d992c863dbae1f9b897fad48b1b59a09e1ac2e?d=mp&s=160"},"body":"I am having a hard time trying to get delta islands to work as I expect.\nI would like to treat each head as an island of its own, but I do not\nseem able to do this. From reading the code, I believe that I am not\nable to make this work because the feature ignores objects which \nare not covered by bitmaps and refuses to put them in their own \nisland? I don't see anything in the docs hinting at this, so I wanted to \nconfirm whether my reading of the code was accurate, and to maybe \nget some clarification as to why this was done? \n\nPerhaps this would work if I could force every head to have an \nassociated bitmap, but there doesn't seem to be a way to do this?\nIs there some other way I can force all heads to be in their own \nindividual island?\n\nThanks,\n\n-Martin"},{"id":"533985","messageId":"20260115203921.GD1053259@coredump.intra.peff.net","threadId":"64743","inReplyTo":"CH3PR12MB90262C525E918BDE952987FFC285A@CH3PR12MB9026.namprd12.prod.outlook.com","subject":"Re: Delta Islands without bitmaps?","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2026-01-15T20:39:21Z","receivedAt":"2026-01-15T20:39:22Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Thu, Jan 08, 2026 at 12:56:03AM +0000, Martin Fick wrote:\n\n> I am having a hard time trying to get delta islands to work as I expect.\n> I would like to treat each head as an island of its own, but I do not\n> seem able to do this. From reading the code, I believe that I am not\n> able to make this work because the feature ignores objects which \n> are not covered by bitmaps and refuses to put them in their own \n> island? I don't see anything in the docs hinting at this, so I wanted to \n> confirm whether my reading of the code was accurate, and to maybe \n> get some clarification as to why this was done? \n> \n> Perhaps this would work if I could force every head to have an \n> associated bitmap, but there doesn't seem to be a way to do this?\n> Is there some other way I can force all heads to be in their own \n> individual island?\n\nI don't think you need to use reachability bitmaps with delta islands.\nThe islands are just about delta selection.\n\nIf you read the code you might be thrown off by the use of bitmaps in\nthe delta island code itself, but these are actual \"which islands is\nthis object in\" bitmaps, and not related to on-disk reachability\nbitmaps.\n\nIt has been a long time since I've fiddled with delta islands, but I\nthink that just:\n\n  [pack]\n  island = refs/heads/(.*)\n\nwould work. Then if you had branches \"foo\", \"bar\", etc, you'd get\nislands \"foo\" and \"bar\".\n\nI do suspect that per-head islands may yield a much bigger on-disk\npackfile (and bigger clones). It would disallow using an object as a\nbase if it is not in your oldest branch, even if it is in most of the\nother ones. So the deltas of your shared history are subject to the\noldest / least-inclusive branch.\n\nBut then, that's kind of the tradeoff of delta islands. It might still\nbe helpful if you expect people to fetch branches one at a time.\n\n-Peff\n"}]}