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

Re: bug? git push triggers auto pack when gc.auto = 0

From
David Kastrup <dak@gnu.org>
Date
Feb 4, 2014, 11:11 UTC
Message-ID
<87iosvxhdb.fsf@fencepost.gnu.org>
In-Reply-To
<loom.20140204T104753-1@post.gmane.org>
chris <jugg@hotmail.com> writes:
Show 12 quoted lines
> Ok, given your full response, I understand how this is being
> conceptualized now, thanks.  However, if you look at it purely from a
> user's perspective who is manually invoking these commands for the
> command's primary purpose, the current behavior is annoying.
>
> If we assume Git is right in implementing that no server async actions
> are executed on behalf of a client action, then this falls under the
> category of an ill-behaved server in my opinion.  Anything a server
> does that is not directly related to fulfilling the requested client
> action is now considered bad behavior as it blocks the client from
> continuing whatever it needs to get on with.  I see such
> implementation in Git as favoring server's needs over clients.

There are no "server's needs" at all. Git only reacts to client requests. It is in the clients' own interest when garbage collection is periodically done since it improves response time.

It's arguable that it would be nicer to use an incremental compaction process that hides the periodic costs by distributing them over the request totality. That replaces the periodic "why does it have to garbage collect when _I_ am using it" annoyance with "why is this generally slow". There is no net benefit to that approach safe for

a) avoiding complaints of "smart" people who have discovered that they can speed up git by disabling garbage collection, but eventually find that git is becoming slow for them but not for others. b) avoiding these mailing list discussions.

The second benefit could likely be achieved by displaying "Server unreachable... retrying..." instead of reporting about git gc.

-- 
David Kastrup
Previous: chris
Message 30 of 30 in “bug? git push triggers auto pack when gc.auto = 0”
  1. chrisFeb 4, 2014
  2. Duy NguyenFeb 4, 2014
  3. chrisFeb 4, 2014
  4. Duy NguyenFeb 4, 2014
  5. 1/2 receive-pack: update $GIT_DIR/info before auto garbage collectionNguyễn Thái Ngọc Duy, Feb 4, 2014
  6. 2/2 receive-pack: hint that the user can stop "git push" at auto gc timeNguyễn Thái Ngọc Duy, Feb 4, 2014
  7. Junio C HamanoFeb 4, 2014
  8. Junio C HamanoFeb 4, 2014
  9. chrisFeb 7, 2014
  10. Duy NguyenFeb 7, 2014
  11. chrisFeb 7, 2014
  12. 1/2 daemon: move daemonize() to libgit.aNguyễn Thái Ngọc Duy, Feb 8, 2014
  13. 2/2 gc: config option for running --auto in backgroundNguyễn Thái Ngọc Duy, Feb 8, 2014
  14. Erik Faye-LundFeb 10, 2014
  15. Duy NguyenFeb 10, 2014
  16. Erik Faye-LundFeb 10, 2014
  17. Junio C HamanoFeb 10, 2014
  18. Junio C HamanoFeb 10, 2014
  19. Duy NguyenFeb 12, 2014
  20. Junio C HamanoFeb 12, 2014
  21. Erik Faye-LundFeb 10, 2014
  22. Junio C HamanoFeb 10, 2014
  23. Duy NguyenFeb 10, 2014
  24. Junio C HamanoFeb 11, 2014
  25. chrisFeb 4, 2014
  26. David KastrupFeb 4, 2014
  27. chrisFeb 4, 2014
  28. David KastrupFeb 4, 2014
  29. chrisFeb 4, 2014
  30. David KastrupFeb 4, 2014

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.