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

Re: [PATCH 13/13] "git prune" is safe now

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 25, 2013, 03:59 UTC
Message-ID
<xmqqsixyl8sl.fsf@gitster.dls.corp.google.com>
In-Reply-To
<1590776724.1091303.1377329872606.JavaMail.ngmail@webmail08.arcor-online.net>
Thomas Ackermann <th.acker@arcor.de> writes:
> According to the man-pages of "git prune" and "git fsck",
> both are safe nowadays.

Safe does not have much to do with the latter. "git fsck" has always been safe in that it would not alter the object store, and if you run it while you are actively creating (or pruning for that matter) objects, it _will_ get confused.

For that matter, running "prune", even though we designed it to be safe from concurrent accesses, deliberately on a non-quiescent repository is not a good idea, either. It may be a good idea to weaken the phrasing used to discourage it, but discouraging itself is not a bad idea.

Show 28 quoted lines
> Signed-off-by: Thomas Ackermann <th.acker@arcor.de>
> ---
>  Documentation/user-manual.txt | 12 +-----------
>  1 file changed, 1 insertion(+), 11 deletions(-)
>
> diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt
> index 08d8c91..29945d9 100644
> --- a/Documentation/user-manual.txt
> +++ b/Documentation/user-manual.txt
> @@ -3283,17 +3283,7 @@ state, you can just prune all unreachable objects:
>  $ git prune
>  ------------------------------------------------
>  
> -and they'll be gone. But you should only run `git prune` on a quiescent
> -repository--it's kind of like doing a filesystem fsck recovery: you
> -don't want to do that while the filesystem is mounted.
> -
> -(The same is true of `git fsck` itself, btw, but since
> -`git fsck` never actually *changes* the repository, it just reports
> -on what it found, `git fsck` itself is never 'dangerous' to run.
> -Running it while somebody is actually changing the repository can cause
> -confusing and scary messages, but it won't actually do anything bad. In
> -contrast, running `git prune` while somebody is actively changing the
> -repository is a *BAD* idea).
> +and they'll be gone. 
>  
>  [[recovering-from-repository-corruption]]
>  Recovering from repository corruption
Previous: Thomas AckermannNext: Philip Oakley
Message 43 of 44 in “Modernize user-manual”
  1. 0/13 Modernize user-manualThomas Ackermann, Aug 24, 2013
  2. 01/13 Call it "Git User Manual" and remove reference to very old Git versionThomas Ackermann, Aug 24, 2013
  3. Jonathan NiederAug 25, 2013
  4. Junio C HamanoAug 25, 2013
  5. 02/13 Use current "detached HEAD" messageThomas Ackermann, Aug 24, 2013
  6. Jonathan NiederAug 25, 2013
  7. Aw: Re: [PATCH 02/13] Use current "detached HEAD" messageThomas Ackermann, Aug 25, 2013
  8. 03/13 Use current output for "git repack"Thomas Ackermann, Aug 24, 2013
  9. Jonathan NiederAug 25, 2013
  10. Aw: Re: [PATCH 03/13] Use current output for "git repack"Thomas Ackermann, Aug 25, 2013
  11. 04/13 Use "git merge" instead of "git pull ."Thomas Ackermann, Aug 24, 2013
  12. Junio C HamanoAug 25, 2013
  13. Jonathan NiederAug 25, 2013
  14. Martin von ZweigbergkAug 25, 2013
  15. 05/13 Fix some typosThomas Ackermann, Aug 24, 2013
  16. Jonathan NiederAug 25, 2013
  17. Aw: Re: [PATCH 05/13] Fix some typosThomas Ackermann, Aug 25, 2013
  18. 06/13 Simplify "How to make a commit"Thomas Ackermann, Aug 24, 2013
  19. Junio C HamanoAug 25, 2013
  20. Jonathan NiederAug 25, 2013
  21. Aw: Re: [PATCH 06/13] Simplify "How to make a commit"Thomas Ackermann, Aug 25, 2013
  22. 07/13 Improve description in "How to merge"Thomas Ackermann, Aug 24, 2013
  23. Junio C HamanoAug 25, 2013
  24. Jonathan NiederAug 25, 2013
  25. Aw: Re: [PATCH 07/13] Improve description in "How to merge"Thomas Ackermann, Aug 25, 2013
  26. 08/13 Improve section "Manipulating branches"Thomas Ackermann, Aug 24, 2013
  27. Junio C HamanoAug 25, 2013
  28. Aw: Re: [PATCH 08/13] Improve section "Manipulating branches"Thomas Ackermann, Aug 25, 2013
  29. 09/13 Improve section "Merge multiple trees"Thomas Ackermann, Aug 24, 2013
  30. Jonathan NiederAug 25, 2013
  31. Aw: Re: [PATCH 09/13] Improve section "Merge multiple trees"Thomas Ackermann, Aug 25, 2013
  32. Jonathan NiederAug 25, 2013
  33. 10/13 Remove unnecessary historical note from "Object storage format"Thomas Ackermann, Aug 24, 2013
  34. Junio C HamanoAug 25, 2013
  35. 11/13 Remove obscure reference from "Examples"Thomas Ackermann, Aug 24, 2013
  36. Junio C HamanoAug 25, 2013
  37. Jonathan NiederAug 25, 2013
  38. Aw: Re: [PATCH 11/13] Remove obscure reference from "Examples"Thomas Ackermann, Aug 25, 2013
  39. 12/13 Remove irrelevant reference from "Tying it all together"Thomas Ackermann, Aug 24, 2013
  40. Junio C HamanoAug 25, 2013
  41. Jon LoeligerAug 26, 2013
  42. 13/13 "git prune" is safe nowThomas Ackermann, Aug 24, 2013
  43. Junio C HamanoAug 25, 2013
  44. Philip OakleyAug 24, 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.