Re: Bug: Git: Clone: University Network: No Output on Terminal

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2020-02-17 at 08:02:44, Manish Devgan wrote:
> Hello,
> 
> I am a university student from India and I was trying to clone the
> xfwm4 git repository from the git-url :
> https://git.xfce.org/xfce/xfwm4
> I was trying to clone this repository over my university network and
> it didn't work. I worked my way around by using my mobile
> wireless-hotspot for the same and was able to do it just fine.
> The next day I tried doing the exact same thing since I couldn't get
> an answer from our university if any such firewall was blocking me
> from cloning it. But this time instead of failing to reach the url the
> command ran with the following output:
> 
> gabru-md@bhaalu:~/Desktop$ git clone https://git.xfce.org/xfce/xfwm4
> Cloning into 'xfwm4'...
> 
> after waiting for a few minutes the command didn't fail but it didn't
> show any output/stats like it does when I try to clone a repository
> from Github which is definitely not blocked on the university network.
> for eg.

So it looks like git.xfce.org is using the old dumb HTTP protocol, which
basically serves static content.  Git has to look up the references,
attempt to download each object or pack, and then determine which ones
have the objects it needs.  The server provides no assistance in that
regard.

> gabru-md@bhaalu:~/Desktop$ git clone https://github.com/gabru-md/stl-cpp
> Cloning into 'stl-cpp'...
> remote: Enumerating objects: 186, done.
> remote: Counting objects: 100% (186/186), done.
> remote: Compressing objects: 100% (128/128), done.
> remote: Total 186 (delta 92), reused 146 (delta 56), pack-reused 0
> Receiving objects: 100% (186/186), 105.58 KiB | 256.00 KiB/s, done.
> Resolving deltas: 100% (92/92), done.

Here, GitHub uses the smart HTTP protocol.  The client fetches the
references and then reports what data it has.  The server actively
computes the differences and sends a single pack containing only the
required objects.  In addition, newer versions of the smart HTTP
protocol contain a sideband where the server can report status, like the
"remote:" message you see above.  The status messages on the client side
come from unpacking and indexing the single pack received.

So this is working by design, although it's confusing for users.  The
dumb HTTP protocol doesn't know how much stuff it needs to fetch—it
could be a single object or pack, or it could be tens of thousands of
items—so it's hard to provide any progress report on the client side.
Additionally, because the server isn't actively producing a pack and is
just serving static files, there's no way for it to provide status
output at all.

Hopefully this answers your question, although I agree the answer is a
little unsatisfying.
-- 
brian m. carlson: Houston, Texas, US
OpenPGP: https://keybase.io/bk2204

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux