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

[PATCH v3 0/6] remote: handle negative refspecs with show

From
Jacob Keller <jacob.keller@gmail.com>
Date
Jun 17, 2022, 00:20 UTC
Message-ID
<20220617002036.1577-1-jacob.keller@gmail.com>

The git remote show command does not handle negative refspecs. In fact, the function will happily show that the refs will be fetched, even though they won't be.

The first patch in this series fixes the show issue for new refs that should be marked as skipped. The later patches do some cleanup on the t5505-remote.sh script, improving the test file, along with some improved test infrastructure.

Finally, I also noticed that git remote prune doesn't interact as expected with negative refspecs either, so there is a patch to add an expected failure for this as well.

I suspect we need to dig into get_stale_heads and make that handle negative refspecs properly, but I wasn't able to figure that out in the time I have today.

Changes since v2:
* re-ordered so that the fix is first
* cleaned up helper functions to honor -C instead of hard coding 'test'
* added expected failures for the short comings of this fix
Jacob Keller (6):
  remote: handle negative refspecs in git remote show
  t5505: remove sub shell use in favor of git -C
  tests: handle --global directly in test_config/test_unconfig
  tests: only automatically unset matching values from test_config
  t5505: use test_config where appropriate
  remote: add test for negative refspec with prune
 builtin/remote.c                        |   12 +-
 remote.c                                |    2 +-
 remote.h                                |    6 +
 t/lib-parallel-checkout.sh              |    4 +-
 t/lib-proto-disable.sh                  |   12 +-
 t/lib-submodule-update.sh               |    2 +-
 t/t0001-init.sh                         |   14 +-
 t/t0021-conversion.sh                   |   58 +-
 t/t0210-trace2-normal.sh                |   10 +-
 t/t0211-trace2-perf.sh                  |    4 +-
 t/t0212-trace2-event.sh                 |    2 +-
 t/t1309-early-config.sh                 |    2 +-
 t/t2081-parallel-checkout-collisions.sh |    2 +-
 t/t2082-parallel-checkout-attributes.sh |    4 +-
 t/t3431-rebase-fork-point.sh            |    2 +-
 t/t5505-remote.sh                       | 1132 ++++++++++-------------
 t/t5544-pack-objects-hook.sh            |    6 +-
 t/t5550-http-fetch-dumb.sh              |    8 +-
 t/t5573-pull-verify-signatures.sh       |    6 +-
 t/t5606-clone-options.sh                |   10 +-
 t/t5617-clone-submodules-remote.sh      |    4 +-
 t/t5702-protocol-v2.sh                  |    2 +-
 t/t7814-grep-recurse-submodules.sh      |   16 +-
 t/test-lib-functions.sh                 |  104 ++-
 24 files changed, 667 insertions(+), 757 deletions(-)
-- 
2.36.1
Next: Jacob Keller
Message 1 of 7 in “remote: handle negative refspecs with show”
  1. 0/6 remote: handle negative refspecs with showJacob Keller, Jun 17, 2022
  2. 1/6 remote: handle negative refspecs in git remote showJacob Keller, Jun 17, 2022
  3. 3/6 tests: handle --global directly in test_config/test_unconfigJacob Keller, Jun 17, 2022
  4. 2/6 t5505: remove sub shell use in favor of git -CJacob Keller, Jun 17, 2022
  5. 4/6 tests: only automatically unset matching values from test_configJacob Keller, Jun 17, 2022
  6. 6/6 remote: add test for negative refspec with pruneJacob Keller, Jun 17, 2022
  7. 5/6 t5505: use test_config where appropriateJacob Keller, Jun 17, 2022

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.