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

[PATCH v5 00/17] document & test fetch pruning & add fetch.pruneTags

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Feb 9, 2018, 20:31 UTC
Message-ID
<20180209203216.11560-1-avarab@gmail.com>
In-Reply-To
<20180121000304.32323-1-avarab@gmail.com>

Here's a v5 (correct subject line this time!). Many thanks to Eric for a thorough review.

I'll spare you the per-patch changelog. These are all minor commit message / doc / comment wording changes, with the exception of making a bit of the test code better, and adding a \n for grep portability. tbdiff at the end.

Ævar Arnfjörð Bjarmason (17):
  fetch: don't redundantly NULL something calloc() gave us
  fetch: trivially refactor assignment to ref_nr
  fetch: stop accessing "remote" variable indirectly
  remote: add a macro for "refs/tags/*:refs/tags/*"
  fetch tests: refactor in preparation for testing tag pruning
  fetch tests: re-arrange arguments for future readability
  fetch tests: add a tag to be deleted to the pruning tests
  fetch tests: test --prune and refspec interaction
  fetch tests: double quote a variable for interpolation
  fetch tests: expand case/esac for later change
  fetch tests: fetch <url> <spec> as well as fetch [<remote>]
  git fetch doc: add a new section to explain the ins & outs of pruning
  git remote doc: correct dangerous lies about what prune does
  git-fetch & config doc: link to the new PRUNING section
  fetch tests: add scaffolding for the new fetch.pruneTags
  fetch: add a --prune-tags option and fetch.pruneTags config
  fetch: make the --prune-tags work with <url>
 Documentation/config.txt               |  20 ++-
 Documentation/fetch-options.txt        |  17 ++-
 Documentation/git-fetch.txt            |  87 ++++++++++++
 Documentation/git-remote.txt           |  14 +-
 builtin/fetch.c                        |  54 ++++++--
 contrib/completion/git-completion.bash |   2 +-
 remote.c                               |  15 +++
 remote.h                               |   5 +
 t/t5510-fetch.sh                       | 238 +++++++++++++++++++++++++++------
 9 files changed, 391 insertions(+), 61 deletions(-)
tbdiff:
 1: da0992d97c =  1: da0992d97c fetch: don't redundantly NULL something calloc() gave us
 2: c781d18a29 !  2: 899430a3b2 fetch: trivially refactor assignment to ref_nr
    @@ -7,8 +7,8 @@
         "j" is, and "j" is only incremented in that loop, so this change isn't
         a logic error.
         
    -    This change makes a subsequent change which splits the incrementing of
    -    "ref_nr" into two blocks.
    +    This change simplifies a subsequent change, which will split the
    +    incrementing of "ref_nr" into two blocks.
         
         Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
     
 3: 1203ef6e35 =  3: 98e3a28bdf fetch: stop accessing "remote" variable indirectly
 4: 1d7956c444 =  4: 384c1fc318 remote: add a macro for "refs/tags/*:refs/tags/*"
 5: a0dc3eb024 =  5: ec92777861 fetch tests: refactor in preparation for testing tag pruning
 6: 7ed1561e3d =  6: 1c23526223 fetch tests: re-arrange arguments for future readability
 7: 6dbf0e688d =  7: 59abe07b71 fetch tests: add a tag to be deleted to the pruning tests
 8: 9fc3589793 =  8: af7acef671 fetch tests: test --prune and refspec interaction
 9: a4487f9389 =  9: cb72187362 fetch tests: double quote a variable for interpolation
