Git Mailing List Archive mirror
 help / color / mirror / Atom feed
From: Calvin Wan <calvinwan@google.com>
To: git@vger.kernel.org
Cc: Calvin Wan <calvinwan@google.com>,
	phillip.wood123@gmail.com, jonathantanmy@google.com
Subject: [PATCH v4 0/6] git-compat-util cleanups
Date: Fri, 30 Jun 2023 20:22:37 +0000	[thread overview]
Message-ID: <20230630202237.3069327-1-calvinwan@google.com> (raw)
In-Reply-To: <20230606170711.912972-1-calvinwan@google.com>

Changes since v3:
 - Dropped patches 5 and 6 since removing the circular dependency in
   common.h turns out to be quite difficult
 - Patch 8 moves the alloc macros to git-compat-util.h rather than
   common.h since that does not exist anymore

Note for the maintainer:

I rebased this series onto both seen and next and they rebased cleanly.
As currently submitted, it is rebased onto next at (38632f3da).
Hopefully this series now doesn't cause any issues with other inflight
series.

Calvin Wan (6):
  git-compat-util: move strbuf.c funcs to its header
  git-compat-util: move wrapper.c funcs to its header
  sane-ctype.h: create header for sane-ctype macros
  kwset: move translation table from ctype
  treewide: remove unnecessary includes for wrapper.h
  common: move alloc macros to common.h

 add-patch.c                        |   1 -
 alias.c                            |   1 -
 alloc.h                            |  75 --------
 apply.c                            |   2 -
 archive-tar.c                      |   1 -
 archive.c                          |   1 -
 attr.c                             |   1 -
 builtin/am.c                       |   1 -
 builtin/bisect.c                   |   1 -
 builtin/blame.c                    |   1 -
 builtin/branch.c                   |   1 -
 builtin/bugreport.c                |   1 -
 builtin/cat-file.c                 |   1 -
 builtin/checkout--worker.c         |   1 -
 builtin/clone.c                    |   1 -
 builtin/config.c                   |   2 -
 builtin/credential-cache--daemon.c |   1 -
 builtin/credential-cache.c         |   1 -
 builtin/difftool.c                 |   1 -
 builtin/fast-import.c              |   1 -
 builtin/fetch-pack.c               |   1 -
 builtin/fmt-merge-msg.c            |   1 -
 builtin/fsmonitor--daemon.c        |   1 -
 builtin/gc.c                       |   1 -
 builtin/get-tar-commit-id.c        |   1 -
 builtin/grep.c                     |   1 -
 builtin/index-pack.c               |   2 -
 builtin/init-db.c                  |   1 -
 builtin/log.c                      |   1 -
 builtin/merge.c                    |   2 -
 builtin/mktree.c                   |   1 -
 builtin/mv.c                       |   1 -
 builtin/name-rev.c                 |   1 -
 builtin/pack-objects.c             |   2 -
 builtin/rebase.c                   |   1 -
 builtin/receive-pack.c             |   1 -
 builtin/repack.c                   |   1 -
 builtin/rerere.c                   |   1 -
 builtin/rev-parse.c                |   1 -
 builtin/revert.c                   |   1 -
 builtin/rm.c                       |   1 -
 builtin/submodule--helper.c        |   1 -
 builtin/symbolic-ref.c             |   1 +
 builtin/unpack-file.c              |   1 -
 builtin/unpack-objects.c           |   1 +
 builtin/worktree.c                 |   1 -
 bulk-checkin.c                     |   2 -
 cache-tree.c                       |   1 -
 chunk-format.c                     |   1 -
 combine-diff.c                     |   1 -
 commit-graph.c                     |   1 -
 commit-reach.c                     |   1 -
 compat/terminal.c                  |   1 -
 config.c                           |   2 -
 convert.c                          |   1 -
 copy.c                             |   1 -
 csum-file.c                        |   1 -
 ctype.c                            |  36 ----
 daemon.c                           |   2 -
 delta-islands.c                    |   1 -
 diff.c                             |   2 -
 diffcore-rename.c                  |   1 -
 dir-iterator.c                     |   1 -
 dir.c                              |   2 -
 editor.c                           |   1 -
 entry.c                            |   1 -
 environment.c                      |   1 -
 ewah/bitmap.c                      |   1 -
 ewah/ewah_bitmap.c                 |   1 -
 fetch-pack.c                       |   2 -
 fmt-merge-msg.c                    |   1 -
 fsck.c                             |   1 -
 git-compat-util.h                  | 284 ++++++++---------------------
 gpg-interface.c                    |   1 -
 grep.c                             |   1 -
 help.c                             |   1 -
 http-backend.c                     |   2 -
 imap-send.c                        |   1 -
 kwset.c                            |  36 ++++
 kwset.h                            |   2 +
 line-log.c                         |   1 -
 list-objects-filter-options.c      |   1 -
 list-objects-filter.c              |   1 -
 merge-ll.c                         |   1 -
 merge-recursive.c                  |   1 -
 midx.c                             |   1 -
 notes-merge.c                      |   1 -
 object-file.c                      |   2 -
 oid-array.c                        |   1 -
 oidtree.c                          |   1 -
 pack-bitmap-write.c                |   1 -
 pack-bitmap.c                      |   1 -
 pack-objects.c                     |   1 -
 pack-write.c                       |   1 -
 packfile.c                         |   2 -
 parallel-checkout.c                |   2 -
 path.c                             |   1 -
 pkt-line.c                         |   1 -
 pretty.c                           |   1 -
 prio-queue.c                       |   1 -
 quote.c                            |   1 -
 read-cache.c                       |   2 -
 rebase-interactive.c               |   1 -
 ref-filter.c                       |   1 -
 reflog-walk.c                      |   1 -
 refs.c                             |   2 -
 refspec.c                          |   1 -
 remote-curl.c                      |   1 -
 remote.c                           |   1 -
 rerere.c                           |   2 -
 revision.c                         |   1 -
 sane-ctype.h                       |  66 +++++++
 send-pack.c                        |   1 -
 sequencer.c                        |   2 -
 server-info.c                      |   2 -
 setup.c                            |   1 -
 shallow.c                          |   2 -
 sigchain.c                         |   1 -
 sparse-index.c                     |   1 -
 split-index.c                      |   1 -
 strbuf.c                           |   2 -
 strbuf.h                           |  32 ++++
 streaming.c                        |   1 -
 string-list.c                      |   1 -
 strvec.c                           |   1 -
 submodule-config.c                 |   1 -
 submodule.c                        |   1 -
 t/helper/test-delta.c              |   1 -
 t/helper/test-fsmonitor-client.c   |   1 -
 t/helper/test-reach.c              |   1 -
 t/helper/test-read-cache.c         |   1 -
 tag.c                              |   1 -
 tempfile.c                         |   1 -
 trace.c                            |   1 -
 trace2/tr2_tls.c                   |   1 -
 trailer.c                          |   1 -
 transport-helper.c                 |   1 -
 transport.c                        |   2 -
 tree-walk.c                        |   1 -
 upload-pack.c                      |   1 -
 usage.c                            |   1 -
 userdiff.c                         |   1 -
 versioncmp.c                       |   1 +
 worktree.c                         |   2 -
 wrapper.c                          |   1 -
 wrapper.h                          | 111 +++++++++++
 write-or-die.c                     |   1 -
 147 files changed, 327 insertions(+), 478 deletions(-)
 create mode 100644 sane-ctype.h

