{"thread":{"id":"65161","subject":"[GSoC] extensions.partialClone and promisor remote fetch order","startedAt":"2026-03-07T09:28:37Z","lastAt":"2026-03-10T18:32:48Z","messageCount":4,"participants":["Lorenzo Pegorari","Christian Couder"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"538171","messageId":"aavvwfZllMWUwIl3@lorenzo-VM","threadId":"65161","inReplyTo":null,"subject":"[GSoC] extensions.partialClone and promisor remote fetch order","fromName":"Lorenzo Pegorari","fromEmail":"lorenzo.pegorari2002@gmail.com","sentAt":"2026-03-07T09:28:33Z","receivedAt":"2026-03-07T09:28:37Z","isPatch":false,"sender":{"key":"lorenzo.pegorari2002@gmail.com","avatar":"https://avatars.githubusercontent.com/u/132087553?v=4"},"body":"Hi everyone. In the past weeks I deeply studied the documentation\nregarding the GSoC'26 idea \"Implement promisor remote fetch ordering\". I\nam preparing a proposal that is as detailed as possible, and that tries\nto answer to as many questions as possible. I am also experimenting a\nlot with multiple promisor remotes configurations, and creating some\nexamples that I will showcase in my proposal.\n\n\nI have a question regarding the interaction between the config\n\"extensions.partialClone\" and a possible fetch ordering mechanism:\n * from my understanding, and from my personal tests, it looks like\n   \"extensions.partialClone\" is not essential when working with multiple\n   promisor remotes. Having these promisor remotes setted up with\n   \"remote.<name>.promisor\" and \"remote.<name>.partialCloneFilter\" seems\n   sufficient. In this case, the promisor remotes will be tried one\n   after the other, in the order in which they appear in the config.\n * if \"extensions.partialClone\" is present, then the promisor remote\n   configured using the \"extensions.partialClone\" config var will be the\n   last one tried when fetching an object.\n\n1. is what I explained correct?\n2. when the fetch ordering mechanism will be added, this config var will\n   not be useful anymore. How should it be handled? It probably can't\n   just be removed, so the fetch ordering mechanism should be flexible\n   enough to handle a situation where \"extensions.partialClone\" is\n   present, correct?\n\n\nThanks,\nLorenzo\n"},{"id":"538177","messageId":"aaw8_U0hOEag4WDO@lorenzo-VM","threadId":"65161","inReplyTo":"aavvwfZllMWUwIl3@lorenzo-VM","subject":"Re: [GSoC] extensions.partialClone and promisor remote fetch order","fromName":"Lorenzo Pegorari","fromEmail":"lorenzo.pegorari2002@gmail.com","sentAt":"2026-03-07T14:58:05Z","receivedAt":"2026-03-07T14:58:09Z","isPatch":false,"sender":{"key":"lorenzo.pegorari2002@gmail.com","avatar":"https://avatars.githubusercontent.com/u/132087553?v=4"},"body":"On Sat, Mar 07, 2026 at 10:28:33AM +0100, Lorenzo Pegorari wrote:\n> Hi everyone. In the past weeks I deeply studied the documentation\n> regarding the GSoC'26 idea \"Implement promisor remote fetch ordering\". I\n> am preparing a proposal that is as detailed as possible, and that tries\n> to answer to as many questions as possible. I am also experimenting a\n> lot with multiple promisor remotes configurations, and creating some\n> examples that I will showcase in my proposal.\n> \n> \n> I have a question regarding the interaction between the config\n> \"extensions.partialClone\" and a possible fetch ordering mechanism:\n>  * from my understanding, and from my personal tests, it looks like\n>    \"extensions.partialClone\" is not essential when working with multiple\n>    promisor remotes. Having these promisor remotes setted up with\n>    \"remote.<name>.promisor\" and \"remote.<name>.partialCloneFilter\" seems\n>    sufficient. In this case, the promisor remotes will be tried one\n>    after the other, in the order in which they appear in the config.\n>  * if \"extensions.partialClone\" is present, then the promisor remote\n>    configured using the \"extensions.partialClone\" config var will be the\n>    last one tried when fetching an object.\n> \n> 1. is what I explained correct?\n> 2. when the fetch ordering mechanism will be added, this config var will\n>    not be useful anymore. How should it be handled? It probably can't\n>    just be removed, so the fetch ordering mechanism should be flexible\n>    enough to handle a situation where \"extensions.partialClone\" is\n>    present, correct?\n> \n> \n> Thanks,\n> Lorenzo\n\nAlso, I see that \"extensions.partialClone\" is already necessary \"to\nprevent older versions of git from failing mid-operation because of\nmissing objects that they cannot handle\".\n\nThis is one of the last issues that I still have to iron out before I\ncan send a satisfactory proposal draft.\n\n[1]: https://git-scm.com/docs/git-config#Documentation/git-config.txt-partialClone\n[2]: https://git-scm.com/docs/git-config#Documentation/git-config.txt-partialClone\n"},{"id":"538275","messageId":"CAP8UFD1cQHUzxu0cWjVWBfBWh8qOy2+oOb0rwo5CmgJ2qKRFDA@mail.gmail.com","threadId":"65161","inReplyTo":"aavvwfZllMWUwIl3@lorenzo-VM","subject":"Re: [GSoC] extensions.partialClone and promisor remote fetch order","fromName":"Christian Couder","fromEmail":"christian.couder@gmail.com","sentAt":"2026-03-09T13:40:42Z","receivedAt":"2026-03-09T13:40:55Z","isPatch":false,"sender":{"key":"christian.couder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/208954?v=4"},"body":"Hi Lorenzo,\n\nOn Sat, Mar 7, 2026 at 10:28 AM Lorenzo Pegorari\n<lorenzo.pegorari2002@gmail.com> wrote:\n>\n> Hi everyone. In the past weeks I deeply studied the documentation\n> regarding the GSoC'26 idea \"Implement promisor remote fetch ordering\". I\n> am preparing a proposal that is as detailed as possible, and that tries\n> to answer to as many questions as possible. I am also experimenting a\n> lot with multiple promisor remotes configurations, and creating some\n> examples that I will showcase in my proposal.\n\nThanks for your interest in Git and this project.\n\n> I have a question regarding the interaction between the config\n> \"extensions.partialClone\" and a possible fetch ordering mechanism:\n>  * from my understanding, and from my personal tests, it looks like\n>    \"extensions.partialClone\" is not essential when working with multiple\n>    promisor remotes. Having these promisor remotes setted up with\n>    \"remote.<name>.promisor\" and \"remote.<name>.partialCloneFilter\" seems\n>    sufficient. In this case, the promisor remotes will be tried one\n>    after the other, in the order in which they appear in the config.\n>  * if \"extensions.partialClone\" is present, then the promisor remote\n>    configured using the \"extensions.partialClone\" config var will be the\n>    last one tried when fetching an object.\n>\n> 1. is what I explained correct?\n\nYes, I think so. The \"Using many promisor remotes\" section of\n\"Documentation/technical/partial-clone.adoc\" seems to agree with what\nyou say.\n\n> 2. when the fetch ordering mechanism will be added, this config var will\n>    not be useful anymore. How should it be handled? It probably can't\n>    just be removed, so the fetch ordering mechanism should be flexible\n>    enough to handle a situation where \"extensions.partialClone\" is\n>    present, correct?\n\nYes, for backward compatibility, it's better to have things work as\nthey used to when the new ordering mechanism is not used.\n"},{"id":"538504","messageId":"abBjzBFDReUnIvdK@lorenzo-VM","threadId":"65161","inReplyTo":"CAP8UFD1cQHUzxu0cWjVWBfBWh8qOy2+oOb0rwo5CmgJ2qKRFDA@mail.gmail.com","subject":"Re: [GSoC] extensions.partialClone and promisor remote fetch order","fromName":"Lorenzo Pegorari","fromEmail":"lorenzo.pegorari2002@gmail.com","sentAt":"2026-03-10T18:32:44Z","receivedAt":"2026-03-10T18:32:48Z","isPatch":false,"sender":{"key":"lorenzo.pegorari2002@gmail.com","avatar":"https://avatars.githubusercontent.com/u/132087553?v=4"},"body":"On Mon, Mar 09, 2026 at 02:40:42PM +0100, Christian Couder wrote:\n> Hi Lorenzo,\n> \n> On Sat, Mar 7, 2026 at 10:28 AM Lorenzo Pegorari\n> <lorenzo.pegorari2002@gmail.com> wrote:\n> >\n> > Hi everyone. In the past weeks I deeply studied the documentation\n> > regarding the GSoC'26 idea \"Implement promisor remote fetch ordering\". I\n> > am preparing a proposal that is as detailed as possible, and that tries\n> > to answer to as many questions as possible. I am also experimenting a\n> > lot with multiple promisor remotes configurations, and creating some\n> > examples that I will showcase in my proposal.\n> \n> Thanks for your interest in Git and this project.\n> \n> > I have a question regarding the interaction between the config\n> > \"extensions.partialClone\" and a possible fetch ordering mechanism:\n> >  * from my understanding, and from my personal tests, it looks like\n> >    \"extensions.partialClone\" is not essential when working with multiple\n> >    promisor remotes. Having these promisor remotes setted up with\n> >    \"remote.<name>.promisor\" and \"remote.<name>.partialCloneFilter\" seems\n> >    sufficient. In this case, the promisor remotes will be tried one\n> >    after the other, in the order in which they appear in the config.\n> >  * if \"extensions.partialClone\" is present, then the promisor remote\n> >    configured using the \"extensions.partialClone\" config var will be the\n> >    last one tried when fetching an object.\n> >\n> > 1. is what I explained correct?\n> \n> Yes, I think so. The \"Using many promisor remotes\" section of\n> \"Documentation/technical/partial-clone.adoc\" seems to agree with what\n> you say.\n> \n> > 2. when the fetch ordering mechanism will be added, this config var will\n> >    not be useful anymore. How should it be handled? It probably can't\n> >    just be removed, so the fetch ordering mechanism should be flexible\n> >    enough to handle a situation where \"extensions.partialClone\" is\n> >    present, correct?\n> \n> Yes, for backward compatibility, it's better to have things work as\n> they used to when the new ordering mechanism is not used.\n\nExactly what I thought. Thanks for the clarifications Christian!\n\nI just sent my GSoC'26 proposal, where I took into consideration this\ndiscussion:\nhttps://lore.kernel.org/git/abBh__zmlWXY-yjI@lorenzo-VM/\n\n\nLorenzo\n"}]}