10: b8c07e2d42 = 10: 300c1c0985 fetch tests: expand case/esac for later change
11: 6341131ee0 ! 11: 550e7df594 fetch tests: fetch <url> <spec> as well as fetch [<remote>]
    @@ -60,15 +60,12 @@
     -	test_expect_success "prune fetch.prune=$1 remote.origin.prune=$2${5:+ $5}; branch:$3 tag:$4" '
     +	mode=$6
     +
    -+	if ! test -e prune-type-setup-done
    ++	if test -z "$cmdline_setup"
     +	then
    -+		test_expect_success 'prune_type setup' '
    -+			git -C one config remote.origin.url >one.remote-url &&
    -+			git -C one config remote.origin.fetch >one.remote-fetch &&
    -+			remote_url="file://$(cat one.remote-url)" &&
    -+			remote_fetch="$(cat one.remote-fetch)" &&
    -+			cmdline_setup="\"$remote_url\" \"$remote_fetch\"" &&
    -+			touch prune-type-setup-done
    ++		test_expect_success 'setup cmdline_setup variable for subsequent test' '
    ++			remote_url="file://$(git -C one config remote.origin.url)" &&
    ++			remote_fetch="$(git -C one config remote.origin.fetch)" &&
    ++			cmdline_setup="\"$remote_url\" \"$remote_fetch\""
     +		'
     +	fi
     +
