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

[PATCH v4 00/23] Delete directories left empty after ref deletion

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Jan 6, 2017, 16:22 UTC
Message-ID
<cover.1483719289.git.mhagger@alum.mit.edu>

This is v4 of this patch series. Thanks to Peff, Junio, Jake, and Philip for their feedback about v3. I believe I have addressed all of the comments about v1 [1], v2 [2], and v3 [3].

Changes since v3:
* Insert a new first patch correcting the docstring of
  `refname_is_safe()`.
* In "raceproof_create_file(): new function", tweak a comment for
  clarity as suggested by Peff.
* In "log_ref_setup(): separate code for create vs non-create", add a
  semicolon to an otherwise empty code block as requested by Junio.
* Drop the patch "try_remove_empty_parents(): don't accommodate
  consecutive slashes", for reasons discussed on the ML [4].
Michael

[1] http://public-inbox.org/git/cover.1455626201.git.mhagger@alum.mit.edu/T/#u [2] http://public-inbox.org/git/cover.1456405698.git.mhagger@alum.mit.edu/T/#u [3] http://public-inbox.org/git/cover.1483153436.git.mhagger@alum.mit.edu/T/#u [4] http://public-inbox.org/git/5051c78e-51f9-becd-e1a6-9c0b781d6912@alum.mit.edu/ and surrounding thread.

Michael Haggerty (23):
  files_rename_ref(): tidy up whitespace
  refname_is_safe(): correct docstring
  t5505: use "for-each-ref" to test for the non-existence of references
  safe_create_leading_directories_const(): preserve errno
  safe_create_leading_directories(): set errno on SCLD_EXISTS
  raceproof_create_file(): new function
  lock_ref_sha1_basic(): inline constant
  lock_ref_sha1_basic(): use raceproof_create_file()
  rename_tmp_log(): use raceproof_create_file()
  rename_tmp_log(): improve error reporting
  log_ref_write(): inline function
  log_ref_setup(): separate code for create vs non-create
  log_ref_setup(): improve robustness against races
  log_ref_setup(): pass the open file descriptor back to the caller
  log_ref_write_1(): don't depend on logfile argument
  log_ref_setup(): manage the name of the reflog file internally
  log_ref_write_1(): inline function
  delete_ref_loose(): derive loose reference path from lock
  delete_ref_loose(): inline function
  try_remove_empty_parents(): rename parameter "name" -> "refname"
  try_remove_empty_parents(): don't trash argument contents
  try_remove_empty_parents(): teach to remove parents of reflogs, too
  files_transaction_commit(): clean up empty directories
 cache.h               |  48 ++++++-
 refs/files-backend.c  | 371 +++++++++++++++++++++++++-------------------------
 refs/refs-internal.h  |  22 ++-
 sha1_file.c           |  76 ++++++++++-
 t/t1400-update-ref.sh |  27 ++++
 t/t5505-remote.sh     |   2 +-
 6 files changed, 351 insertions(+), 195 deletions(-)
-- 
2.9.3
Next: Michael Haggerty
Message 1 of 25 in “Delete directories left empty after ref deletion”
  1. 00/23 Delete directories left empty after ref deletionMichael Haggerty, Jan 6, 2017
  2. 01/23 files_rename_ref(): tidy up whitespaceMichael Haggerty, Jan 6, 2017
  3. 03/23 t5505: use "for-each-ref" to test for the non-existence of referencesMichael Haggerty, Jan 6, 2017
  4. 06/23 raceproof_create_file(): new functionMichael Haggerty, Jan 6, 2017
  5. 02/23 refname_is_safe(): correct docstringMichael Haggerty, Jan 6, 2017
  6. 05/23 safe_create_leading_directories(): set errno on SCLD_EXISTSMichael Haggerty, Jan 6, 2017
  7. 10/23 rename_tmp_log(): improve error reportingMichael Haggerty, Jan 6, 2017
  8. 09/23 rename_tmp_log(): use raceproof_create_file()Michael Haggerty, Jan 6, 2017
  9. 04/23 safe_create_leading_directories_const(): preserve errnoMichael Haggerty, Jan 6, 2017
  10. 07/23 lock_ref_sha1_basic(): inline constantMichael Haggerty, Jan 6, 2017
  11. 13/23 log_ref_setup(): improve robustness against racesMichael Haggerty, Jan 6, 2017
  12. 08/23 lock_ref_sha1_basic(): use raceproof_create_file()Michael Haggerty, Jan 6, 2017
  13. 11/23 log_ref_write(): inline functionMichael Haggerty, Jan 6, 2017
  14. 23/23 files_transaction_commit(): clean up empty directoriesMichael Haggerty, Jan 6, 2017
  15. 18/23 delete_ref_loose(): derive loose reference path from lockMichael Haggerty, Jan 6, 2017
  16. 19/23 delete_ref_loose(): inline functionMichael Haggerty, Jan 6, 2017
  17. 22/23 try_remove_empty_parents(): teach to remove parents of reflogs, tooMichael Haggerty, Jan 6, 2017
  18. 21/23 try_remove_empty_parents(): don't trash argument contentsMichael Haggerty, Jan 6, 2017
  19. 20/23 try_remove_empty_parents(): rename parameter "name" -> "refname"Michael Haggerty, Jan 6, 2017
  20. 16/23 log_ref_setup(): manage the name of the reflog file internallyMichael Haggerty, Jan 6, 2017
  21. 12/23 log_ref_setup(): separate code for create vs non-createMichael Haggerty, Jan 6, 2017
  22. 15/23 log_ref_write_1(): don't depend on logfile argumentMichael Haggerty, Jan 6, 2017
  23. 17/23 log_ref_write_1(): inline functionMichael Haggerty, Jan 6, 2017
  24. 14/23 log_ref_setup(): pass the open file descriptor back to the callerMichael Haggerty, Jan 6, 2017
  25. Jeff KingJan 6, 2017

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.