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

Re: [PATCH 00/13] Improve "refs" module encapsulation

From
Stefan Beller <sbeller@google.com>
Date
Jun 8, 2015, 17:03 UTC
Message-ID
<CAGZ79kbEzrAB+Jmt8vcv2FfTsPNKY0a343ARpM8o9y0+tMiQ7g@mail.gmail.com>
In-Reply-To
<cover.1433763494.git.mhagger@alum.mit.edu>
On Mon, Jun 8, 2015 at 4:45 AM, Michael Haggerty <mhagger@alum.mit.edu> wrote:
Show 21 quoted lines
> Add functions to the reference API to
>
> * Delete a bunch of references at once, but *without* failing the
>   whole transaction if one of the deletions fails. This functionality
>   is used by `git remote remove` and `git remote prune`.
>
> * Create initial references during `git clone`. (During clone,
>   references are written directly to the `packed-refs` file without
>   any locking.)
>
> Also move the remaining "refs" function declarations from `cache.h` to
> `refs.h`.
>
> This improves the encapsulation of the refs module. Especially, it
> means that code outside of the refs module should no longer need to
> care about the distinction between loose and packed references.
>
> These patches are also available from my GitHub account [1] as branch
> "init-delete-refs-api".
>
> [1] https://github.com/mhagger/git
Thw whole series looks good to me.
Show 33 quoted lines
>
> Michael Haggerty (13):
>   delete_ref(): move declaration to refs.h
>   remove_branches(): remove temporary
>   delete_ref(): handle special case more explicitly
>   delete_refs(): new function for the refs API
>   delete_refs(): improve error message
>   delete_refs(): convert error message to lower case
>   prune_remote(): use delete_refs()
>   repack_without_refs(): make function private
>   initial_ref_transaction_commit(): function for initial ref creation
>   refs: remove some functions from the module's public interface
>   initial_ref_transaction_commit(): check for duplicate refs
>   initial_ref_transaction_commit(): check for ref D/F conflicts
>   refs: move the remaining ref module declarations to refs.h
>
>  archive.c               |   1 +
>  builtin/blame.c         |   1 +
>  builtin/clone.c         |  19 ++++-
>  builtin/fast-export.c   |   1 +
>  builtin/fmt-merge-msg.c |   1 +
>  builtin/init-db.c       |   1 +
>  builtin/log.c           |   1 +
>  builtin/remote.c        |  33 +-------
>  cache.h                 |  68 ----------------
>  refs.c                  | 167 +++++++++++++++++++++++++++++++++++---
>  refs.h                  | 210 +++++++++++++++++++++++++++++++-----------------
>  remote-testsvn.c        |   1 +
>  12 files changed, 316 insertions(+), 188 deletions(-)
>
> --
> 2.1.4
>
Previous: Michael HaggertyNext: Junio C Hamano
Message 29 of 30 in “Improve "refs" module encapsulation”
  1. 00/13 Improve "refs" module encapsulationMichael Haggerty, Jun 8, 2015
  2. 01/13 delete_ref(): move declaration to refs.hMichael Haggerty, Jun 8, 2015
  3. Stefan BellerJun 8, 2015
  4. Michael HaggertyJun 9, 2015
  5. Stefan BellerJun 9, 2015
  6. Michael HaggertyJun 13, 2015
  7. 02/13 remove_branches(): remove temporaryMichael Haggerty, Jun 8, 2015
  8. Stefan BellerJun 8, 2015
  9. 03/13 delete_ref(): handle special case more explicitlyMichael Haggerty, Jun 8, 2015
  10. Stefan BellerJun 8, 2015
  11. Michael HaggertyJun 9, 2015
  12. 04/13 delete_refs(): new function for the refs APIMichael Haggerty, Jun 8, 2015
  13. 05/13 delete_refs(): improve error messageMichael Haggerty, Jun 8, 2015
  14. Junio C HamanoJun 9, 2015
  15. 06/13 delete_refs(): convert error message to lower caseMichael Haggerty, Jun 8, 2015
  16. Stefan BellerJun 8, 2015
  17. Michael HaggertyJun 9, 2015
  18. 07/13 prune_remote(): use delete_refs()Michael Haggerty, Jun 8, 2015
  19. Stefan BellerJun 8, 2015
  20. Jeff KingJun 8, 2015
  21. Michael HaggertyJun 9, 2015
  22. Jeff KingJun 9, 2015
  23. 08/13 repack_without_refs(): make function privateMichael Haggerty, Jun 8, 2015
  24. 09/13 initial_ref_transaction_commit(): function for initial ref creationMichael Haggerty, Jun 8, 2015
  25. 10/13 refs: remove some functions from the module's public interfaceMichael Haggerty, Jun 8, 2015
  26. 11/13 initial_ref_transaction_commit(): check for duplicate refsMichael Haggerty, Jun 8, 2015
  27. 12/13 initial_ref_transaction_commit(): check for ref D/F conflictsMichael Haggerty, Jun 8, 2015
  28. 13/13 refs: move the remaining ref module declarations to refs.hMichael Haggerty, Jun 8, 2015
  29. Stefan BellerJun 8, 2015
  30. Junio C HamanoJun 9, 2015

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.