{"thread":{"id":"58575","subject":"[feature request] resume capability for users in enemies of Internet countries","startedAt":"2022-10-06T18:01:20Z","lastAt":"2022-10-07T14:24:53Z","messageCount":6,"participants":["m","Bagas Sanjaya","Michal Suchánek","Eric Wong","Philip Oakley","Derrick Stolee"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"464314","messageId":"6e4a08d2-5d72-29fd-6917-11f0a74e9314@gmail.com","threadId":"58575","inReplyTo":null,"subject":"[feature request] resume capability for users in enemies of Internet countries","fromName":"m","fromEmail":"mahg361@gmail.com","sentAt":"2022-10-06T18:01:07Z","receivedAt":"2022-10-06T18:01:20Z","isPatch":false,"sender":{"key":"mahg361@gmail.com","avatar":null},"body":"In my country government make connections unstable on purpose. Please \nadd resume capability for commands like git clone\n\n"},{"id":"464343","messageId":"83814bcb-1d72-07bf-32d1-d05db6cc6481@gmail.com","threadId":"58575","inReplyTo":"6e4a08d2-5d72-29fd-6917-11f0a74e9314@gmail.com","subject":"Re: [feature request] resume capability for users in enemies of Internet countries","fromName":"Bagas Sanjaya","fromEmail":"bagasdotme@gmail.com","sentAt":"2022-10-07T01:44:09Z","receivedAt":"2022-10-07T01:44:17Z","isPatch":false,"sender":{"key":"bagasdotme@gmail.com","avatar":"https://avatars.githubusercontent.com/u/40219486?v=4"},"body":"On 10/7/22 01:01, m wrote:\n> In my country government make connections unstable on purpose. Please add resume capability for commands like git clone\n> \n\nBandwidth issue?\n\n-- \nAn old man doll... just what I always wanted! - Clara\n"},{"id":"464347","messageId":"20221007071459.GM28810@kitsune.suse.cz","threadId":"58575","inReplyTo":"83814bcb-1d72-07bf-32d1-d05db6cc6481@gmail.com","subject":"Re: [feature request] resume capability for users in enemies of Internet countries","fromName":"Michal Suchánek","fromEmail":"msuchanek@suse.de","sentAt":"2022-10-07T07:14:59Z","receivedAt":"2022-10-07T07:15:07Z","isPatch":false,"sender":{"key":"msuchanek@suse.de","avatar":"https://avatars.githubusercontent.com/u/787652?v=4"},"body":"On Fri, Oct 07, 2022 at 08:44:09AM +0700, Bagas Sanjaya wrote:\n> On 10/7/22 01:01, m wrote:\n> > In my country government make connections unstable on purpose. Please add resume capability for commands like git clone\n> > \n> \n> Bandwidth issue?\n> \nBandwidth is one thing but the other thing is that git network\noperations require that the whole operation succeeds in one go.\n\nIf your connectivity is bad to the point that the TCP connection breaks\nyou have downloaded a bunch of data that is AFAIK just thrown away when\nyou retry.\n\nIt is difficult to know if that data would be useful in the future, and\nyou cannot meaningfully 'resume' because the remote state might have\nchanged in the meantine as well.\n\nFurther, this whole fetch operation is using a heuristic to fetch some\ndata in the hope that it will be enough to reconstruct the history that\nis requested, and this has been wrong in some cases, too. Not very\nprecise and reproducible hence hard to 'resume' as well.\n\nLet's say that the git networking has been developed at and tuned for\nthe 'first world' Internet, and may be problematic to use in net-wise\nbackwater areas. And it would require non-trivial effort to change.\n\nThanks\n\nMichal\n"},{"id":"464348","messageId":"20221007072606.M704368@dcvr","threadId":"58575","inReplyTo":"20221007071459.GM28810@kitsune.suse.cz","subject":"Re: [feature request] resume capability for users in enemies of Internet countries","fromName":"Eric Wong","fromEmail":"e@80x24.org","sentAt":"2022-10-07T07:26:06Z","receivedAt":"2022-10-07T07:26:17Z","isPatch":false,"sender":{"key":"e@80x24.org","avatar":null},"body":"Michal Suchánek <msuchanek@suse.de> wrote:\n> On Fri, Oct 07, 2022 at 08:44:09AM +0700, Bagas Sanjaya wrote:\n> > On 10/7/22 01:01, m wrote:\n> > > In my country government make connections unstable on purpose. Please add resume capability for commands like git clone\n> > > \n> > \n> > Bandwidth issue?\n> > \n> Bandwidth is one thing but the other thing is that git network\n> operations require that the whole operation succeeds in one go.\n> \n> If your connectivity is bad to the point that the TCP connection breaks\n> you have downloaded a bunch of data that is AFAIK just thrown away when\n> you retry.\n> \n> It is difficult to know if that data would be useful in the future, and\n> you cannot meaningfully 'resume' because the remote state might have\n> changed in the meantine as well.\n> \n> Further, this whole fetch operation is using a heuristic to fetch some\n> data in the hope that it will be enough to reconstruct the history that\n> is requested, and this has been wrong in some cases, too. Not very\n> precise and reproducible hence hard to 'resume' as well.\n> \n> Let's say that the git networking has been developed at and tuned for\n> the 'first world' Internet, and may be problematic to use in net-wise\n> backwater areas. And it would require non-trivial effort to change.\n\nIncreased adoption of bundles would help, since `wget -c' and such\nwould work nicely, but that puts the burden on hosts for extra storage.\n\nPerhaps GIT_SMART_HTTP=0 and having dumb clones not throwaway\nincomplete xfers would be more transparent to hosters, but dumb\nHTTP tends to be slow even on good connections.\n"},{"id":"464364","messageId":"8e11ecf0-735a-a104-a3d1-8324fbd76862@iee.email","threadId":"58575","inReplyTo":"20221007072606.M704368@dcvr","subject":"Re: [feature request] resume capability for users in enemies of Internet countries","fromName":"Philip Oakley","fromEmail":"philipoakley@iee.email","sentAt":"2022-10-07T10:03:37Z","receivedAt":"2022-10-07T10:03:45Z","isPatch":false,"sender":{"key":"philipoakley@iee.email","avatar":"https://avatars.githubusercontent.com/u/914343?v=4"},"body":"On 07/10/2022 08:26, Eric Wong wrote:\n> Michal Suchánek <msuchanek@suse.de> wrote:\n>> On Fri, Oct 07, 2022 at 08:44:09AM +0700, Bagas Sanjaya wrote:\n>>> On 10/7/22 01:01, m wrote:\n>>>> In my country government make connections unstable on purpose. Please add resume capability for commands like git clone\n>>>>\n>>> Bandwidth issue?\n>>>\n>> Bandwidth is one thing but the other thing is that git network\n>> operations require that the whole operation succeeds in one go.\n>>\n>> If your connectivity is bad to the point that the TCP connection breaks\n>> you have downloaded a bunch of data that is AFAIK just thrown away when\n>> you retry.\n>>\n>> It is difficult to know if that data would be useful in the future, and\n>> you cannot meaningfully 'resume' because the remote state might have\n>> changed in the meantine as well.\n>>\n>> Further, this whole fetch operation is using a heuristic to fetch some\n>> data in the hope that it will be enough to reconstruct the history that\n>> is requested, and this has been wrong in some cases, too. Not very\n>> precise and reproducible hence hard to 'resume' as well.\n>>\n>> Let's say that the git networking has been developed at and tuned for\n>> the 'first world' Internet, and may be problematic to use in net-wise\n>> backwater areas. And it would require non-trivial effort to change.\n> Increased adoption of bundles would help, since `wget -c' and such\n> would work nicely, but that puts the burden on hosts for extra storage.\n>\n> Perhaps GIT_SMART_HTTP=0 and having dumb clones not throwaway\n> incomplete xfers would be more transparent to hosters, but dumb\n> HTTP tends to be slow even on good connections.\n\nThere is work going on by Stollee (cc'd) on Bundle-URIs that look to\nsplit up repository serving into bite sized chunk, so may be worth\nlooking at.\nhttps://lore.kernel.org/git/pull.1248.v4.git.1660050761.gitgitgadget@gmail.com/\n: [PATCH v4 0/2] bundle URIs: design doc\n\nAlso discussed at the recent Contributor's Summit\nhttps://lore.kernel.org/git/YzXvwv%2FzK5AjhVvV@nand.local/ : [TOPIC 1/8]\nBundle URIs\n\n--\nPhilip\n"},{"id":"464374","messageId":"ae9de8dd-d1e6-2898-90cb-2a6593aa8f3a@github.com","threadId":"58575","inReplyTo":"8e11ecf0-735a-a104-a3d1-8324fbd76862@iee.email","subject":"Re: [feature request] resume capability for users in enemies of Internet countries","fromName":"Derrick Stolee","fromEmail":"derrickstolee@github.com","sentAt":"2022-10-07T14:24:44Z","receivedAt":"2022-10-07T14:24:53Z","isPatch":false,"sender":{"key":"stolee@gmail.com","avatar":"https://avatars.githubusercontent.com/u/570044?v=4"},"body":"On 10/7/22 6:03 AM, Philip Oakley wrote:\n> On 07/10/2022 08:26, Eric Wong wrote:\n\n>> Perhaps GIT_SMART_HTTP=0 and having dumb clones not throwaway\n>> incomplete xfers would be more transparent to hosters, but dumb\n>> HTTP tends to be slow even on good connections.\n> \n> There is work going on by Stollee (cc'd) on Bundle-URIs that look to\n> split up repository serving into bite sized chunk, so may be worth\n> looking at.\n> https://lore.kernel.org/git/pull.1248.v4.git.1660050761.gitgitgadget@gmail.com/\n> : [PATCH v4 0/2] bundle URIs: design doc\n> \n> Also discussed at the recent Contributor's Summit\n> https://lore.kernel.org/git/YzXvwv%2FzK5AjhVvV@nand.local/ : [TOPIC 1/8]\n> Bundle URIs\n\nThanks, Philip.\n\nThe bundle URIs feature should make it possible to help here.\n\nOne is that we could break the clone into smaller pieces, but\nI think that most bundle providers will still have at least\none bundle with \"most\" of the repo. The real payoff is that\nwe should be able to have resumable downloads for those\nbundles (pending some implementation details, but I'm waiting\nfor the rest of the series to land first).\n\nOf course, this all depends on the host providing bundles and\nadvertising them, but we will get to that when we can.\n\nThanks,\n-Stolee\n"}]}