Thread (94 messages) flat view 94 messages, 4 authors, 2018-02-09

Re: [PATCH 06/11] git fetch doc: add a new section to explain the ins & outs of pruning

From: Eric Sunshine <hidden>
Date: 2018-01-19 00:46:51

On Thu, Jan 18, 2018 at 7:00 PM, Ævar Arnfjörð Bjarmason
[off-list ref] wrote:
quoted hunk ↗ jump to hunk
Add a new section to canonically explain how remote reference pruning
works, and how users should be careful about using it in conjunction
with tag refspecs in particular.

A subsequent commit will update the git-remote documentation to refer
to this section, and details the motivation for writing this in the
first place.

Signed-off-by: Ævar Arnfjörð Bjarmason <redacted>
---
diff --git a/Documentation/git-fetch.txt b/Documentation/git-fetch.txt
@@ -99,6 +99,55 @@ The latter use of the `remote.<repository>.fetch` values can be
+PRUNING
+-------
+
+Git has a default disposition to keeping data unless it's explicitly
s/keeping/keep/ or s/to keeping/of keeping/
+thrown away, this extends to keeping a hold of local references to
s/away,/away;/
s/to keeping a hold of/holding onto/
+branches on remotes that have themselves deleted those branches.
+
+If left to accumulate these stale references might make performance
s/accumulate/&,/
+worse on big and busy repos that have a lot of branch churn, and
+e.g. make the output of commands like `git branch -a --contains
+<commit>` needlessly verbose, as well as impacting anything else
+that'll work with the complete set of known references.
+
+These remote tracking references can be deleted as a one-off with
+either of:
+
+------------------------------------------------
+# While fetching
+$ git fetch --prune <name>
+
+# Only prune, don't fetch
+$ git remote <name>
+------------------------------------------------
Did you mean "git remote prune <name>"?
+To prune references on a remote as part of your normal workflow
This reads as if it's possible to prune something on the remote
machine itself. Maybe just say:

    To prune references as part of your normal workflow...
+without needing to remember to run that set `fetch.prune` globally, or
+`remote.<name>.prune` per-remote in the config. See
+linkgit:git-config[1].
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help