git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git status became very slow after upgrading git

From
Vijay Raghavan Aravamudhan <avijayr@gmail.com>
Date
Feb 10, 2024, 19:57 UTC
Message-ID
<CAK7MZG1whUj23y5DoqXOjtiB2kFRfT-gi6r1r=GC5HvM5jneNQ@mail.gmail.com>
In-Reply-To
<m0o7co8688.fsf@epic96565.epic.com>

Thanks for the quick response! Here's the data requested: system credential.helper=osxkeychain global includeif.gitdir/i:~/.path=~/.gitconfig-oss.inc global advice.detachedhead=true global alias.dangling=fsck --no-reflog global alias.ec=config --global -e global alias.f=!git ls-files | grep -i global alias.sci=!sh -c ' if $(git st | grep -q "have diverged"); then echo "Diverged branches: aborting"; exit 1; elif ! $(git st | grep -q "to unstage"); then echo "Nothing to commit: aborting"; else if $(git st | grep -q "is ahead of"); then echo "Amending existing commit"; git amq; else echo "Creating new commit"; echo $0; git ci "$0"; fi fi' global alias.what=show -s --pretty='tformat:%h (%s, %ad)' --date=short global alias.who=shortlog -s -- global alias.whois=log -i -1 --pretty=format:'%an <%ae>' --author global alias.standup=log --since 1.week.ago --author global alias.lg=log --color --graph --pretty=format:'%C(yellow)%h%Creset -%C(bold blue)%d%Creset %s %C(green) %an, %cr%Creset' --abbrev-commit global alias.lga=log --color --graph --all --pretty=format:'%C(yellow)%h%Creset -%C(bold blue)%d%Creset %s %C(green) %an, %cr%Creset' --abbrev-commit global alias.ll=log --decorate --graph --oneline --abbrev-commit global alias.mn=merge --no-commit global alias.cn=cherry-pick --no-commit global alias.cr=cherry-pick global alias.ci=commit -m global alias.co=checkout global alias.cl=clone global alias.st=!git status --ahead-behind && git submodule summary global alias.sts=status -sb global alias.b=branch global alias.d=diff global alias.dc=diff --staged global alias.undo=reset --soft HEAD^ global alias.wipe=!git add -A && git commit -qm 'WIPE SAVEPOINT if needed later, can be resurrected using reflog' && git reset HEAD~1 --hard global alias.amend=commit --amend --date=now global alias.amq=amend --no-edit --quiet global alias.unstage=restore --staged global alias.large=!git ls-tree -r -t -l --full-name HEAD | sort -n -k 4 | tail -n 10 global alias.untrack=rm -rf --cached -- global alias.grep=grep -Ii global alias.patch=!git --no-pager diff --no-color global alias.track=rev-parse --abbrev-ref --symbolic-full-name @{u} global alias.fo=!git fetch --all --tags && git dlb global alias.repo=!basename `git remote get-url origin` global alias.br=branch --show-current global alias.upreb=!git branch -u origin/`git br` && git fo && ( git remote | grep upstream 2>&1 >/dev/null ) && git rebase upstream/`git br` --no-verify && git fetch upstream --tags && git push --no-verify && git push --tags --no-verify && git siu && git dlb global alias.rpo=remote prune origin global alias.in=log --reverse ..@{u} --stat --no-merges global alias.inp=log -p --reverse ..@{u} --no-merges global alias.inc=!git diff ..@{u} global alias.new=!sh -c 'git log $1@{1}..$1@{0} $@' global alias.ghpg-trim=!r() { days=${1:-19}; echo "Will clean beyond $days days" && git checkout gh-pages && echo "Size before: $(du -sh *reports)" && DIRECTORIES=$(find *-reports -mindepth 1 -maxdepth 1 -type d); for dir in ${DIRECTORIES}; do SHA_FROM_DIR="$(basename $dir)"; COMMIT_DATE_IN_MILLIS=$(git show -s --format=%ct $SHA_FROM_DIR 2> /dev/null || echo 5000000000); COMMIT_DATE_IN_DAYS=$(echo "$COMMIT_DATE_IN_MILLIS / (1000 * 60 * 60 * 24)" | bc -l); (( ${COMMIT_DATE_IN_DAYS%.*} > ${days%.*} )) && git rm -rf $dir; done; git commit -m "Deleting reports older than $days days" && echo $(git rev-parse HEAD) > .git/info/grafts && git config advice.graftFileDeprecated false && FILTER_BRANCH_SQUELCH_WARNING=1 git filter-branch -f -- --all; rm -f .git/info/grafts; echo "Size after: $(du -sh *reports)" done;}; r global alias.out=log --reverse @{u}.. global alias.outp=log -p --reverse @{u}.. global alias.g=grep --break --heading --line-number global alias.sf=submodule foreach global alias.rfc=reflog expire --expire=now global alias.cc=!echo "Size before: $(du -sh .git | cut -f1)"; git remote prune origin; git repack; git prune-packed; git reflog expire --all --expire=1.week.ago; git maintenance run --task=gc; echo "Size after: $(du -sh .git | cut -f1)"; global alias.big=!git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -100 | awk '{print $1}')" global alias.dlb=!git branch -vv | GREP_OPTIONS= grep ': gone]' | awk '{print $1}' | xargs -I {} git branch -D {} global alias.old=!sh -c '[[ "`git log $0/$1 --since 10.days -1 | wc -l`" -eq 0 ]] && echo "Will need to delete $0/$1"' global alias.recentb=!r() { refbranch=$1 count=$2; git for-each-ref --sort=-committerdate refs/remotes --format='%(refname:short)|%(HEAD)%(color:yellow)%(refname:short)|%(color:bold green)%(committerdate:relative)|%(color:blue)%(subject)|%(color:magenta)%(authorname)%(color:reset)' --color=always --count=${count:-20} | while read line; do branch=$(echo "$line" | awk 'BEGIN { FS = "|" }; { print $1 }' | tr -d '*'); ahead=$(git rev-list --count "${refbranch:-origin/master}..${branch}"); behind=$(git rev-list --count "${branch}..${refbranch:-origin/master}"); colorline=$(echo "$line" | sed 's/^[^|]*|//'); echo "$ahead|$behind|$colorline" | awk -F'|' -vOFS='|' '{$5=substr($5,1,70)}1' ; done | ( echo "ahead|behind||branch|lastcommit|message|author\n" && cat) | column -ts'|';}; r global alias.oldestb=!r() { refbranch=$1 count=$2; git for-each-ref --sort=committerdate refs/remotes --format='%(refname:short)|%(HEAD)%(color:yellow)%(refname:short)|%(color:bold green)%(committerdate:relative)|%(color:blue)%(subject)|%(color:magenta)%(authorname)%(color:reset)' --color=always --count=${count:-20} | while read line; do branch=$(echo "$line" | awk 'BEGIN { FS = "|" }; { print $1 }' | tr -d '*'); ahead=$(git rev-list --count "${refbranch:-origin/master}..${branch}"); behind=$(git rev-list --count "${branch}..${refbranch:-origin/master}"); colorline=$(echo "$line" | sed 's/^[^|]*|//'); echo "$ahead|$behind|$colorline" | awk -F'|' -vOFS='|' '{$5=substr($5,1,70)}1' ; done | ( echo "ahead|behind||branch|lastcommit|message|author\n" && cat) | column -ts'|';}; r global alias.lc=!git branch -r --sort=-committerdate --format="%(color:magenta)%(committerdate:relative)%(color:reset) %(color:bold cyan)%(refname:short)%(color:reset) %(contents:subject) %(color:bold blue) <%(authorname)> %(color:reset)" global alias.lc2=!git branch -r --sort=-committerdate | egrep -v 'HEAD|master|main' | while read b; do git log --since 4.days --color --format="%ci _%C(magenta)%cr %C(bold cyan)$b%Creset %s %C(bold blue)<%an>%Creset" $b | head -n 1; done | sort -r | cut -d_ -f2- global alias.se=!git rev-list --all | xargs git grep -F global alias.siu=!git submodule update --init --recursive --remote --rebase --force global alias.pushsub=sf git push global alias.pullsub=sf git pull global alias.dcolor=diff --color-words global branch.autosetupmerge=true global branch.autosetuprebase=always global branch.sort=committerdate global checkout.defaultremote=origin global checkout.workers=0 global color.diff.meta=yellow global color.diff.frag=magenta bold global color.diff.func=146 bold global color.diff.commit=yellow bold global color.diff.old=red bold global color.diff.new=green bold global color.diff.whitespace=red reverse global core.pager=diff-so-fancy | less --tabs=2 -RFX global core.editor=codium --wait global core.autocrlf=input global core.excludesfile=~/.gitignore_global global core.commentchar=* global core.whitespace=fix global diff.compactionheuristic=true global diff.renames=true global diff.renamelimit=1000 global diff.colormoved=default global diff.submodule=diff global diff-so-fancy.markemptylines=false global fetch.prune=true global fetch.prunetags=true global fetch.parallel=0 global fetch.showforcedupdates=true global filter.lfs.required=true global filter.lfs.clean=git-lfs clean -- %f global filter.lfs.smudge=git-lfs smudge -- %f global filter.lfs.process=git-lfs filter-process global gc.auto=2000 global gc.pruneexpire=now global gc.worktreepruneexpire=1.weeks.ago global gc.reflogexpire=2.weeks.ago global gc.reflogexpireunreachable=2.weeks.ago global gc.rerereresolved=1.weeks.ago global grep.column=true global grep.extendedregexp=true global grep.linenumber=true global grep.fullname=true global gui.pruneduringfetch=true global gui.matchtrackingbranch=true global gui.warndetachedcommit=true global gui.tabsize=2 global help.autocorrect=1 global interactive.difffilter=diff-so-fancy --patch global merge.defaulttoupstream=true global merge.ff=only global merge.renamelimit=15000 global merge.autostash=true global pack.threads=0 global pack.writereverseindex=true global pager.diff=diff-so-fancy | less --tabs=2 -RFX global pull.rebase=true global pull.autostash=true global push.default=upstream global push.followtags=true global push.recursesubmodules=check global rebase.autosquash=true global rebase.autostash=true global rebase.missingcommitscheck=error global rebase.abbreviatecommands=true global rerere.enabled=true global rerere.autoupdate=true global stash.untracked=true global stash.showincludeuntracked=true global stash.showpatch=true global status.showstash=true global submodule.fetchjobs=0 global tag.sort=version:refname global transfer.fsckobjects=false global http.postbuffer=786432000 global user.useconfigonly=true global add.interactive.usebuiltin=false global init.defaultbranch=master local core.repositoryformatversion=0 local core.filemode=true local core.bare=false local core.logallrefupdates=true local core.ignorecase=true local core.precomposeunicode=true local core.hookspath=.husky local remote.origin.url=git@github.com:vraravam/ferdium-app local remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* local branch.develop.remote=origin local branch.develop.rebase=true local branch.develop.merge=refs/heads/develop local remote.upstream.url=git@github.com:ferdium/ferdium-app local remote.upstream.fetch=+refs/heads/*:refs/remotes/upstream/* local submodule.recipes.active=true local submodule.recipes.url=https://github.com/ferdium/ferdium-recipes.git local branch.nightly.remote=origin local branch.nightly.rebase=true local branch.nightly.merge=refs/heads/nightly local branch.release.remote=origin local branch.release.rebase=true local branch.release.merge=refs/heads/release local gui.wmstate=normal local gui.geometry=1381x921+5+48 201 203

