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

[PATCH 02/29] remove_dir_recursively(): add docstring

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Apr 27, 2016, 16:57 UTC
Message-ID
<275274daa6126a8896b76ab3fca55d6e4a684948.1461768689.git.mhagger@alum.mit.edu>
In-Reply-To
<cover.1461768689.git.mhagger@alum.mit.edu>

Add a docstring for the remove_dir_recursively() function and the REMOVE_DIR_* flags that can be passed to it.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
---
 dir.h | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
diff --git a/dir.h b/dir.h
index 301b737..5f19acc 100644
--- a/dir.h
+++ b/dir.h
@@ -262,9 +262,32 @@ extern int is_empty_dir(const char *dir);
 
 extern void setup_standard_excludes(struct dir_struct *dir);
 
+
+/* Constants for remove_dir_recursively: */
+
+/*
+ * If a non-directory is found within path, stop and return an error.
+ * (In this case some empty directories might already have been
+ * removed.)
+ */
 #define REMOVE_DIR_EMPTY_ONLY 01
+
+/*
+ * If any Git work trees are found within path, skip them without
+ * considering it an error.
+ */
 #define REMOVE_DIR_KEEP_NESTED_GIT 02
+
+/* Remove the contents of path, but leave path itself. */
 #define REMOVE_DIR_KEEP_TOPLEVEL 04
+
+/*
+ * Remove path and its contents, recursively. flags is a combination
+ * of the above REMOVE_DIR_* constants. Return 0 on success.
+ *
+ * This function uses path as temporary scratch space, but restores it
+ * before returning.
+ */
 extern int remove_dir_recursively(struct strbuf *path, int flag);
 
 /* tries to remove the path with empty directories along it, ignores ENOENT */
-- 
2.8.1
Previous: Michael HaggertyNext: Michael Haggerty
Message 3 of 70 in “Yet more preparation for reference backends”
  1. 00/29 Yet more preparation for reference backendsMichael Haggerty, Apr 27, 2016
  2. 01/29 safe_create_leading_directories(): improve docstringMichael Haggerty, Apr 27, 2016
  3. 02/29 remove_dir_recursively(): add docstringMichael Haggerty, Apr 27, 2016
  4. 03/29 refname_is_safe(): use skip_prefix()Michael Haggerty, Apr 27, 2016
  5. 04/29 refname_is_safe(): don't allow the empty stringMichael Haggerty, Apr 27, 2016
  6. 05/29 refname_is_safe(): insist that the refname already be normalizedMichael Haggerty, Apr 27, 2016
  7. Junio C HamanoApr 27, 2016
  8. David TurnerApr 27, 2016
  9. Jeff KingApr 27, 2016
  10. David TurnerApr 27, 2016
  11. Jeff KingApr 27, 2016
  12. Jeff KingApr 27, 2016
  13. David TurnerApr 28, 2016
  14. 06/29 commit_ref_update(): write error message to *err, not stderrMichael Haggerty, Apr 27, 2016
  15. 07/29 rename_ref(): remove unneeded local variableMichael Haggerty, Apr 27, 2016
  16. 08/29 ref_transaction_commit(): remove local variable nMichael Haggerty, Apr 27, 2016
  17. Junio C HamanoApr 27, 2016
  18. Junio C HamanoApr 27, 2016
  19. 09/29 read_raw_ref(): rename flags argument to typeMichael Haggerty, Apr 27, 2016
  20. 10/29 read_raw_ref(): clear *type at start of functionMichael Haggerty, Apr 27, 2016
  21. 11/29 read_raw_ref(): rename symref argument to referentMichael Haggerty, Apr 27, 2016
  22. 12/29 read_raw_ref(): improve docstringMichael Haggerty, Apr 27, 2016
  23. Junio C HamanoApr 27, 2016
  24. 13/29 lock_ref_sha1_basic(): remove unneeded local variableMichael Haggerty, Apr 27, 2016
  25. 14/29 refs: make error messages more consistentMichael Haggerty, Apr 27, 2016
  26. 15/29 ref_transaction_create(): disallow recursive pruningMichael Haggerty, Apr 27, 2016
  27. Junio C HamanoApr 27, 2016
  28. David TurnerApr 27, 2016
  29. Junio C HamanoApr 27, 2016
  30. Junio C HamanoApr 27, 2016
  31. David TurnerApr 28, 2016
  32. Junio C HamanoApr 28, 2016
  33. Michael HaggertyApr 29, 2016
  34. Junio C HamanoApr 29, 2016
  35. Junio C HamanoApr 29, 2016
  36. Michael HaggertyApr 29, 2016
  37. 16/29 ref_transaction_commit(): correctly report close_ref() failureMichael Haggerty, Apr 27, 2016
  38. 17/29 delete_branches(): use resolve_refdup()Michael Haggerty, Apr 27, 2016
  39. 18/29 refs: allow log-only updatesMichael Haggerty, Apr 27, 2016
  40. 19/29 refs: don't dereference on renameMichael Haggerty, Apr 27, 2016
  41. Junio C HamanoApr 27, 2016
  42. Michael HaggertyApr 29, 2016
  43. Junio C HamanoApr 29, 2016
  44. Michael HaggertyApr 29, 2016
  45. Jeff KingApr 29, 2016
  46. Michael HaggertyApr 29, 2016
  47. Jeff KingApr 29, 2016
  48. Junio C HamanoApr 29, 2016
  49. David TurnerApr 29, 2016
  50. Michael HaggertyApr 30, 2016
  51. Junio C HamanoMay 2, 2016
  52. 20/29 verify_refname_available(): adjust constness in declarationMichael Haggerty, Apr 27, 2016
  53. 21/29 add_update(): initialize the whole ref_updateMichael Haggerty, Apr 27, 2016
  54. 22/29 lock_ref_for_update(): new functionMichael Haggerty, Apr 27, 2016
  55. 23/29 unlock_ref(): move definition higher in the fileMichael Haggerty, Apr 27, 2016
  56. 24/29 ref_transaction_update(): check refname_is_safe() at a minimumMichael Haggerty, Apr 27, 2016
  57. Junio C HamanoApr 27, 2016
  58. Michael HaggertyApr 29, 2016
  59. Junio C HamanoApr 29, 2016
  60. 25/29 refs: resolve symbolic refs firstMichael Haggerty, Apr 27, 2016
  61. David TurnerApr 28, 2016
  62. Michael HaggertyApr 29, 2016
  63. David TurnerApr 29, 2016
  64. Junio C HamanoMay 2, 2016
  65. 26/29 lock_ref_for_update(): don't re-read non-symbolic referencesMichael Haggerty, Apr 27, 2016
  66. 27/29 lock_ref_for_update(): don't resolve symrefsMichael Haggerty, Apr 27, 2016
  67. 28/29 commit_ref_update(): remove the flags parameterMichael Haggerty, Apr 27, 2016
  68. 29/29 lock_ref_sha1_basic(): only handle REF_NODEREF modeMichael Haggerty, Apr 27, 2016
  69. Junio C HamanoApr 29, 2016
  70. David TurnerApr 29, 2016

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.