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

Re: [PATCH 1/2] update-ref: Allow creation of multiple transactions

From
Jeff King <peff@peff.net>
Date
Nov 6, 2020, 17:52 UTC
Message-ID
<20201106175241.GA182486@coredump.intra.peff.net>
In-Reply-To
<xmqqa6vvij37.fsf@gitster.c.googlers.com>
On Thu, Nov 05, 2020 at 01:34:20PM -0800, Junio C Hamano wrote:
Show 22 quoted lines
> > The tests all look quite reasonable to me. Touching .git/refs like this
> > is a bit gross (and something we may have to deal with if we introduce
> > reftables, etc). But it's pretty pervasive in this file, so matching
> > the existing style is the best option for now.
> 
> 
> Shouldn't "git show-ref --verify" be usable portably across ref backends
> to test if a well-formed ref was created (or was not created)?
> 
> On the ref-creation side, there are cases where we need to directly
> futz with the filesystem entity.  For example, "git update-ref"
> cannot be used to place a non-commit at "refs/heads/foo", so
> something like
> 
> 	git rev-parse HEAD^{tree} >.git/refs/heads/bad-branch
> 
> cannot be avoided (this is a tangent but we probably should add a
> way to force setting _any_ value to any ref, that may not even point
> at an existing object or an object of a wrong type, to help test
> scripts).
> 
> But I do not think this is such a case.

Yeah, I agree completely that we could be using rev-parse in this instance. But it's definitely not alone there:

  $ git grep -c test_path_is.*.git/refs t/t1400-update-ref.sh
  t/t1400-update-ref.sh:13

So it is a question of "do an ugly thing that fits in with neighbors" or "be inconsistent but set a good example". And I am OK with either. Of course, "improve the neighbors on top" would be better still. :)

-Peff
PS And yeah, I agree in the long run we may need some mechanism to
   override internal safeties in order to test broken cases with
   reftable. We have sometimes resorted to manually munging on-disk
   files in similar tests (e.g., for broken packs, etc), but it gets
   rather tricky.
Previous: Junio C HamanoNext: Junio C Hamano
Message 5 of 41 in “update-ref: Allow creation of multiple transactions”
  1. 0/2 update-ref: Allow creation of multiple transactionsPatrick Steinhardt, Nov 4, 2020
  2. 1/2 update-ref: Allow creation of multiple transactionsPatrick Steinhardt, Nov 4, 2020
  3. Jeff KingNov 5, 2020
  4. Junio C HamanoNov 5, 2020
  5. Jeff KingNov 6, 2020
  6. Junio C HamanoNov 6, 2020
  7. Patrick SteinhardtNov 6, 2020
  8. 2/2 p1400: Use `git-update-ref --stdin` to test multiple transactionsPatrick Steinhardt, Nov 4, 2020
  9. Jeff KingNov 5, 2020
  10. 0/4 update-ref: Allow creation of multiple transactionsPatrick Steinhardt, Nov 9, 2020
  11. 1/4 t1400: Avoid touching refs on filesystemPatrick Steinhardt, Nov 9, 2020
  12. Junio C HamanoNov 9, 2020
  13. Jeff KingNov 9, 2020
  14. Patrick SteinhardtNov 10, 2020
  15. Junio C HamanoNov 10, 2020
  16. 2/4 update-ref: Allow creation of multiple transactionsPatrick Steinhardt, Nov 9, 2020
  17. 3/4 p1400: Use `git-update-ref --stdin` to test multiple transactionsPatrick Steinhardt, Nov 9, 2020
  18. 4/4 update-ref: Disallow restart of ongoing transactionsPatrick Steinhardt, Nov 9, 2020
  19. Junio C HamanoNov 9, 2020
  20. Jeff KingNov 9, 2020
  21. Junio C HamanoNov 9, 2020
  22. 0/4 update-ref: allow creation of multiple transactionsPatrick Steinhardt, Nov 11, 2020
  23. 1/4 t1400: avoid touching refs on filesystemPatrick Steinhardt, Nov 11, 2020
  24. SZEDER GáborNov 11, 2020
  25. Patrick SteinhardtNov 11, 2020
  26. SZEDER GáborNov 11, 2020
  27. Jeff KingNov 11, 2020
  28. Patrick SteinhardtNov 13, 2020
  29. 2/4 update-ref: allow creation of multiple transactionsPatrick Steinhardt, Nov 11, 2020
  30. 3/4 p1400: use `git-update-ref --stdin` to test multiple transactionsPatrick Steinhardt, Nov 11, 2020
  31. 4/4 update-ref: disallow "start" for ongoing transactionsPatrick Steinhardt, Nov 11, 2020
  32. 0/4 update-ref: allow creation of multiple transactionsPatrick Steinhardt, Nov 13, 2020
  33. 1/4 t1400: avoid touching refs on filesystemPatrick Steinhardt, Nov 13, 2020
  34. Jeff KingNov 13, 2020
  35. Patrick SteinhardtNov 18, 2020
  36. Junio C HamanoNov 18, 2020
  37. 2/4 update-ref: allow creation of multiple transactionsPatrick Steinhardt, Nov 13, 2020
  38. 3/4 p1400: use `git-update-ref --stdin` to test multiple transactionsPatrick Steinhardt, Nov 13, 2020
  39. 4/4 update-ref: disallow "start" for ongoing transactionsPatrick Steinhardt, Nov 13, 2020
  40. Junio C HamanoNov 25, 2020
  41. Jeff KingNov 26, 2020

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.