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

[PATCH 0/6] Handle extra_refs separately from ref_caches

From
mhagger@alum.mit.edu <mhagger@alum.mit.edu>
Date
Dec 13, 2011, 20:06 UTC
Message-ID
<1323806811-5798-1-git-send-email-mhagger@alum.mit.edu>
From: Michael Haggerty <mhagger@alum.mit.edu>

Extra refs don't have much to do with real references, and in fact they have to be handled differently. For example, they do not support flags, they might not have unique names (indeed, the names are rather meaningless), and they are only ever iterated over, never looked up. So seemingly innocent things that one might want to do with real references, like check for conflicting duplicates, must not be done for extra refs.

This patch series creates a new linked-list data structure for the extra refs, separates iteration over the extra refs into a new function, and changes a test to actually create multiple extra refs with the same name.

This patch series applies on top of master. If this approach is selected, then the ref-api-D series will have to be rebased on top of it and touched up to avoid the problems that it has with duplicate extra refs.

By the way, I have been carrying around the CC list of this email for quite a while. If you are tired of being spammed with my patch series, send me a private email and I will be happy to remove you from future mailings.

Michael Haggerty (6):
  t5519: push two branches to alternate repo
  add_extra_ref(): remove flag argument
  Extract a function do_for_each_extra_ref()
  Store extra_refs in a separate data structure
  Omit extra_refs except when iterating using for_each_ref()
  do_for_each_extra_ref(): simplify signature
 builtin/clone.c            |    4 ++--
 builtin/receive-pack.c     |    2 +-
 refs.c                     |   44 ++++++++++++++++++++++++++++++++++----------
 refs.h                     |    2 +-
 t/t5519-push-alternates.sh |   10 +++++++++-
 5 files changed, 47 insertions(+), 15 deletions(-)
-- 
1.7.8
Next: mhagger@alum.mit.edu
Message 1 of 7 in “Handle extra_refs separately from ref_caches”
  1. 0/6 Handle extra_refs separately from ref_cachesmhagger@alum.mit.edu, Dec 13, 2011
  2. 1/6 t5519: push two branches to alternate repomhagger@alum.mit.edu, Dec 13, 2011
  3. 2/6 add_extra_ref(): remove flag argumentmhagger@alum.mit.edu, Dec 13, 2011
  4. 3/6 Extract a function do_for_each_extra_ref()mhagger@alum.mit.edu, Dec 13, 2011
  5. 4/6 Store extra_refs in a separate data structuremhagger@alum.mit.edu, Dec 13, 2011
  6. 5/6 Omit extra_refs except when iterating using for_each_ref()mhagger@alum.mit.edu, Dec 13, 2011
  7. 6/6 do_for_each_extra_ref(): simplify signaturemhagger@alum.mit.edu, Dec 13, 2011

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.