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

Re: [PATCH 6/17] Document the [<head>...] and -- arguments to git-prune.

From
Junio C Hamano <junkio@cox.net>
Date
Dec 9, 2005, 00:28 UTC
Message-ID
<7voe3r9krf.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<7vzmnb9m7w.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano <junkio@cox.net> writes:
> Come to think of it, why would anybody want to pass heads
> explicitly?  It seems to me that it would allow you to _lose_
> objects referenced only from omitted branches...

Not replacing but always including our own refs may be more desirable (and unarguably much safer), but at the same time I have a suspicion that that might be forbidding a useful usage I haven't thought of, so...

---
diff --git a/Documentation/git-prune.txt b/Documentation/git-prune.txt
index 3367c9b..05c8d49 100644
--- a/Documentation/git-prune.txt
+++ b/Documentation/git-prune.txt
@@ -8,7 +8,7 @@ git-prune - Prunes all unreachable objec
 
 SYNOPSIS
 --------
-'git-prune' [-n]
+'git-prune' [-n] [--] [<head>...]
 
 DESCRIPTION
 -----------
@@ -27,6 +27,34 @@ OPTIONS
 	Do not remove anything; just report what it would
 	remove.
 
+--::
+	Do not interpret any more arguments as options.
+
+<head>...::
+	Instead of keeping objects
+	reachable from any of our references, keep objects
+	reachable from only listed <head>s.
++
+Note that the explicitly named <head>s are *not* appended to the
+default set of references, but they replace them.  In general you
+would want to say `git prune $(git-rev-parse --all) extra1
+extra2` to keep chains of commits leading to extra1, extra2,
+... in addition to what are reachable from your own refs.
+Saying `git prune extra1 extra2` would *lose* objects reachable
+only from the usual refs, which is usually not what you want.
+
+
+EXAMPLE
+-------
+
+To prune objects not used by your repository and another that
+borrows from your repository via its
+`.git/objects/info/alternates`:
+
+------------
+$ git prune $(git-rev-parse --all) \
+  $(cd ../another && $(git-rev-parse --all))
+------------
 
 Author
 ------
Previous: Junio C HamanoNext: Junio C Hamano
Message 8 of 12 in “Documentation/git-commit.txt: Add long options and -- to documentation.”
  1. 4/17 Documentation/git-commit.txt: Add long options and -- to documentation.Nikolai Weibull, Dec 8, 2005
  2. 5/17 Documentation/git-verify-pack.txt: added documentation for --.Nikolai Weibull, Dec 8, 2005
  3. 6/17 Document the [<head>...] and -- arguments to git-prune.Nikolai Weibull, Dec 8, 2005
  4. 7/17 Documentation/git-cvsimport.txt: Fix a slight glitch in description heading.Nikolai Weibull, Dec 8, 2005
  5. 8/17 Documentation/git-cherry-pick: Add --replay and --no-commit.Nikolai Weibull, Dec 8, 2005
  6. Junio C HamanoDec 8, 2005
  7. Junio C HamanoDec 8, 2005
  8. Junio C HamanoDec 9, 2005
  9. git-prune: never lose objects reachable from our refs.Junio C Hamano, Dec 9, 2005
  10. Peter EriksenDec 9, 2005
  11. Junio C HamanoDec 9, 2005
  12. Nikolai WeibullDec 9, 2005

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.