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

slow git-cherry-pick.

From
PSPaweł Sikora <pawel.sikora@agmk.net>
Date
Nov 24, 2013, 10:45 UTC
Message-ID
<2142926.gg3W3MsbJZ@localhost.localdomain>
Hi,

i've recently reinstalled a fresh system (fc20-beta) on my workstation and observing a big slowdown on git cherry-pick operation (git-1.8.4.2-1). the previous centos installation with an old git version works faster (few seconds per cherry pick). now the same operation takes >1 min.

my git repo isn't very big[1] but it's checked out on the linear lvm where random i/o generally hurts and strace shows that current git version performs 2x{lstat}+1x{open,read,close} [2] on whole checkout before cherry-pick. there is also a .gitattributes searching on all levels which doing another tons of i/o. looks like git-status on action but why on whole repo while cherry-pick touches limited set of files?

is it a bug or feature?

BR, Paweł.

please CC me on reply.

[1] $ du -sh .git/objects/ 4.2G .git/objects/ $ find sources -type f|wc -l 9536 $ find buildenv -type f|wc -l 14637

[2] lstat("buildenv/boost-1.51.0/include/boost/bimap.hpp", {st_mode=S_IFREG|0664, st_size=387, ...}) = 0 lstat("buildenv/boost-1.51.0/include/boost/bimap.hpp", {st_mode=S_IFREG|0664, st_size=387, ...}) = 0 open("buildenv/boost-1.51.0/include/boost/bimap.hpp", O_RDONLY) = 5 read(5, "// Boost.Bimap\n//\n// Copyright ("..., 387) = 387 close(5)

-- 
gpg key fingerprint = 60B4 9886 AD53 EB3E 88BB  1EB5 C52E D01B 683B 9411
Next: Duy Nguyen
Message 1 of 9 in “slow git-cherry-pick.”
  1. Paweł SikoraNov 24, 2013
  2. Duy NguyenNov 24, 2013
  3. Duy NguyenNov 24, 2013
  4. Paweł SikoraNov 24, 2013
  5. Junio C HamanoNov 25, 2013
  6. Paweł SikoraDec 3, 2013
  7. Thomas RastDec 3, 2013
  8. Duy NguyenDec 4, 2013
  9. Paweł SikoraDec 4, 2013

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.