On Sun, Feb 11, 2024 at 1:03 AM Sean Allred <allred.sean@gmail.com> wrote:
Show 221 quoted lines
>
>
> Vijay Raghavan Aravamudhan <avijayr@gmail.com> writes:
>
> > Thanks for responding. I have run the command that you gave on an open
> > source repo so that its easy for you to replicate. The remote url is:
> > https://github.com/vraravam/ferdium-app
> >
> > The output is:
> >
> >         [[ I took the liberty of cleaning this up; ]]
> >         [[ let's hope formatting is preserved now. ]]
> >
> > ferdium-app.git:develop$ GIT_TRACE=1 GIT_TRACE_SETUP=1 GIT_TRACE_PERFORMANCE=1 git status
> > 00:08:15.548976 trace.c:314             setup: git_dir: .git
> > 00:08:15.550590 trace.c:315             setup: git_common_dir: .git
> > 00:08:15.550600 trace.c:316             setup: worktree: /Users/vijay/dev/oss/ferdium
> > 00:08:15.550604 trace.c:317             setup: cwd: /Users/vijay/dev/oss/ferdium
> > 00:08:15.550611 trace.c:318             setup: prefix: (null)
> > 00:08:15.550707 chdir-notify.c:70       setup: chdir from '/Users/vijay/dev/oss/ferdium' to '/Users/vijay/dev/oss/ferdium'
> > 00:08:15.550723 git.c:463               trace: built-in: git status
> > 00:08:15.552184 read-cache.c:2386       performance: 0.000183000 s: read cache .git/index
> > 00:08:15.555964 read-cache.c:1629       performance: 0.003696000 s: refresh index
> > 00:08:15.556442 diff-lib.c:273          performance: 0.000132000 s:  diff-files
> > 00:08:15.558558 unpack-trees.c:2004     performance: 0.000019000 s: traverse_trees
> > 00:08:15.558801 unpack-trees.c:438      performance: 0.000003000 s: check_updates
> > 00:08:15.558813 unpack-trees.c:2096     performance: 0.000394000 s: unpack_trees
> > 00:08:15.558819 diff-lib.c:638          performance: 0.000524000 s:  diff-index
> > 00:08:15.559166 name-hash.c:613         performance: 0.000148000 s: initialize name hash
> > On branch develop
> > Your branch is up to date with 'origin/develop'.
> >
> > 00:08:15.567249 run-command.c:657       trace: run_command: GIT_INDEX_FILE=.git/index git submodule summary --cached --for-status --summary-limit -1 HEAD
> > 00:08:15.833334 git.c:749               trace: exec: git-submodule summary --cached --for-status --summary-limit -1 HEAD
> > 00:08:15.834114 run-command.c:657       trace: run_command: git-submodule summary --cached --for-status --summary-limit -1 HEAD
> > 00:08:16.880778 trace.c:414             performance: 0.000013000 s: git command: git --exec-path
> > 00:08:18.216639 git.c:463               trace: built-in: git rev-parse --git-dir
> > 00:08:18.218740 trace.c:414             performance: 0.002132000 s: git command: git rev-parse --git-dir
> > 00:08:18.489025 git.c:463               trace: built-in: git rev-parse --git-path objects
> > 00:08:18.490677 trace.c:414             performance: 0.001675000 s: git command: git rev-parse --git-path objects
> > 00:08:19.031080 git.c:463               trace: built-in: git rev-parse --show-prefix
> > 00:08:19.032882 trace.c:414             performance: 0.001827000 s: git command: git rev-parse --show-prefix
> > 00:08:19.296074 git.c:463               trace: built-in: git rev-parse --show-toplevel
> > 00:08:19.297559 trace.c:414             performance: 0.001504000 s: git command: git rev-parse --show-toplevel
> > 00:08:19.830285 trace.c:314             setup: git_dir: .git
> > 00:08:19.830972 trace.c:315             setup: git_common_dir: .git
> > 00:08:19.830981 trace.c:316             setup: worktree: /Users/vijay/dev/oss/ferdium
> > 00:08:19.830984 trace.c:317             setup: cwd: /Users/vijay/dev/oss/ferdium
> > 00:08:19.830990 trace.c:318             setup: prefix: (null)
> > 00:08:19.830994 git.c:463               trace: built-in: git submodule--helper summary --cached --for-status -n -1 -- HEAD
> > 00:08:19.834629 read-cache.c:2386       performance: 0.000164000 s: read cache .git/index
> > 00:08:19.834914 unpack-trees.c:2004     performance: 0.000024000 s: traverse_trees
> > 00:08:19.834932 unpack-trees.c:438      performance: 0.000003000 s: check_updates
> > 00:08:19.834940 unpack-trees.c:2096     performance: 0.000157000 s: unpack_trees
> > 00:08:19.834958 diff-lib.c:638          performance: 0.000307000 s:  diff-index
> > 00:08:19.834975 trace.c:414             performance: 0.005922000 s: git command: git submodule--helper summary --cached --for-status -n -1 -- HEAD
> > 00:08:19.836137 trace.c:414             performance: 4.003693000 s: git command: /opt/homebrew/opt/git/libexec/git-core/git submodule summary --cached --for-status --summary-limit -1 HEAD
> > 00:08:19.836842 run-command.c:657       trace: run_command: GIT_INDEX_FILE=.git/index git submodule summary --files --for-status --summary-limit -1
> > 00:08:20.106802 git.c:749               trace: exec: git-submodule summary --files --for-status --summary-limit -1
> > 00:08:20.107638 run-command.c:657       trace: run_command: git-submodule summary --files --for-status --summary-limit -1
> > 00:08:21.162243 trace.c:414             performance: 0.000006000 s: git command: git --exec-path
> > 00:08:22.496146 git.c:463               trace: built-in: git rev-parse --git-dir
> > 00:08:22.497722 trace.c:414             performance: 0.001589000 s: git command: git rev-parse --git-dir
> > 00:08:22.764795 git.c:463               trace: built-in: git rev-parse --git-path objects
> > 00:08:22.766763 trace.c:414             performance: 0.001991000 s: git command: git rev-parse --git-path objects
> > 00:08:23.304626 git.c:463               trace: built-in: git rev-parse --show-prefix
> > 00:08:23.306436 trace.c:414             performance: 0.001833000 s: git command: git rev-parse --show-prefix
> > 00:08:23.575506 git.c:463               trace: built-in: git rev-parse --show-toplevel
> > 00:08:23.577138 trace.c:414             performance: 0.001656000 s: git command: git rev-parse --show-toplevel
> > 00:08:24.111335 trace.c:314             setup: git_dir: .git
> > 00:08:24.112123 trace.c:315             setup: git_common_dir: .git
> > 00:08:24.112138 trace.c:316             setup: worktree: /Users/vijay/dev/oss/ferdium
> > 00:08:24.112142 trace.c:317             setup: cwd: /Users/vijay/dev/oss/ferdium
> > 00:08:24.112149 trace.c:318             setup: prefix: (null)
> > 00:08:24.112154 git.c:463               trace: built-in: git submodule--helper summary --files --for-status -n -1 --
> > 00:08:24.113679 read-cache.c:2386       performance: 0.000216000 s: read cache .git/index
> > 00:08:24.117811 diff-lib.c:273          performance: 0.004115000 s:  diff-files
> > 00:08:24.117838 trace.c:414             performance: 0.007389000 s: git command: git submodule--helper summary --files --for-status -n -1 --
> > 00:08:24.118895 trace.c:414             performance: 4.013083000 s: git command: /opt/homebrew/opt/git/libexec/git-core/git submodule summary --files --for-status --summary-limit -1
> > nothing to commit, working tree clean
> > 00:08:24.119646 trace.c:414             performance: 8.571954000 s: git command: git status
> >
> > Hope this helps. Also, I noticed that the same repo, same versions of
> > all tools, etc - this issue only occurs on my M2 mac, but works
> > without any slowness on the intel mac.
>
> Thanks, that info does help. It at least narrows it down to these two
> subprocesses:
>
>     git submodule--helper summary --cached --for-status -n -1 -- HEAD
>     git submodule--helper summary --files --for-status -n -1 --
>
> Unfortunately, I'm still not able to reproduce on my M2 (even with that
> config set globally), so I wonder if there's something else at play.
> I've probably reached the end of my usefulness (since the problem does
> appear to be specific to submodules and cmd_submodule__helper seems to
> be lacking documentation), but you might consider replying with your
> output of
>
>     git config --list --show-scope
>
> after stripping any private information, of course.
>
> I'll provide my info down below in the hopes that it's useful for
> comparison by someone who knows more about this subsystem. It's worth
> noting that I'm running the same submodule--helper command and it's
> completing in a reasonable timeframe for me.
>
> Configuration:
>
>     ferdium-app.git:develop$ git --no-pager config --list --show-scope
>     system      credential.helper=osxkeychain
>     system      filter.lfs.clean=git-lfs clean -- %f
>     system      filter.lfs.smudge=git-lfs smudge -- %f
>     system      filter.lfs.process=git-lfs filter-process
>     system      filter.lfs.required=true
>     global      user.signingkey=/Users/sallred/.ssh/id_ed25519.pub
>     global      pull.rebase=true
>     global      push.default=current
>     global      core.editor=mg
>     global      core.excludesfile=/Users/sallred/.gitignore
>     global      core.fsmonitor=true
>     global      core.whitespace=trailing-space
>     global      init.defaultbranch=main
>     global      remote.pushdefault=origin
>     global      branch.autosetupmerge=true
>     global      rerere.enabled=true
>     global      gpg.format=ssh
>     global      maintenance.repo=/Users/sallred/a
>     global      maintenance.repo=/Users/sallred/b
>     global      maintenance.repo=/Users/sallred/c
>     global      maintenance.repo=/Users/sallred/d
>     global      commit.gpgsign=true
>     global      diff.wserrorhighlight=old,new
>     global      gpg.ssh.allowedsignersfile=/Users/sallred/.ssh/allowed_signers
>     global      remote.origin.fetch=+refs/notes/*:refs/notes/*
>     global      status.submodulesummary=true
>     local       core.repositoryformatversion=0
>     local       core.filemode=true
>     local       core.bare=false
>     local       core.logallrefupdates=true
>     local       core.ignorecase=true
>     local       core.precomposeunicode=true
>     local       remote.origin.url=git@github.com:vraravam/ferdium-app
>     local       remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
>     local       branch.develop.remote=origin
>     local       branch.develop.merge=refs/heads/develop
>
> Performance data:
>
>     ferdium-app.git:develop$ GIT_TRACE=1 GIT_TRACE_SETUP=1 GIT_TRACE_PERFORMANCE=1 git status
>     13:29:32.879597 trace.c:314             setup: git_dir: .git
>     13:29:32.880020 trace.c:315             setup: git_common_dir: .git
>     13:29:32.880026 trace.c:316             setup: worktree: /Users/sallred/tmp/ferdium-app
>     13:29:32.880029 trace.c:317             setup: cwd: /Users/sallred/tmp/ferdium-app
>     13:29:32.880033 trace.c:318             setup: prefix: (null)
>     13:29:32.880071 chdir-notify.c:70       setup: chdir from '/Users/sallred/tmp/ferdium-app' to '/Users/sallred/tmp/ferdium-app'
>     13:29:32.880078 git.c:463               trace: built-in: git status
>     13:29:32.880606 read-cache.c:2386       performance: 0.000118000 s:  read cache .git/index
>     13:29:32.904888 read-cache.c:1629       performance: 0.000082000 s:  refresh index
>     13:29:32.905983 diff-lib.c:273          performance: 0.000287000 s:  diff-files
>     13:29:32.907393 unpack-trees.c:2004     performance: 0.000014000 s:    traverse_trees
>     13:29:32.907403 unpack-trees.c:438      performance: 0.000002000 s:    check_updates
>     13:29:32.907407 unpack-trees.c:2096     performance: 0.000109000 s:   unpack_trees
>     13:29:32.907410 diff-lib.c:638          performance: 0.000163000 s:  diff-index
>     13:29:32.907681 name-hash.c:613         performance: 0.000107000 s:  initialize name hash
>     13:29:32.922245 run-command.c:657       trace: run_command: GIT_INDEX_FILE=.git/index git submodule summary --cached --for-status --summary-limit -1 HEAD
>     On branch develop
>     Your branch is up to date with 'origin/develop'.
>
>     13:29:32.928117 git.c:749               trace: exec: git-submodule summary --cached --for-status --summary-limit -1 HEAD
>     13:29:32.928715 run-command.c:657       trace: run_command: git-submodule summary --cached --for-status --summary-limit -1 HEAD
>     13:29:32.941067 trace.c:414             performance: 0.000002000 s: git command: git --exec-path
>     13:29:32.961582 git.c:463               trace: built-in: git rev-parse --git-dir
>     13:29:32.962376 trace.c:414             performance: 0.000802000 s: git command: git rev-parse --git-dir
>     13:29:32.966772 git.c:463               trace: built-in: git rev-parse --git-path objects
>     13:29:32.967437 trace.c:414             performance: 0.000673000 s: git command: git rev-parse --git-path objects
>     13:29:32.976243 git.c:463               trace: built-in: git rev-parse --show-prefix
>     13:29:32.976902 trace.c:414             performance: 0.000667000 s: git command: git rev-parse --show-prefix
>     13:29:32.981157 git.c:463               trace: built-in: git rev-parse --show-toplevel
>     13:29:32.981835 trace.c:414             performance: 0.000690000 s: git command: git rev-parse --show-toplevel
>     13:29:32.989790 trace.c:314             setup: git_dir: .git
>     13:29:32.990234 trace.c:315             setup: git_common_dir: .git
>     13:29:32.990238 trace.c:316             setup: worktree: /Users/sallred/tmp/ferdium-app
>     13:29:32.990242 trace.c:317             setup: cwd: /Users/sallred/tmp/ferdium-app
>     13:29:32.990245 trace.c:318             setup: prefix: (null)
>     13:29:32.990246 git.c:463               trace: built-in: git submodule--helper summary --cached --for-status -n -1 -- HEAD
>     13:29:32.991301 read-cache.c:2386       performance: 0.000062000 s:  read cache .git/index
>     13:29:33.002570 unpack-trees.c:2004     performance: 0.000009000 s:    traverse_trees
>     13:29:33.002577 unpack-trees.c:438      performance: 0.000001000 s:    check_updates
>     13:29:33.002580 unpack-trees.c:2096     performance: 0.000074000 s:   unpack_trees
>     13:29:33.002585 diff-lib.c:638          performance: 0.000117000 s:  diff-index
>     13:29:33.002591 trace.c:414             performance: 0.013037000 s: git command: git submodule--helper summary --cached --for-status -n -1 -- HEAD
>     13:29:33.003099 trace.c:414             performance: 0.075293000 s: git command: /opt/homebrew/opt/git/libexec/git-core/git submodule summary --cached --for-status --summary-limit -1 HEAD
>     13:29:33.003446 run-command.c:657       trace: run_command: GIT_INDEX_FILE=.git/index git submodule summary --files --for-status --summary-limit -1
>     13:29:33.007530 git.c:749               trace: exec: git-submodule summary --files --for-status --summary-limit -1
>     13:29:33.007926 run-command.c:657       trace: run_command: git-submodule summary --files --for-status --summary-limit -1
>     13:29:33.017316 trace.c:414             performance: 0.000002000 s: git command: git --exec-path
>     13:29:33.036544 git.c:463               trace: built-in: git rev-parse --git-dir
>     13:29:33.037494 trace.c:414             performance: 0.000959000 s: git command: git rev-parse --git-dir
>     13:29:33.041936 git.c:463               trace: built-in: git rev-parse --git-path objects
>     13:29:33.042731 trace.c:414             performance: 0.000803000 s: git command: git rev-parse --git-path objects
>     13:29:33.051651 git.c:463               trace: built-in: git rev-parse --show-prefix
>     13:29:33.052320 trace.c:414             performance: 0.000678000 s: git command: git rev-parse --show-prefix
>     13:29:33.056260 git.c:463               trace: built-in: git rev-parse --show-toplevel
>     13:29:33.057043 trace.c:414             performance: 0.000793000 s: git command: git rev-parse --show-toplevel
>     13:29:33.064488 trace.c:314             setup: git_dir: .git
>     13:29:33.064860 trace.c:315             setup: git_common_dir: .git
>     13:29:33.064862 trace.c:316             setup: worktree: /Users/sallred/tmp/ferdium-app
>     13:29:33.064863 trace.c:317             setup: cwd: /Users/sallred/tmp/ferdium-app
>     13:29:33.064866 trace.c:318             setup: prefix: (null)
>     13:29:33.064867 git.c:463               trace: built-in: git submodule--helper summary --files --for-status -n -1 --
>     13:29:33.065421 read-cache.c:2386       performance: 0.000085000 s:  read cache .git/index
>     13:29:33.079310 diff-lib.c:273          performance: 0.000026000 s:  diff-files
>     13:29:33.079330 trace.c:414             performance: 0.015094000 s: git command: git submodule--helper summary --files --for-status -n -1 --
>     13:29:33.079947 trace.c:414             performance: 0.072649000 s: git command: /opt/homebrew/opt/git/libexec/git-core/git submodule summary --files --for-status --summary-limit -1
>     13:29:33.080290 trace.c:414             performance: 0.201218000 s: git command: git status
>     nothing to commit, working tree clean
>
> --
> Sean Allred
-- 
You can visit my Github Profile to get to know what I work on outside
of my day job
Previous: Sean Allred
Message 5 of 5 in “git status became very slow after upgrading git”
  1. Vijay Raghavan AravamudhanFeb 10, 2024
  2. Sean AllredFeb 10, 2024
  3. Vijay Raghavan AravamudhanFeb 10, 2024
  4. Sean AllredFeb 10, 2024
  5. Vijay Raghavan AravamudhanFeb 10, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.