12: 824c3ed4c1 ! 12: 273f4c603f git fetch doc: add a new section to explain the ins & outs of pruning
    @@ -32,7 +32,7 @@
     +<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
    ++These remote-tracking references can be deleted as a one-off with
     +either of:
     +
     +------------------------------------------------
    @@ -44,13 +44,13 @@
     +------------------------------------------------
     +
     +To prune references as part of your normal workflow without needing to
    -+remember to run that set `fetch.prune` globally, or
    ++remember to run that, set `fetch.prune` globally, or
     +`remote.<name>.prune` per-remote in the config. See
     +linkgit:git-config[1].
     +
     +Here's where things get tricky and more specific. The pruning feature
     +doesn't actually care about branches, instead it'll prune local <->
    -+remote references as a function of the refspec of the remote (see
    ++remote-references as a function of the refspec of the remote (see
     +`<refspec>` and <<CRTB,CONFIGURED REMOTE-TRACKING BRANCHES>> above).
     +
     +Therefore if the refspec for the remote includes
13: 59de997172 ! 13: ada313b523 git remote doc: correct dangerous lies about what prune does
    @@ -11,7 +11,7 @@
         oldest version I could be bothered to test).
         
         E.g. if "refs/tags/*:refs/tags/*" is explicitly set in the refspec of
    -    the remote it'll delete all local tags <name> doesn't know about.
    +    the remote, it'll delete all local tags <name> doesn't know about.
         
         Instead, briefly give the reader just enough of a hint that this
         option might constitute a shotgun aimed at their foot, and point them
    @@ -36,11 +36,11 @@
     -These stale branches have already been removed from the remote repository
     -referenced by <name>, but are still locally available in
     -"remotes/<name>".
    -+Deletes stale references associated with <name>. By default stale
    -+remote-tracking branches under <name>, but depending on global
    -+configuration and the configuration of the remote we might even prune
    -+local tags that haven't been pushed there. Equivalent to `git fetch
    -+--prune <name>`, except that no new references will be fetched.
    ++Deletes stale references associated with <name>. By default, stale
    ++remote-tracking branches under <name> are deleted, but depending on
    ++global configuration and the configuration of the remote we might even
    ++prune local tags that haven't been pushed there. Equivalent to `git
    ++fetch --prune <name>`, except that no new references will be fetched.
     ++
     +See the PRUNING section of linkgit:git-fetch[1] for what it'll prune
     +depending on various configuration.
14: 5dfc9177bb = 14: eeb9102d9f git-fetch & config doc: link to the new PRUNING section
15: fc0890eb9c ! 15: 6c1facccda fetch tests: add scaffolding for the new fetch.pruneTags
    @@ -28,7 +28,7 @@
     +	cmdline=$7
     +	mode=$8
      
    - 	if ! test -e prune-type-setup-done
    + 	if test -z "$cmdline_setup"
      	then
     @@
      		cmdline="$new_cmdline"
16: 03b1393ea2 ! 16: 1d8d6e29fc fetch: add a --prune-tags option and fetch.pruneTags config
    @@ -1,9 +1,10 @@
     Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
     
    -    fetch: add a --fetch-prune option and fetch.pruneTags config
    -    
    -    Add a --fetch-prune option to git-fetch, along with fetch.pruneTags
    -    config option. This allows for doing any of:
    +    fetch: add a --prune-tags option and fetch.pruneTags config
    +    
    +    Add a --prune-tags option to git-fetch, along with fetch.pruneTags
    +    config option and a -P shorthand (-p is --prune). This allows for
    +    doing any of:
         
             git fetch -p -P
             git fetch --prune --prune-tags
    @@ -366,7 +367,7 @@
     +		if test "$fetch_prune_tags" = 'true' ||
     +		   test "$remote_origin_prune_tags" = 'true'
     +		then
    -+			if ! printf '%s' "$cmdline" | grep -q refs/remotes/origin/
    ++			if ! printf '%s' "$cmdline\n" | grep -q refs/remotes/origin/
     +			then
     +				new_cmdline="$new_cmdline refs/tags/*:refs/tags/*"
     +			fi
    @@ -396,7 +397,7 @@
     +test_configured_prune false true  false true  pruned pruned ""
     +test_configured_prune true  false true  false kept   kept   ""
     +
    -+# When --prune-tags is supplied it's ignored if an explict refspec is
    ++# When --prune-tags is supplied it's ignored if an explicit refspec is
     +# given, same for the configuration options.
     +test_configured_prune unset unset unset unset pruned kept \
     +	"--prune --prune-tags origin +refs/heads/*:refs/remotes/origin/*"
    @@ -405,13 +406,15 @@
     +test_configured_prune unset unset unset true pruned  kept \
     +	"--prune origin +refs/heads/*:refs/remotes/origin/*"
     +
    -+# Pruning that also takes place if s!origin!<file:// url of remote>!,
    -+# or otherwise uses the file://-specific codepath. However, because
    -+# there's no implicit +refs/heads/*:refs/remotes/origin/* refspec and
    -+# supplying it on the command-line negate --prune-tags the branches
    -+# will not be pruned.
    -+test_configured_prune_type unset unset unset unset kept kept     "origin --prune-tags" "name"
    -+test_configured_prune_type unset unset unset unset kept kept     "origin --prune-tags" "link"
    ++# Pruning that also takes place if a file:// url replaces a named
    ++# remote, with the exception of --prune-tags on the command-line
    ++# (arbitrary limitation).
    ++#
    ++# However, because there's no implicit
    ++# +refs/heads/*:refs/remotes/origin/* refspec and supplying it on the
    ++# command-line negates --prune-tags, the branches will not be pruned.
    ++test_configured_prune_type unset unset unset unset kept   kept   "origin --prune-tags" "name"
    ++test_configured_prune_type unset unset unset unset kept   kept   "origin --prune-tags" "link"
     +test_configured_prune_type unset unset unset unset pruned pruned "origin --prune --prune-tags" "name"
     +test_configured_prune_type unset unset unset unset kept   kept   "origin --prune --prune-tags" "link"
     +test_configured_prune_type unset unset unset unset pruned pruned "--prune --prune-tags origin" "name"
    @@ -427,9 +430,8 @@
     +test_configured_prune_type unset  true unset true  pruned pruned "origin" "name"
     +test_configured_prune_type unset  true unset true  kept   pruned "origin" "link"
     +
    -+# When all remote.origin.fetch settings are deleted a --prune
    -+# --prune-tags still implicitly supplies refs/tags/*:refs/tags/* so
    -+# tags, but not tracking branches, will be deleted.
    ++# Interaction between --prune-tags and no "fetch" config in the remote
    ++# at all.
     +test_expect_success 'remove remote.origin.fetch "one"' '
     +	(
     +		cd one &&
17: f0dca21626 ! 17: ddcd576c5c fetch: make the --prune-tags work with <url>
    @@ -1,6 +1,6 @@
     Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
     
    -    fetch: make the --fetch-prune work with <url>
    +    fetch: make the --prune-tags work with <url>
         
         Make the new --prune-tags option work properly when git-fetch is
         invoked with a <url> parameter instead of a <remote name>
    @@ -91,8 +91,18 @@
     --- a/t/t5510-fetch.sh
     +++ b/t/t5510-fetch.sh
     @@
    - test_configured_prune_type unset unset unset unset kept kept     "origin --prune-tags" "name"
    - test_configured_prune_type unset unset unset unset kept kept     "origin --prune-tags" "link"
    + 	"--prune origin +refs/heads/*:refs/remotes/origin/*"
    + 
    + # Pruning that also takes place if a file:// url replaces a named
    +-# remote, with the exception of --prune-tags on the command-line
    +-# (arbitrary limitation).
    +-#
    +-# However, because there's no implicit
    ++# remote. However, because there's no implicit
    + # +refs/heads/*:refs/remotes/origin/* refspec and supplying it on the
    + # command-line negates --prune-tags, the branches will not be pruned.
    + test_configured_prune_type unset unset unset unset kept   kept   "origin --prune-tags" "name"
    + test_configured_prune_type unset unset unset unset kept   kept   "origin --prune-tags" "link"
      test_configured_prune_type unset unset unset unset pruned pruned "origin --prune --prune-tags" "name"
     -test_configured_prune_type unset unset unset unset kept   kept   "origin --prune --prune-tags" "link"
     +test_configured_prune_type unset unset unset unset kept   pruned "origin --prune --prune-tags" "link"
    @@ -103,6 +113,18 @@
      test_configured_prune_type unset unset true  unset kept   pruned "--prune origin" "link"
      test_configured_prune_type unset unset unset true  pruned pruned "--prune origin" "name"
     @@
    + test_configured_prune_type unset  true unset true  pruned pruned "origin" "name"
    + test_configured_prune_type unset  true unset true  kept   pruned "origin" "link"
    + 
    +-# Interaction between --prune-tags and no "fetch" config in the remote
    +-# at all.
    ++# When all remote.origin.fetch settings are deleted a --prune
    ++# --prune-tags still implicitly supplies refs/tags/*:refs/tags/* so
    ++# tags, but not tracking branches, will be deleted.
    + test_expect_success 'remove remote.origin.fetch "one"' '
    + 	(
    + 		cd one &&
    +@@
      	)
      '
      test_configured_prune_type unset unset unset unset kept pruned "origin --prune --prune-tags" "name"
-- 
2.15.1.424.g9478a66081
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 93 of 118 in “[BUG] git remote prune removes local tags, depending on fetch config”
  1. Michael GiuffridaJan 15, 2018
  2. Ævar Arnfjörð BjarmasonJan 16, 2018
  3. Michael GiuffridaJan 16, 2018
  4. Ævar Arnfjörð BjarmasonJan 16, 2018
  5. 00/11 document & test fetch pruning + WIP fetch.pruneTagsÆvar Arnfjörð Bjarmason, Jan 19, 2018
  6. 01/11 fetch tests: refactor in preparation for testing tag pruningÆvar Arnfjörð Bjarmason, Jan 19, 2018
  7. 02/11 fetch tests: arrange arguments for future readabilityÆvar Arnfjörð Bjarmason, Jan 19, 2018
  8. 03/11 fetch tests: add a tag to be deleted to the pruning testsÆvar Arnfjörð Bjarmason, Jan 19, 2018
  9. 04/11 fetch tests: double quote a variable for interpolationÆvar Arnfjörð Bjarmason, Jan 19, 2018
  10. 05/11 fetch tests: test --prune and refspec interactionÆvar Arnfjörð Bjarmason, Jan 19, 2018
  11. 06/11 git fetch doc: add a new section to explain the ins & outs of pruningÆvar Arnfjörð Bjarmason, Jan 19, 2018
  12. Eric SunshineJan 19, 2018
  13. 07/11 git remote doc: correct dangerous lies about what prune doesÆvar Arnfjörð Bjarmason, Jan 19, 2018
  14. 08/11 git-fetch & config doc: link to the new PRUNING sectionÆvar Arnfjörð Bjarmason, Jan 19, 2018
  15. 09/11 fetch: don't redundantly null something calloc() gave usÆvar Arnfjörð Bjarmason, Jan 19, 2018
  16. 10/11 fetch tests: add scaffolding for the new fetch.pruneTagsÆvar Arnfjörð Bjarmason, Jan 19, 2018
  17. 11/11 WIP fetch: add a --fetch-prune option and fetch.pruneTags configÆvar Arnfjörð Bjarmason, Jan 19, 2018
  18. 00/12 document & test fetch pruning & add fetch.pruneTagsÆvar Arnfjörð Bjarmason, Jan 21, 2018
  19. 01/12 fetch tests: refactor in preparation for testing tag pruningÆvar Arnfjörð Bjarmason, Jan 21, 2018
  20. 02/12 fetch tests: arrange arguments for future readabilityÆvar Arnfjörð Bjarmason, Jan 21, 2018
  21. 03/12 fetch tests: add a tag to be deleted to the pruning testsÆvar Arnfjörð Bjarmason, Jan 21, 2018
  22. 04/12 fetch tests: double quote a variable for interpolationÆvar Arnfjörð Bjarmason, Jan 21, 2018
  23. Junio C HamanoJan 22, 2018
  24. Ævar Arnfjörð BjarmasonJan 22, 2018
  25. 05/12 fetch tests: test --prune and refspec interactionÆvar Arnfjörð Bjarmason, Jan 21, 2018
  26. 06/12 git fetch doc: add a new section to explain the ins & outs of pruningÆvar Arnfjörð Bjarmason, Jan 21, 2018
  27. 07/12 git remote doc: correct dangerous lies about what prune doesÆvar Arnfjörð Bjarmason, Jan 21, 2018
  28. Junio C HamanoJan 22, 2018
  29. Ævar Arnfjörð BjarmasonJan 22, 2018
  30. 08/12 git-fetch & config doc: link to the new PRUNING sectionÆvar Arnfjörð Bjarmason, Jan 21, 2018
  31. 09/12 fetch: don't redundantly NULL something calloc() gave usÆvar Arnfjörð Bjarmason, Jan 21, 2018
  32. Ævar Arnfjörð BjarmasonJan 21, 2018
  33. 10/12 fetch: stop accessing "remote" variable indirectlyÆvar Arnfjörð Bjarmason, Jan 21, 2018
  34. 11/12 fetch tests: add scaffolding for the new fetch.pruneTagsÆvar Arnfjörð Bjarmason, Jan 21, 2018
  35. 12/12 fetch: add a --fetch-prune option and fetch.pruneTags configÆvar Arnfjörð Bjarmason, Jan 21, 2018
  36. Junio C HamanoJan 22, 2018
  37. Ævar Arnfjörð BjarmasonJan 22, 2018
  38. 00/11 document & test fetch pruning & add fetch.pruneTagsÆvar Arnfjörð Bjarmason, Jan 23, 2018
  39. 01/11 fetch: don't redundantly NULL something calloc() gave usÆvar Arnfjörð Bjarmason, Jan 23, 2018
  40. 03/11 fetch tests: refactor in preparation for testing tag pruningÆvar Arnfjörð Bjarmason, Jan 23, 2018
  41. 02/11 fetch: stop accessing "remote" variable indirectlyÆvar Arnfjörð Bjarmason, Jan 23, 2018
  42. Junio C HamanoJan 24, 2018
  43. 06/11 fetch tests: test --prune and refspec interactionÆvar Arnfjörð Bjarmason, Jan 23, 2018
  44. 07/11 git fetch doc: add a new section to explain the ins & outs of pruningÆvar Arnfjörð Bjarmason, Jan 23, 2018
  45. 09/11 git-fetch & config doc: link to the new PRUNING sectionÆvar Arnfjörð Bjarmason, Jan 23, 2018
  46. 10/11 fetch tests: add scaffolding for the new fetch.pruneTagsÆvar Arnfjörð Bjarmason, Jan 23, 2018
  47. 11/11 fetch: add a --fetch-prune option and fetch.pruneTags configÆvar Arnfjörð Bjarmason, Jan 23, 2018
  48. Junio C HamanoJan 24, 2018
  49. Ævar Arnfjörð BjarmasonJan 24, 2018
  50. Junio C HamanoJan 24, 2018
  51. 05/11 fetch tests: add a tag to be deleted to the pruning testsÆvar Arnfjörð Bjarmason, Jan 23, 2018
  52. 08/11 git remote doc: correct dangerous lies about what prune doesÆvar Arnfjörð Bjarmason, Jan 23, 2018
  53. 04/11 fetch tests: re-arrange arguments for future readabilityÆvar Arnfjörð Bjarmason, Jan 23, 2018
  54. Junio C HamanoJan 24, 2018
  55. Ævar Arnfjörð BjarmasonJan 24, 2018
  56. Ævar Arnfjörð BjarmasonFeb 6, 2018
  57. 00/17 document & test fetch pruning & add fetch.pruneTagsÆvar Arnfjörð Bjarmason, Feb 8, 2018
  58. 01/17 fetch: don't redundantly NULL something calloc() gave usÆvar Arnfjörð Bjarmason, Feb 8, 2018
  59. Eric SunshineFeb 9, 2018
  60. Ævar Arnfjörð BjarmasonFeb 9, 2018
  61. 02/17 fetch: trivially refactor assignment to ref_nrÆvar Arnfjörð Bjarmason, Feb 8, 2018
  62. Eric SunshineFeb 9, 2018
  63. 03/17 fetch: stop accessing "remote" variable indirectlyÆvar Arnfjörð Bjarmason, Feb 8, 2018
  64. 05/17 fetch tests: refactor in preparation for testing tag pruningÆvar Arnfjörð Bjarmason, Feb 8, 2018
  65. 07/17 fetch tests: add a tag to be deleted to the pruning testsÆvar Arnfjörð Bjarmason, Feb 8, 2018
  66. 11/17 fetch tests: fetch <url> <spec> as well as fetch [<remote>]Ævar Arnfjörð Bjarmason, Feb 8, 2018
  67. Eric SunshineFeb 9, 2018
  68. Ævar Arnfjörð BjarmasonFeb 9, 2018
  69. Jeff KingFeb 9, 2018
  70. Eric SunshineFeb 9, 2018
  71. Junio C HamanoFeb 9, 2018
  72. Junio C HamanoFeb 9, 2018
  73. 12/17 git fetch doc: add a new section to explain the ins & outs of pruningÆvar Arnfjörð Bjarmason, Feb 8, 2018
  74. Eric SunshineFeb 9, 2018
  75. 13/17 git remote doc: correct dangerous lies about what prune doesÆvar Arnfjörð Bjarmason, Feb 8, 2018
  76. Eric SunshineFeb 9, 2018
  77. 16/17 fetch: add a --fetch-prune option and fetch.pruneTags configÆvar Arnfjörð Bjarmason, Feb 8, 2018
  78. Eric SunshineFeb 9, 2018
  79. Ævar Arnfjörð BjarmasonFeb 9, 2018
  80. 15/17 fetch tests: add scaffolding for the new fetch.pruneTagsÆvar Arnfjörð Bjarmason, Feb 8, 2018
  81. 14/17 git-fetch & config doc: link to the new PRUNING sectionÆvar Arnfjörð Bjarmason, Feb 8, 2018
  82. 17/17 fetch: make the --fetch-prune work with <url>Ævar Arnfjörð Bjarmason, Feb 8, 2018
  83. Eric SunshineFeb 9, 2018
  84. Ævar Arnfjörð BjarmasonFeb 9, 2018
  85. 10/17 fetch tests: expand case/esac for later changeÆvar Arnfjörð Bjarmason, Feb 8, 2018
  86. 09/17 fetch tests: double quote a variable for interpolationÆvar Arnfjörð Bjarmason, Feb 8, 2018
  87. 06/17 fetch tests: re-arrange arguments for future readabilityÆvar Arnfjörð Bjarmason, Feb 8, 2018
  88. 08/17 fetch tests: test --prune and refspec interactionÆvar Arnfjörð Bjarmason, Feb 8, 2018
  89. 04/17 remote: add a macro for "refs/tags/*:refs/tags/*"Ævar Arnfjörð Bjarmason, Feb 8, 2018
  90. Ævar Arnfjörð BjarmasonFeb 8, 2018
  91. Junio C HamanoFeb 8, 2018
  92. Ævar Arnfjörð BjarmasonFeb 9, 2018
  93. 00/17 document & test fetch pruning & add fetch.pruneTagsÆvar Arnfjörð Bjarmason, Feb 9, 2018
  94. 01/17 fetch: don't redundantly NULL something calloc() gave usÆvar Arnfjörð Bjarmason, Feb 9, 2018
  95. 02/17 fetch: trivially refactor assignment to ref_nrÆvar Arnfjörð Bjarmason, Feb 9, 2018
  96. 03/17 fetch: stop accessing "remote" variable indirectlyÆvar Arnfjörð Bjarmason, Feb 9, 2018
  97. 04/17 remote: add a macro for "refs/tags/*:refs/tags/*"Ævar Arnfjörð Bjarmason, Feb 9, 2018
  98. 05/17 fetch tests: refactor in preparation for testing tag pruningÆvar Arnfjörð Bjarmason, Feb 9, 2018
  99. 08/17 fetch tests: test --prune and refspec interactionÆvar Arnfjörð Bjarmason, Feb 9, 2018
  100. 09/17 fetch tests: double quote a variable for interpolationÆvar Arnfjörð Bjarmason, Feb 9, 2018
  101. 10/17 fetch tests: expand case/esac for later changeÆvar Arnfjörð Bjarmason, Feb 9, 2018
  102. 11/17 fetch tests: fetch <url> <spec> as well as fetch [<remote>]Ævar Arnfjörð Bjarmason, Feb 9, 2018
  103. 13/17 git remote doc: correct dangerous lies about what prune doesÆvar Arnfjörð Bjarmason, Feb 9, 2018
  104. 12/17 git fetch doc: add a new section to explain the ins & outs of pruningÆvar Arnfjörð Bjarmason, Feb 9, 2018
  105. 06/17 fetch tests: re-arrange arguments for future readabilityÆvar Arnfjörð Bjarmason, Feb 9, 2018
  106. 07/17 fetch tests: add a tag to be deleted to the pruning testsÆvar Arnfjörð Bjarmason, Feb 9, 2018
  107. 14/17 git-fetch & config doc: link to the new PRUNING sectionÆvar Arnfjörð Bjarmason, Feb 9, 2018
  108. 15/17 fetch tests: add scaffolding for the new fetch.pruneTagsÆvar Arnfjörð Bjarmason, Feb 9, 2018
  109. 16/17 fetch: add a --prune-tags option and fetch.pruneTags configÆvar Arnfjörð Bjarmason, Feb 9, 2018
  110. 17/17 fetch: make the --prune-tags work with <url>Ævar Arnfjörð Bjarmason, Feb 9, 2018
  111. Junio C HamanoFeb 22, 2018
  112. Ævar Arnfjörð BjarmasonFeb 22, 2018
  113. Junio C HamanoFeb 22, 2018
  114. Ævar Arnfjörð BjarmasonFeb 23, 2018
  115. Junio C HamanoFeb 23, 2018
  116. Ævar Arnfjörð BjarmasonFeb 24, 2018
  117. Andreas SchwabJan 16, 2018
  118. Kevin DaudtJan 18, 2018

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.