git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* About connection resuming
@ 2018-02-20 12:49 chenzero
  2018-02-20 19:43 ` Stefan Beller
  0 siblings, 1 reply; 2+ messages in thread
From: chenzero @ 2018-02-20 12:49 UTC (permalink / raw)
  To: git

Hello,
First, I am a user of git for about 2 years, I really appreciated you 
all to create this great useful software!
My encountered problem is:
sometimes, the repo is big and because my networking is not stable(or my 
network proxy has
some limitations), so, the clone will always fail.
I tried following ways to solve this, however, not much success.
1. clone depth 1
git clone --depth=1 https://..../repo.git
however, some repo even depth=1 might fail.(It seemed that my network 
proxy limit tcp connection.
if transfer over 50M, it will break)
2. download bundle file.
but no all git repo provide bundle files to download.

After some investment on the code, I think, perhaps,
if enhance the git-http-backend to support http header: Range, or 
Content-Range,
maybe it will enable connection resuming.
the problem of this way is: it needs to upgrade the current deployed 
"git-http-backend",
and maybe much code need to change including git-remote-http etc.

This is the very basic thought, and whether I should try other way ?
Thanks a lot!


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: About connection resuming
  2018-02-20 12:49 About connection resuming chenzero
@ 2018-02-20 19:43 ` Stefan Beller
  0 siblings, 0 replies; 2+ messages in thread
From: Stefan Beller @ 2018-02-20 19:43 UTC (permalink / raw)
  To: chenzero, Jonathan Nieder; +Cc: git

On Tue, Feb 20, 2018 at 4:49 AM, chenzero <chenzero@netease.com> wrote:
> Hello,
> First, I am a user of git for about 2 years, I really appreciated you all to
> create this great useful software!

Hi, welcome to the mailing list!

> My encountered problem is:
> sometimes, the repo is big and because my networking is not stable(or my
> network proxy has
> some limitations), so, the clone will always fail.
> I tried following ways to solve this, however, not much success.
> 1. clone depth 1
> git clone --depth=1 https://..../repo.git
> however, some repo even depth=1 might fail.(It seemed that my network proxy
> limit tcp connection.
> if transfer over 50M, it will break)
> 2. download bundle file.
> but no all git repo provide bundle files to download.
>
> After some investment on the code, I think, perhaps,
> if enhance the git-http-backend to support http header: Range, or
> Content-Range,
> maybe it will enable connection resuming.

This thought has come up before, for example
https://public-inbox.org/git/1473984742-12516-1-git-send-email-kevin.m.wern@gmail.com/
(Or you can search for "resumable clone" in that mailing list archive,
there are more interesting discussions)

But the current problem is that the bytes of a clone are not stable,
as the packs are ordered racily IIUC: So if you clone the same repository
(with the same branch values), the observed communication over the wire
may differ in the part when the pack file is transferred as the packfile is
packed up in a multi threaded fashion, that has no clear order defined.

> the problem of this way is: it needs to upgrade the current deployed
> "git-http-backend",
> and maybe much code need to change including git-remote-http etc.
>
> This is the very basic thought, and whether I should try other way ?
> Thanks a lot!

I think a more promising approach is to have support for references
inside the packfile for transfer, this could become one of the features
of the new protocol that is being worked on
https://public-inbox.org/git/20180207011312.189834-1-bmwill@google.com/
I do not find a reference for the idea, but Jonathan (cc'd) laid it out
well once upon a time. Jonathan do you have a mailing list reference
for references in packfiles?

Thanks,
Stefan

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-02-20 19:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-20 12:49 About connection resuming chenzero
2018-02-20 19:43 ` Stefan Beller

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).