git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Bagas Sanjaya <bagasdotme@gmail.com>
To: Git Users <git@vger.kernel.org>
Subject: Slow fetch on repo with tags per each commit (à la Vim)
Date: Mon, 31 May 2021 13:36:07 +0700	[thread overview]
Message-ID: <f9c1115a-2e17-9d3e-02f5-138eab8048d9@gmail.com> (raw)

Hi,

I have full clone of Vim repository [1] on my computer. This repo has 
tags for each commit, meaning that when there is a new commit landed on 
default (master) branch, it will be tagged (something close to release 
tags but not same).

While on the other repo, doing git fetch will fetch new commits from the 
remote quickly (the only limit is network bandwidth), on vim repo it 
takes longer.

Examining the trace (run by `GIT_TRACE=1 git fetch`), I got:

> 13:21:50.429633 git.c:447               trace: built-in: git fetch
> 13:21:50.470410 run-command.c:667       trace: run_command: GIT_DIR=.git git remote-https origin https://github.com/vim/vim.git
> 13:21:50.492785 git.c:733               trace: exec: git-remote-https origin https://github.com/vim/vim.git
> 13:21:50.492849 run-command.c:667       trace: run_command: git-remote-https origin https://github.com/vim/vim.git
> remote: Enumerating objects: 137, done.
> remote: Counting objects: 100% (137/137), done.
> remote: Compressing objects: 100% (20/20), done.
> 13:23:31.589963 run-command.c:667       trace: run_command: git index-pack --stdin -v --fix-thin '--keep=fetch-pack 10745 on ubuntu' --pack_header=2,137
> 13:23:31.593505 git.c:447               trace: built-in: git index-pack --stdin -v --fix-thin '--keep=fetch-pack 10745 on ubuntu' --pack_header=2,137
> remote: Total 137 (delta 116), reused 134 (delta 113), pack-reused 0
> Receiving objects: 100% (137/137), 117.44 KiB | 871.00 KiB/s, done.
> Resolving deltas: 100% (116/116), completed with 101 local objects.
> 13:23:32.682368 run-command.c:667       trace: run_command: git rev-list --objects --stdin --not --all --quiet --alternate-refs
> 13:23:32.684986 git.c:447               trace: built-in: git rev-list --objects --stdin --not --all --quiet --alternate-refs
> From https://github.com/vim/vim
>    0b4964848..2fa9384ca  master     -> origin/master
>  * [new tag]             v8.2.2914  -> v8.2.2914
> 13:23:33.239629 run-command.c:667       trace: run_command: GIT_DIR=.git git remote-https origin https://github.com/vim/vim.git
> 13:23:33.241760 git.c:733               trace: exec: git-remote-https origin https://github.com/vim/vim.git
> 13:23:33.241815 run-command.c:667       trace: run_command: git-remote-https origin https://github.com/vim/vim.git
> 13:23:33.251931 run-command.c:667       trace: run_command: git rev-list --objects --stdin --not --all --quiet --alternate-refs
> 13:23:33.540444 run-command.c:667       trace: run_command: git rev-list --objects --stdin --not --all --quiet --alternate-refs
> 13:23:33.542831 git.c:447               trace: built-in: git rev-list --objects --stdin --not --all --quiet --alternate-refs
>  * [new tag]             v8.2.2911  -> v8.2.2911
>  * [new tag]             v8.2.2912  -> v8.2.2912
>  * [new tag]             v8.2.2913  -> v8.2.2913
> 13:23:33.828590 run-command.c:1628      run_processes_parallel: preparing to run up to 1 tasks
> 13:23:33.828702 run-command.c:1660      run_processes_parallel: done
> 13:23:33.829024 run-command.c:667       trace: run_command: git maintenance run --auto --no-quiet
> 13:23:33.831040 git.c:447               trace: built-in: git maintenance run --auto --no-quiet
> 1.80user 1.89system 1:43.54elapsed 3%CPU (0avgtext+0avgdata 25700maxresident)k
> 149520inputs+4552outputs (268major+20701minor)pagefaults 0swaps

git fetch took about 100 seconds to complete, including fetching 3 new 
tags. On the other repo, the same command took around 10-20 seconds, 
depending on how large data that must be downloaded.

Note that Vim repo has 13952 commits and 12284 tags; and for testing 
above I use Git 2.31.1.

Thanks.

[1]: https://github.com/vim/vim

-- 
An old man doll... just what I always wanted! - Clara

             reply	other threads:[~2021-05-31  6:36 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-31  6:36 Bagas Sanjaya [this message]
2021-05-31 16:00 ` Slow fetch on repo with tags per each commit (à la Vim) Felipe Contreras
2021-06-01  3:39   ` Bagas Sanjaya

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f9c1115a-2e17-9d3e-02f5-138eab8048d9@gmail.com \
    --to=bagasdotme@gmail.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).