Range-diff against v3:
 1:  03efb2c4b3 <  -:  ---------- init-db: document existing bug with core.bare in template config
 2:  020191c84e <  -:  ---------- init-db: remove unnecessary global variable
 3:  4f2631b200 <  -:  ---------- init-db, clone: change unnecessary global into passed parameter
 4:  40e8349c97 <  -:  ---------- setup: adopt shared init-db & clone code
 5:  8ce842e5e4 <  -:  ---------- read-cache: move shared commit and ls-files code
 6:  9a435193b6 <  -:  ---------- add: modify add_files_to_cache() to avoid globals
 7:  f9fb1ec0c5 <  -:  ---------- read-cache: move shared add/checkout/commit code
 8:  193ccad5dd <  -:  ---------- statinfo: move stat_{data,validity} functions from cache/read-cache
 9:  8fb86883ed <  -:  ---------- run-command.h: move declarations for run-command.c from cache.h
10:  5e579aeeb5 <  -:  ---------- name-hash.h: move declarations for name-hash.c from cache.h
11:  5c0c5257a6 <  -:  ---------- sparse-index.h: move declarations for sparse-index.c from cache.h
12:  230b0e9968 <  -:  ---------- preload-index.h: move declarations for preload-index.c from elsewhere
13:  66327b7465 <  -:  ---------- diff.h: move declaration for global in diff.c from cache.h
14:  61830c7bfa <  -:  ---------- merge.h: move declarations for merge.c from cache.h
15:  0979c990b1 <  -:  ---------- repository.h: move declaration of the_index from cache.h
16:  eb2fac9a86 <  -:  ---------- read-cache*.h: move declarations for read-cache.c functions from cache.h
17:  0cda8f7c94 <  -:  ---------- cache.h: remove this no-longer-used header
18:  82ce975a19 <  -:  ---------- log-tree: replace include of revision.h with simple forward declaration
19:  75334a2bc0 <  -:  ---------- repository: remove unnecessary include of path.h
20:  940ebf92de <  -:  ---------- diff.h: remove unnecessary include of oidset.h
21:  fc12c810dc <  -:  ---------- list-objects-filter-options.h: remove unneccessary include
22:  8985e07940 <  -:  ---------- builtin.h: remove unneccessary includes
23:  af118e7cf0 <  -:  ---------- git-compat-util.h: remove unneccessary include of wildmatch.h
24:  7e33c8f9b1 <  -:  ---------- merge-ll: rename from ll-merge
25:  5e96b1b130 <  -:  ---------- khash: name the structs that khash declares
26:  2d6aa61e78 <  -:  ---------- object-store-ll.h: split this header out of object-store.h
27:  f6927dd57c <  -:  ---------- hash-ll, hashmap: move oidhash() to hash-ll
28:  482d3c671e <  -:  ---------- fsmonitor-ll.h: split this header out of fsmonitor.h
29:  aa680f395a <  -:  ---------- strbuf: clarify API boundary
30:  44b977d1b0 <  -:  ---------- abspath: move related functions to abspath
31:  99852416e8 <  -:  ---------- credential-store: move related functions to credential-store file
32:  09aef95f30 <  -:  ---------- object-name: move related functions to object-name
33:  36048bca4c <  -:  ---------- path: move related function to path
34:  02a02faf12 <  -:  ---------- strbuf: clarify dependency
35:  63a933ff2f <  -:  ---------- strbuf: remove global variable
36:  d352eae308 =  1:  144284a8f1 git-compat-util: move strbuf.c funcs to its header
37:  fe4fd6f92a =  2:  39913c44e8 git-compat-util: move wrapper.c funcs to its header
38:  ec7ea12f7c =  3:  c495762940 sane-ctype.h: create header for sane-ctype macros
39:  4f95b4121e =  4:  2750d35e6d kwset: move translation table from ctype
40:  36525e39d5 <  -:  ---------- common.h: move non-compat specific macros and functions
41:  21f0f31ff3 <  -:  ---------- git-compat-util: move usage.c funcs to its header
42:  531db31c5c !  5:  b5fb55d235 treewide: remove unnecessary includes for wrapper.h
    @@ gpg-interface.c
     -#include "wrapper.h"
      #include "environment.h"
      
    - static int git_gpg_config(const char *, const char *, void *);
    + static int git_gpg_config(const char *, const char *,
     
      ## grep.c ##
     @@
43:  98694f7add !  6:  140d98111f common: move alloc macros to common.h
    @@ Commit message
         common: move alloc macros to common.h
     
         alloc_nr, ALLOC_GROW, and ALLOC_GROW_BY are commonly used macros for
    -    dynamic array allocation. Moving these macros to common.h focuses
    -    alloc.[ch] to allocation for Git objects and additionally allows us to
    -    remove inclusions to alloc.h from files that solely used the above
    -    macros.
    +    dynamic array allocation. Moving these macros to git-compat-util.h with
    +    the other alloc macros focuses alloc.[ch] to allocation for Git objects
    +    and additionally allows us to remove inclusions to alloc.h from files
    +    that solely used the above macros.
     
      ## add-patch.c ##
     @@
    @@ commit-reach.c
      #include "commit-graph.h"
      #include "decorate.h"
     
    - ## common.h ##
    -@@ common.h: static inline int cast_size_t_to_int(size_t a)
    -  */
    - #define FREE_AND_NULL(p) do { free(p); (p) = NULL; } while (0)
    - 
    -+#define alloc_nr(x) (((x)+16)*3/2)
    -+
    -+/**
    -+ * Dynamically growing an array using realloc() is error prone and boring.
    -+ *
    -+ * Define your array with:
    -+ *
    -+ * - a pointer (`item`) that points at the array, initialized to `NULL`
    -+ *   (although please name the variable based on its contents, not on its
    -+ *   type);
    -+ *
    -+ * - an integer variable (`alloc`) that keeps track of how big the current
    -+ *   allocation is, initialized to `0`;
    -+ *
    -+ * - another integer variable (`nr`) to keep track of how many elements the
    -+ *   array currently has, initialized to `0`.
    -+ *
    -+ * Then before adding `n`th element to the item, call `ALLOC_GROW(item, n,
    -+ * alloc)`.  This ensures that the array can hold at least `n` elements by
    -+ * calling `realloc(3)` and adjusting `alloc` variable.
    -+ *
    -+ * ------------
    -+ * sometype *item;
    -+ * size_t nr;
    -+ * size_t alloc
    -+ *
    -+ * for (i = 0; i < nr; i++)
    -+ * 	if (we like item[i] already)
    -+ * 		return;
    -+ *
    -+ * // we did not like any existing one, so add one
    -+ * ALLOC_GROW(item, nr + 1, alloc);
    -+ * item[nr++] = value you like;
    -+ * ------------
    -+ *
    -+ * You are responsible for updating the `nr` variable.
    -+ *
    -+ * If you need to specify the number of elements to allocate explicitly
    -+ * then use the macro `REALLOC_ARRAY(item, alloc)` instead of `ALLOC_GROW`.
    -+ *
    -+ * Consider using ALLOC_GROW_BY instead of ALLOC_GROW as it has some
    -+ * added niceties.
    -+ *
    -+ * DO NOT USE any expression with side-effect for 'x', 'nr', or 'alloc'.
    -+ */
    -+#define ALLOC_GROW(x, nr, alloc) \
    -+	do { \
    -+		if ((nr) > alloc) { \
    -+			if (alloc_nr(alloc) < (nr)) \
    -+				alloc = (nr); \
    -+			else \
    -+				alloc = alloc_nr(alloc); \
    -+			REALLOC_ARRAY(x, alloc); \
    -+		} \
    -+	} while (0)
    -+
    -+/*
    -+ * Similar to ALLOC_GROW but handles updating of the nr value and
    -+ * zeroing the bytes of the newly-grown array elements.
    -+ *
    -+ * DO NOT USE any expression with side-effect for any of the
    -+ * arguments.
    -+ */
    -+#define ALLOC_GROW_BY(x, nr, increase, alloc) \
    -+	do { \
    -+		if (increase) { \
    -+			size_t new_nr = nr + (increase); \
    -+			if (new_nr < nr) \
    -+				BUG("negative growth in ALLOC_GROW_BY"); \
    -+			ALLOC_GROW(x, new_nr, alloc); \
    -+			memset((x) + nr, 0, sizeof(*(x)) * (increase)); \
    -+			nr = new_nr; \
    -+		} \
    -+	} while (0)
    -+
    - #define ALLOC_ARRAY(x, alloc) (x) = xmalloc(st_mult(sizeof(*(x)), (alloc)))
    - #define CALLOC_ARRAY(x, alloc) (x) = xcalloc((alloc), sizeof(*(x)))
    - #define REALLOC_ARRAY(x, alloc) (x) = xrealloc((x), st_mult(sizeof(*(x)), (alloc)))
    -
      ## config.c ##
     @@
      #include "git-compat-util.h"
    @@ fsck.c
      #include "dir.h"
      #include "hex.h"
     
    + ## git-compat-util.h ##
    +@@ git-compat-util.h: static inline void move_array(void *dst, const void *src, size_t n, size_t size)
    + #define FLEXPTR_ALLOC_STR(x, ptrname, str) \
    + 	FLEXPTR_ALLOC_MEM((x), ptrname, (str), strlen(str))
    + 
    ++#define alloc_nr(x) (((x)+16)*3/2)
    ++
    ++/**
    ++ * Dynamically growing an array using realloc() is error prone and boring.
    ++ *
    ++ * Define your array with:
    ++ *
    ++ * - a pointer (`item`) that points at the array, initialized to `NULL`
    ++ *   (although please name the variable based on its contents, not on its
    ++ *   type);
    ++ *
    ++ * - an integer variable (`alloc`) that keeps track of how big the current
    ++ *   allocation is, initialized to `0`;
    ++ *
    ++ * - another integer variable (`nr`) to keep track of how many elements the
    ++ *   array currently has, initialized to `0`.
    ++ *
    ++ * Then before adding `n`th element to the item, call `ALLOC_GROW(item, n,
    ++ * alloc)`.  This ensures that the array can hold at least `n` elements by
    ++ * calling `realloc(3)` and adjusting `alloc` variable.
    ++ *
    ++ * ------------
    ++ * sometype *item;
    ++ * size_t nr;
    ++ * size_t alloc
    ++ *
    ++ * for (i = 0; i < nr; i++)
    ++ * 	if (we like item[i] already)
    ++ * 		return;
    ++ *
    ++ * // we did not like any existing one, so add one
    ++ * ALLOC_GROW(item, nr + 1, alloc);
    ++ * item[nr++] = value you like;
    ++ * ------------
    ++ *
    ++ * You are responsible for updating the `nr` variable.
    ++ *
    ++ * If you need to specify the number of elements to allocate explicitly
    ++ * then use the macro `REALLOC_ARRAY(item, alloc)` instead of `ALLOC_GROW`.
    ++ *
    ++ * Consider using ALLOC_GROW_BY instead of ALLOC_GROW as it has some
    ++ * added niceties.
    ++ *
    ++ * DO NOT USE any expression with side-effect for 'x', 'nr', or 'alloc'.
    ++ */
    ++#define ALLOC_GROW(x, nr, alloc) \
    ++	do { \
    ++		if ((nr) > alloc) { \
    ++			if (alloc_nr(alloc) < (nr)) \
    ++				alloc = (nr); \
    ++			else \
    ++				alloc = alloc_nr(alloc); \
    ++			REALLOC_ARRAY(x, alloc); \
    ++		} \
    ++	} while (0)
    ++
    ++/*
    ++ * Similar to ALLOC_GROW but handles updating of the nr value and
    ++ * zeroing the bytes of the newly-grown array elements.
    ++ *
    ++ * DO NOT USE any expression with side-effect for any of the
    ++ * arguments.
    ++ */
    ++#define ALLOC_GROW_BY(x, nr, increase, alloc) \
    ++	do { \
    ++		if (increase) { \
    ++			size_t new_nr = nr + (increase); \
    ++			if (new_nr < nr) \
    ++				BUG("negative growth in ALLOC_GROW_BY"); \
    ++			ALLOC_GROW(x, new_nr, alloc); \
    ++			memset((x) + nr, 0, sizeof(*(x)) * (increase)); \
    ++			nr = new_nr; \
    ++		} \
    ++	} while (0)
    ++
    + static inline char *xstrdup_or_null(const char *str)
    + {
    + 	return str ? xstrdup(str) : NULL;
    +
      ## help.c ##
     @@
      #include "git-compat-util.h"
-- 
2.41.0.255.g8b1d071c50-goog


  parent reply	other threads:[~2023-06-30 20:22 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-16 17:09 [PATCH 0/6] git-compat-util cleanups Calvin Wan
2023-05-16 17:09 ` [PATCH 1/6] strbuf.h: move declarations for strbuf.c functions from git-compat-util.h Calvin Wan
2023-05-16 21:18   ` Junio C Hamano
2023-05-16 17:09 ` [PATCH 2/6] wrapper.h: move declarations for wrapper.c " Calvin Wan
2023-05-16 22:08   ` Junio C Hamano
2023-05-16 17:09 ` [PATCH 3/6] common.h: move non-compat specific macros and " Calvin Wan
2023-05-16 22:30   ` Junio C Hamano
2023-05-17 17:26     ` Calvin Wan
2023-05-16 17:09 ` [PATCH 4/6] usage.h: move declarations for usage.c " Calvin Wan
2023-05-16 17:09 ` [PATCH 5/6] treewide: remove unnecessary includes for wrapper.h Calvin Wan
2023-05-16 17:09 ` [PATCH 6/6] common: move alloc macros to common.h Calvin Wan
2023-05-16 17:54 ` [PATCH 0/6] git-compat-util cleanups Junio C Hamano
2023-05-16 19:00   ` Calvin Wan
2023-05-23 19:27 ` [PATCH v2 0/7] " Calvin Wan
2023-05-23 19:29   ` [PATCH v2 1/7] strbuf.h: move declarations for strbuf.c functions from git-compat-util.h Calvin Wan
2023-05-26 21:06     ` Jonathan Tan
2023-05-23 19:29   ` [PATCH v2 2/7] wrapper.h: move declarations for wrapper.c " Calvin Wan
2023-05-26 21:25     ` Jonathan Tan
2023-05-23 19:29   ` [PATCH v2 3/7] sane-ctype.h: move sane-ctype macros " Calvin Wan
2023-05-26 21:19     ` Jonathan Tan
2023-05-28 12:04       ` Phillip Wood
2023-05-30 17:29         ` Jonathan Tan
2023-06-01  4:12       ` Junio C Hamano
2023-05-23 19:29   ` [PATCH v2 4/7] common.h: move non-compat specific macros and functions " Calvin Wan
2023-05-23 19:29   ` [PATCH v2 5/7] usage.h: move declarations for usage.c " Calvin Wan
2023-05-23 19:29   ` [PATCH v2 6/7] treewide: remove unnecessary includes for wrapper.h Calvin Wan
2023-05-23 19:29   ` [PATCH v2 7/7] common: move alloc macros to common.h Calvin Wan
2023-05-26 21:27     ` Jonathan Tan
2023-05-26 21:03   ` [PATCH v2 0/7] git-compat-util cleanups Jonathan Tan
2023-06-06 17:07   ` [PATCH v3 0/8] " Calvin Wan
2023-06-06 17:09     ` [PATCH v3 1/8] git-compat-util: move strbuf.c funcs to its header Calvin Wan
2023-06-06 17:09     ` [PATCH v3 2/8] git-compat-util: move wrapper.c " Calvin Wan
2023-06-06 17:09     ` [PATCH v3 3/8] sane-ctype.h: create header for sane-ctype macros Calvin Wan
2023-06-06 17:09     ` [PATCH v3 4/8] kwset: move translation table from ctype Calvin Wan
2023-06-06 17:09     ` [PATCH v3 5/8] common.h: move non-compat specific macros and functions Calvin Wan
2023-06-06 22:45       ` Ramsay Jones
2023-06-07 17:02         ` Calvin Wan
2023-06-12 20:48           ` Junio C Hamano
2023-06-13 22:42             ` Calvin Wan
2023-06-13 23:10               ` Junio C Hamano
2023-06-14  1:58                 ` Calvin Wan
2023-06-06 17:10     ` [PATCH v3 6/8] git-compat-util: move usage.c funcs to its header Calvin Wan
2023-06-06 17:10     ` [PATCH v3 7/8] treewide: remove unnecessary includes for wrapper.h Calvin Wan
2023-06-06 17:10     ` [PATCH v3 8/8] common: move alloc macros to common.h Calvin Wan
2023-06-30 20:22     ` Calvin Wan [this message]
2023-06-30 20:23       ` [PATCH v4 1/6] git-compat-util: move strbuf.c funcs to its header Calvin Wan
2023-06-30 20:23       ` [PATCH v4 2/6] git-compat-util: move wrapper.c " Calvin Wan
2023-06-30 20:23       ` [PATCH v4 3/6] sane-ctype.h: create header for sane-ctype macros Calvin Wan
2023-06-30 20:23       ` [PATCH v4 4/6] kwset: move translation table from ctype Calvin Wan
2023-06-30 20:23       ` [PATCH v4 5/6] treewide: remove unnecessary includes for wrapper.h Calvin Wan
2023-06-30 20:23       ` [PATCH v4 6/6] common: move alloc macros to common.h Calvin Wan
2023-06-30 22:49         ` Junio C Hamano
2023-07-05 16:25           ` Calvin Wan
2023-07-05 17:33             ` Junio C Hamano
2023-07-05 17:58               ` Calvin Wan
2023-06-30 21:56       ` [PATCH v4 0/6] git-compat-util cleanups Junio C Hamano
2023-07-05 17:08       ` [PATCH v5 " Calvin Wan
2023-07-05 17:09         ` [PATCH v5 1/6] git-compat-util: move strbuf.c funcs to its header Calvin Wan
2023-07-05 17:09         ` [PATCH v5 2/6] git-compat-util: move wrapper.c " Calvin Wan
2023-07-05 17:09         ` [PATCH v5 3/6] sane-ctype.h: create header for sane-ctype macros Calvin Wan
2023-07-05 17:09         ` [PATCH v5 4/6] kwset: move translation table from ctype Calvin Wan
2023-07-05 17:09         ` [PATCH v5 5/6] treewide: remove unnecessary includes for wrapper.h Calvin Wan
2023-07-05 17:09         ` [PATCH v5 6/6] git-compat-util: move alloc macros to git-compat-util.h Calvin Wan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230630202237.3069327-1-calvinwan@google.com \
    --to=calvinwan@google.com \
    --cc=git@vger.kernel.org \
    --cc=jonathantanmy@google.com \
    --cc=phillip.wood123@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).