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

[PATCH v2 15/20] compat: consistently resolve headers via project root

From
Patrick Steinhardt <ps@pks.im>
Date
Jan 28, 2025, 08:28 UTC
Message-ID
<20250128-pks-reftable-drop-git-compat-util-v2-15-c85c20336317@pks.im>
In-Reply-To
<20250128-pks-reftable-drop-git-compat-util-v2-0-c85c20336317@pks.im>
The way we include headers in the "compat/" directory is inconsistent:
  - Sometimes we use includes relative to the current file.
  - Sometimes we use includes relative to the project root directory,
    which is being added via a `-I` compiler switch.
  - On Windows we also use includes relative to "compat/", which is
    being added via another platform-specific `-I` compiler switch in
    "compat.mak.uname".

This makes it very confusing to figure out which specific file is being included right now and from what layer that file comes.

Stop adding "compat/" to the Windows-specific include directories and adapt all includes in "compat/" to be relative to the projet's root directory. Despite being more consistent, it also makes it way easier to spot where an include comes from.

This change also prepares for subsequent commits where we split up both "compat/mingw.h" and "compat/msvc.h".

Signed-off-by: Patrick Steinhardt <ps@pks.im>
---
 compat/access.c                          |  3 ++-
 compat/basename.c                        |  4 ++--
 compat/fileno.c                          |  2 +-
 compat/fopen.c                           |  2 +-
 compat/fsmonitor/fsm-health-darwin.c     |  2 +-
 compat/fsmonitor/fsm-health-win32.c      |  2 +-
 compat/fsmonitor/fsm-listen-darwin.c     |  4 ++--
 compat/fsmonitor/fsm-listen-win32.c      |  2 +-
 compat/inet_ntop.c                       |  2 +-
 compat/inet_pton.c                       |  2 +-
 compat/memmem.c                          |  2 +-
 compat/mingw.c                           | 24 ++++++++++++------------
 compat/mkdir.c                           |  2 +-
 compat/mkdtemp.c                         |  2 +-
 compat/mmap.c                            |  2 +-
 compat/msvc.c                            |  8 ++++----
 compat/nonblock.c                        |  4 ++--
 compat/obstack.c                         |  2 +-
 compat/pread.c                           |  4 ++--
 compat/precompose_utf8.c                 |  2 +-
 compat/qsort_s.c                         |  2 +-
 compat/regcomp_enhanced.c                |  2 +-
 compat/setenv.c                          |  2 +-
 compat/snprintf.c                        |  2 +-
 compat/strcasestr.c                      |  2 +-
 compat/strdup.c                          |  2 +-
 compat/strlcpy.c                         |  2 +-
 compat/strtoimax.c                       |  2 +-
 compat/strtoumax.c                       |  2 +-
 compat/unsetenv.c                        |  2 +-
 compat/win32/dirent.c                    |  2 +-
 compat/win32/flush.c                     |  2 +-
 compat/win32/path-utils.c                |  4 ++--
 compat/win32/pthread.c                   |  4 ++--
 compat/win32/syslog.c                    |  2 +-
 compat/win32/trace2_win32_process_info.c | 10 +++++-----
 compat/win32mmap.c                       |  2 +-
 compat/winansi.c                         |  6 +++---
 config.mak.uname                         |  4 ++--
 39 files changed, 67 insertions(+), 66 deletions(-)
diff --git a/compat/access.c b/compat/access.c
index 19fda3e877..918f51a08b 100644
--- a/compat/access.c
+++ b/compat/access.c
@@ -1,5 +1,6 @@
 #define COMPAT_CODE_ACCESS
-#include "../git-compat-util.h"
+
+#include "git-compat-util.h"
 
 /* Do the same thing access(2) does, but use the effective uid,
  * and don't make the mistake of telling root that any file is
diff --git a/compat/basename.c b/compat/basename.c
index c33579ef61..2f59c5475b 100644
--- a/compat/basename.c
+++ b/compat/basename.c
@@ -1,5 +1,5 @@
-#include "../git-compat-util.h"
-#include "../strbuf.h"
+#include "git-compat-util.h"
+#include "strbuf.h"
 
 /* Adapted from libiberty's basename.c.  */
 char *gitbasename (char *path)
diff --git a/compat/fileno.c b/compat/fileno.c
index 8e80ef335d..977d63bf62 100644
--- a/compat/fileno.c
+++ b/compat/fileno.c
@@ -1,5 +1,5 @@
 #define COMPAT_CODE_FILENO
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 
 int git_fileno(FILE *stream)
 {
diff --git a/compat/fopen.c b/compat/fopen.c
index 107b3e8182..4af1f14996 100644
--- a/compat/fopen.c
+++ b/compat/fopen.c
@@ -9,7 +9,7 @@
  *  fopen after including git-compat-util.h is inadequate in this case.
  */
 #define SUPPRESS_FOPEN_REDEFINITION
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 
 FILE *git_fopen(const char *path, const char *mode)
 {
diff --git a/compat/fsmonitor/fsm-health-darwin.c b/compat/fsmonitor/fsm-health-darwin.c
index c2afcbe6c8..68c9fd7363 100644
--- a/compat/fsmonitor/fsm-health-darwin.c
+++ b/compat/fsmonitor/fsm-health-darwin.c
@@ -1,7 +1,7 @@
 #include "git-compat-util.h"
+#include "compat/fsmonitor/fsm-health.h"
 #include "config.h"
 #include "fsmonitor-ll.h"
-#include "fsm-health.h"
 #include "fsmonitor--daemon.h"
 
 int fsm_health__ctor(struct fsmonitor_daemon_state *state UNUSED)
diff --git a/compat/fsmonitor/fsm-health-win32.c b/compat/fsmonitor/fsm-health-win32.c
index 2aa8c219ac..16e073383b 100644
--- a/compat/fsmonitor/fsm-health-win32.c
+++ b/compat/fsmonitor/fsm-health-win32.c
@@ -1,7 +1,7 @@
 #include "git-compat-util.h"
+#include "compat/fsmonitor/fsm-health.h"
 #include "config.h"
 #include "fsmonitor-ll.h"
-#include "fsm-health.h"
 #include "fsmonitor--daemon.h"
 #include "gettext.h"
 #include "simple-ipc.h"
diff --git a/compat/fsmonitor/fsm-listen-darwin.c b/compat/fsmonitor/fsm-listen-darwin.c
index 43c3a915a0..b9414da0d1 100644
--- a/compat/fsmonitor/fsm-listen-darwin.c
+++ b/compat/fsmonitor/fsm-listen-darwin.c
@@ -1,6 +1,6 @@
 #ifndef __clang__
 #include <dispatch/dispatch.h>
-#include "fsm-darwin-gcc.h"
+#include "compat/fsmonitor/fsm-darwin-gcc.h"
 #else
 #include <CoreFoundation/CoreFoundation.h>
 #include <CoreServices/CoreServices.h>
@@ -24,8 +24,8 @@
 #endif
 
 #include "git-compat-util.h"
+#include "compat/fsmonitor/fsm-listen.h"
 #include "fsmonitor-ll.h"
-#include "fsm-listen.h"
 #include "fsmonitor--daemon.h"
 #include "fsmonitor-path-utils.h"
 #include "gettext.h"
diff --git a/compat/fsmonitor/fsm-listen-win32.c b/compat/fsmonitor/fsm-listen-win32.c
index 9a6efc9bea..3fb5710e21 100644
--- a/compat/fsmonitor/fsm-listen-win32.c
+++ b/compat/fsmonitor/fsm-listen-win32.c
@@ -1,7 +1,7 @@
 #include "git-compat-util.h"
+#include "compat/fsmonitor/fsm-listen.h"
 #include "config.h"
 #include "fsmonitor-ll.h"
-#include "fsm-listen.h"
 #include "fsmonitor--daemon.h"
 #include "gettext.h"
 #include "simple-ipc.h"
diff --git a/compat/inet_ntop.c b/compat/inet_ntop.c
index 68307262be..3bac8377cc 100644
--- a/compat/inet_ntop.c
+++ b/compat/inet_ntop.c
@@ -15,7 +15,7 @@
  * SOFTWARE.
  */
 
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 
 #ifndef NS_INADDRSZ
 #define NS_INADDRSZ	4
diff --git a/compat/inet_pton.c b/compat/inet_pton.c
index 2b9a0a4e22..60935a1c83 100644
--- a/compat/inet_pton.c
+++ b/compat/inet_pton.c
@@ -15,7 +15,7 @@
  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 
 #ifndef NS_INT16SZ
 #define NS_INT16SZ       2
diff --git a/compat/memmem.c b/compat/memmem.c
index 56bcb4277f..2df3e7b7b9 100644
--- a/compat/memmem.c
+++ b/compat/memmem.c
@@ -1,4 +1,4 @@
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 
 void *gitmemmem(const void *haystack, size_t haystack_len,
                 const void *needle, size_t needle_len)
diff --git a/compat/mingw.c b/compat/mingw.c
index 1d5b211b54..5b0593c59d 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -1,22 +1,22 @@
 #define USE_THE_REPOSITORY_VARIABLE
 #define DISABLE_SIGN_COMPARE_WARNINGS
 
-#include "../git-compat-util.h"
-#include "win32.h"
+#include "git-compat-util.h"
+#include "compat/win32.h"
 #include <aclapi.h>
 #include <sddl.h>
 #include <conio.h>
 #include <wchar.h>
-#include "../strbuf.h"
-#include "../run-command.h"
-#include "../abspath.h"
-#include "../alloc.h"
-#include "win32/lazyload.h"
-#include "../config.h"
-#include "../environment.h"
-#include "../trace2.h"
-#include "../symlinks.h"
-#include "../wrapper.h"
+#include "strbuf.h"
+#include "run-command.h"
+#include "abspath.h"
+#include "alloc.h"
+#include "compat/win32/lazyload.h"
+#include "config.h"
+#include "environment.h"
+#include "trace2.h"
+#include "symlinks.h"
+#include "wrapper.h"
 #include "dir.h"
 #include "gettext.h"
 #define SECURITY_WIN32
diff --git a/compat/mkdir.c b/compat/mkdir.c
index 02aea3b32e..8bd7c9a927 100644
--- a/compat/mkdir.c
+++ b/compat/mkdir.c
@@ -1,4 +1,4 @@
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 #undef mkdir
 
 /* for platforms that can't deal with a trailing '/' */
diff --git a/compat/mkdtemp.c b/compat/mkdtemp.c
index 1136119592..4349e15eee 100644
--- a/compat/mkdtemp.c
+++ b/compat/mkdtemp.c
@@ -1,4 +1,4 @@
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 
 char *gitmkdtemp(char *template)
 {
diff --git a/compat/mmap.c b/compat/mmap.c
index 2fe1c7732e..0a50adc9b9 100644
--- a/compat/mmap.c
+++ b/compat/mmap.c
@@ -1,4 +1,4 @@
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 
 void *git_mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset)
 {
diff --git a/compat/msvc.c b/compat/msvc.c
index 71843d7eef..5aacf3af19 100644
--- a/compat/msvc.c
+++ b/compat/msvc.c
@@ -1,6 +1,6 @@
-#include "../git-compat-util.h"
-#include "win32.h"
+#include "git-compat-util.h"
+#include "compat/win32.h"
 #include <conio.h>
-#include "../strbuf.h"
+#include "strbuf.h"
 
-#include "mingw.c"
+#include "compat/mingw.c"
diff --git a/compat/nonblock.c b/compat/nonblock.c
index 5b51195c32..99ea76a7a4 100644
--- a/compat/nonblock.c
+++ b/compat/nonblock.c
@@ -1,5 +1,5 @@
 #include "git-compat-util.h"
-#include "nonblock.h"
+#include "compat/nonblock.h"
 
 #ifdef O_NONBLOCK
 
@@ -14,7 +14,7 @@ int enable_pipe_nonblock(int fd)
 
 #elif defined(GIT_WINDOWS_NATIVE)
 
-#include "win32.h"
+#include "compat/win32.h"
 
 int enable_pipe_nonblock(int fd)
 {
diff --git a/compat/obstack.c b/compat/obstack.c
index 27cd5c1ea1..baab07aca4 100644
--- a/compat/obstack.c
+++ b/compat/obstack.c
@@ -19,7 +19,7 @@
 
 #include "git-compat-util.h"
 #include <gettext.h>
-#include "obstack.h"
+#include "compat/obstack.h"
 
 /* NOTE BEFORE MODIFYING THIS FILE: This version number must be
    incremented whenever callers compiled using an old obstack.h can no
diff --git a/compat/pread.c b/compat/pread.c
index 484e6d4c71..82161b5a2a 100644
--- a/compat/pread.c
+++ b/compat/pread.c
@@ -1,5 +1,5 @@
-#include "../git-compat-util.h"
-#include "../wrapper.h"
+#include "git-compat-util.h"
+#include "wrapper.h"
 
 ssize_t git_pread(int fd, void *buf, size_t count, off_t offset)
 {
diff --git a/compat/precompose_utf8.c b/compat/precompose_utf8.c
index f7cc7b3be5..994a2f1303 100644
--- a/compat/precompose_utf8.c
+++ b/compat/precompose_utf8.c
@@ -7,13 +7,13 @@
 #define USE_THE_REPOSITORY_VARIABLE
 
 #include "git-compat-util.h"
+#include "compat/precompose_utf8.h"
 #include "config.h"
 #include "environment.h"
 #include "gettext.h"
 #include "path.h"
 #include "strbuf.h"
 #include "utf8.h"
-#include "precompose_utf8.h"
 
 typedef char *iconv_ibp;
 static const char *repo_encoding = "UTF-8";
diff --git a/compat/qsort_s.c b/compat/qsort_s.c
index 0f7ff30f5f..66cd6e096d 100644
--- a/compat/qsort_s.c
+++ b/compat/qsort_s.c
@@ -1,4 +1,4 @@
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 
 /*
  * A merge sort implementation, simplified from the qsort implementation
diff --git a/compat/regcomp_enhanced.c b/compat/regcomp_enhanced.c
index 84193ce53b..693b63c2c4 100644
--- a/compat/regcomp_enhanced.c
+++ b/compat/regcomp_enhanced.c
@@ -1,4 +1,4 @@
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 #undef regcomp
 
 int git_regcomp(regex_t *preg, const char *pattern, int cflags)
diff --git a/compat/setenv.c b/compat/setenv.c
index 7849f258d2..c49df82534 100644
--- a/compat/setenv.c
+++ b/compat/setenv.c
@@ -1,4 +1,4 @@
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 
 int gitsetenv(const char *name, const char *value, int replace)
 {
diff --git a/compat/snprintf.c b/compat/snprintf.c
index 0b11688537..91a63cf3f7 100644
--- a/compat/snprintf.c
+++ b/compat/snprintf.c
@@ -1,4 +1,4 @@
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 
 /*
  * The size parameter specifies the available space, i.e. includes
diff --git a/compat/strcasestr.c b/compat/strcasestr.c
index 26896deca6..d66609361b 100644
--- a/compat/strcasestr.c
+++ b/compat/strcasestr.c
@@ -1,4 +1,4 @@
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 
 char *gitstrcasestr(const char *haystack, const char *needle)
 {
diff --git a/compat/strdup.c b/compat/strdup.c
index f3fb978eb3..9ef99f88f2 100644
--- a/compat/strdup.c
+++ b/compat/strdup.c
@@ -1,4 +1,4 @@
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 
 char *gitstrdup(const char *s1)
 {
diff --git a/compat/strlcpy.c b/compat/strlcpy.c
index 4024c36030..780b39ff82 100644
--- a/compat/strlcpy.c
+++ b/compat/strlcpy.c
@@ -1,4 +1,4 @@
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 
 size_t gitstrlcpy(char *dest, const char *src, size_t size)
 {
diff --git a/compat/strtoimax.c b/compat/strtoimax.c
index ac09ed89e7..c9ed79f0d1 100644
--- a/compat/strtoimax.c
+++ b/compat/strtoimax.c
@@ -1,4 +1,4 @@
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 
 intmax_t gitstrtoimax (const char *nptr, char **endptr, int base)
 {
diff --git a/compat/strtoumax.c b/compat/strtoumax.c
index 5541353a77..50fe26d746 100644
--- a/compat/strtoumax.c
+++ b/compat/strtoumax.c
@@ -1,4 +1,4 @@
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 
 uintmax_t gitstrtoumax (const char *nptr, char **endptr, int base)
 {
diff --git a/compat/unsetenv.c b/compat/unsetenv.c
index b9d34af613..d96e0d7bcc 100644
--- a/compat/unsetenv.c
+++ b/compat/unsetenv.c
@@ -1,4 +1,4 @@
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 
 int gitunsetenv(const char *name)
 {
diff --git a/compat/win32/dirent.c b/compat/win32/dirent.c
index 52420ec7d4..362622746d 100644
--- a/compat/win32/dirent.c
+++ b/compat/win32/dirent.c
@@ -1,4 +1,4 @@
-#include "../../git-compat-util.h"
+#include "git-compat-util.h"
 
 struct DIR {
 	struct dirent dd_dir; /* includes d_type */
diff --git a/compat/win32/flush.c b/compat/win32/flush.c
index 291f90ea94..bcad557eb4 100644
--- a/compat/win32/flush.c
+++ b/compat/win32/flush.c
@@ -1,6 +1,6 @@
 #include "git-compat-util.h"
 #include <winternl.h>
-#include "lazyload.h"
+#include "compat/win32/lazyload.h"
 
 int win32_fsync_no_flush(int fd)
 {
diff --git a/compat/win32/path-utils.c b/compat/win32/path-utils.c
index 966ef779b9..20e9a69f56 100644
--- a/compat/win32/path-utils.c
+++ b/compat/win32/path-utils.c
@@ -1,7 +1,7 @@
 #define USE_THE_REPOSITORY_VARIABLE
 
-#include "../../git-compat-util.h"
-#include "../../environment.h"
+#include "git-compat-util.h"
+#include "environment.h"
 
 int win32_has_dos_drive_prefix(const char *path)
 {
diff --git a/compat/win32/pthread.c b/compat/win32/pthread.c
index 58980a529c..86199d67ba 100644
--- a/compat/win32/pthread.c
+++ b/compat/win32/pthread.c
@@ -7,8 +7,8 @@
  * no need for double-checking.
  */
 
-#include "../../git-compat-util.h"
-#include "pthread.h"
+#include "git-compat-util.h"
+#include "compat/win32/pthread.h"
 
 #include <errno.h>
 #include <limits.h>
diff --git a/compat/win32/syslog.c b/compat/win32/syslog.c
index 4e4794743a..587fb99ba9 100644
--- a/compat/win32/syslog.c
+++ b/compat/win32/syslog.c
@@ -1,4 +1,4 @@
-#include "../../git-compat-util.h"
+#include "git-compat-util.h"
 
 static HANDLE ms_eventlog;
 
diff --git a/compat/win32/trace2_win32_process_info.c b/compat/win32/trace2_win32_process_info.c
index f147da706a..55e482f100 100644
--- a/compat/win32/trace2_win32_process_info.c
+++ b/compat/win32/trace2_win32_process_info.c
@@ -1,10 +1,10 @@
 #define USE_THE_REPOSITORY_VARIABLE
 
-#include "../../git-compat-util.h"
-#include "../../json-writer.h"
-#include "../../repository.h"
-#include "../../trace2.h"
-#include "lazyload.h"
+#include "git-compat-util.h"
+#include "compat/win32/lazyload.h"
+#include "json-writer.h"
+#include "repository.h"
+#include "trace2.h"
 #include <psapi.h>
 #include <tlhelp32.h>
 
diff --git a/compat/win32mmap.c b/compat/win32mmap.c
index e951934316..aff1768acb 100644
--- a/compat/win32mmap.c
+++ b/compat/win32mmap.c
@@ -1,6 +1,6 @@
 #define DISABLE_SIGN_COMPARE_WARNINGS
 
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 
 void *git_mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset)
 {
diff --git a/compat/winansi.c b/compat/winansi.c
index ac2ffb7869..143685e5ab 100644
--- a/compat/winansi.c
+++ b/compat/winansi.c
@@ -6,11 +6,11 @@
 
 #define DISABLE_SIGN_COMPARE_WARNINGS
 
-#include "../git-compat-util.h"
+#include "git-compat-util.h"
 #include <wingdi.h>
 #include <winreg.h>
-#include "win32.h"
-#include "win32/lazyload.h"
+#include "compat/win32.h"
+#include "compat/win32/lazyload.h"
 
 static int fd_is_interactive[3] = { 0, 0, 0 };
 #define FD_CONSOLE 0x1
diff --git a/config.mak.uname b/config.mak.uname
index b12d4e168a..cd9535a65c 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -501,7 +501,7 @@ endif
 		compat/win32/pthread.o compat/win32/syslog.o \
 		compat/win32/trace2_win32_process_info.o \
 		compat/win32/dirent.o
-	COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DDETECT_MSYS_TTY -DNOGDI -DHAVE_STRING_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\".exe\"
+	COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DDETECT_MSYS_TTY -DNOGDI -DHAVE_STRING_H -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\".exe\"
 	BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -ENTRY:wmainCRTStartup -SUBSYSTEM:CONSOLE
 	# invalidcontinue.obj allows Git's source code to close the same file
 	# handle twice, or to access the osfhandle of an already-closed stdout
@@ -692,7 +692,7 @@ ifeq ($(uname_S),MINGW)
 	HAVE_PLATFORM_PROCINFO = YesPlease
 	CSPRNG_METHOD = rtlgenrandom
 	BASIC_LDFLAGS += -municode
-	COMPAT_CFLAGS += -DNOGDI -Icompat -Icompat/win32
+	COMPAT_CFLAGS += -DNOGDI -Icompat/win32
 	COMPAT_CFLAGS += -DSTRIP_EXTENSION=\".exe\"
 	COMPAT_OBJS += compat/mingw.o compat/winansi.o \
 		compat/win32/trace2_win32_process_info.o \
-- 
2.48.1.362.g079036d154.dirty
Previous: Patrick SteinhardtNext: Johannes Sixt
Message 48 of 123 in “reftable: stop using "git-compat-util.h"”
  1. 00/19 reftable: stop using "git-compat-util.h"Patrick Steinhardt, Jan 27, 2025
  2. 02/19 reftable/stack: stop using `write_in_full()`Patrick Steinhardt, Jan 27, 2025
  3. 01/19 reftable/stack: stop using `read_in_full()`Patrick Steinhardt, Jan 27, 2025
  4. Justin ToblerJan 27, 2025
  5. Patrick SteinhardtJan 28, 2025
  6. Junio C HamanoJan 28, 2025
  7. Patrick SteinhardtJan 29, 2025
  8. 03/19 reftable/blocksource: stop using `xmmap()`Patrick Steinhardt, Jan 27, 2025
  9. 04/19 reftable/record: stop using `COPY_ARRAY()`Patrick Steinhardt, Jan 27, 2025
  10. 05/19 reftable/record: stop using `BUG()` in `reftable_record_init()`Patrick Steinhardt, Jan 27, 2025
  11. Justin ToblerJan 27, 2025
  12. 06/19 reftable/record: don't `BUG()` in `reftable_record_cmp()`Patrick Steinhardt, Jan 27, 2025
  13. Justin ToblerJan 27, 2025
  14. 07/19 reftable: stop using `BUG()` in trivial casesPatrick Steinhardt, Jan 27, 2025
  15. 08/19 reftable/basics: stop using `st_mult()` in array allocatorsPatrick Steinhardt, Jan 27, 2025
  16. 09/19 reftable/basics: provide wrappers for big endian conversionPatrick Steinhardt, Jan 27, 2025
  17. 10/19 reftable/reader: stop using `ARRAY_SIZE()` macroPatrick Steinhardt, Jan 27, 2025
  18. 11/19 reftable/system: introduce `reftable_rand()`Patrick Steinhardt, Jan 27, 2025
  19. 12/19 reftable/stack: stop using `sleep_millisec()`Patrick Steinhardt, Jan 27, 2025
  20. 13/19 reftable/basics: stop using `SWAP()` macroPatrick Steinhardt, Jan 27, 2025
  21. 14/19 reftable/basics: stop using `UNUSED` annotationPatrick Steinhardt, Jan 27, 2025
  22. 15/19 compat/mingw: split out POSIX-related bitsPatrick Steinhardt, Jan 27, 2025
  23. 16/19 compat/msvc: split out POSIX-related bitsPatrick Steinhardt, Jan 27, 2025
  24. 17/19 git-compat-util.h: split out POSIX-emulating bitsPatrick Steinhardt, Jan 27, 2025
  25. Justin ToblerJan 27, 2025
  26. 18/19 reftable: decouple from Git codebase by pulling in "compat/posix.h"Patrick Steinhardt, Jan 27, 2025
  27. 19/19 Makefile: skip reftable library for CoccinellePatrick Steinhardt, Jan 27, 2025
  28. Junio C HamanoJan 27, 2025
  29. Patrick SteinhardtJan 28, 2025
  30. Junio C HamanoJan 28, 2025
  31. 00/20 reftable: stop using "git-compat-util.h"Patrick Steinhardt, Jan 28, 2025
  32. 01/20 reftable/stack: stop using `read_in_full()`Patrick Steinhardt, Jan 28, 2025
  33. 02/20 reftable/stack: stop using `write_in_full()`Patrick Steinhardt, Jan 28, 2025
  34. 04/20 reftable/record: stop using `COPY_ARRAY()`Patrick Steinhardt, Jan 28, 2025
  35. Justin ToblerJan 29, 2025
  36. Patrick SteinhardtFeb 3, 2025
  37. 03/20 reftable/blocksource: stop using `xmmap()`Patrick Steinhardt, Jan 28, 2025
  38. 05/20 reftable/record: stop using `BUG()` in `reftable_record_init()`Patrick Steinhardt, Jan 28, 2025
  39. 06/20 reftable/record: don't `BUG()` in `reftable_record_cmp()`Patrick Steinhardt, Jan 28, 2025
  40. 07/20 reftable: stop using `BUG()` in trivial casesPatrick Steinhardt, Jan 28, 2025
  41. 08/20 reftable/basics: stop using `st_mult()` in array allocatorsPatrick Steinhardt, Jan 28, 2025
  42. 09/20 reftable/basics: provide wrappers for big endian conversionPatrick Steinhardt, Jan 28, 2025
  43. 10/20 reftable/reader: stop using `ARRAY_SIZE()` macroPatrick Steinhardt, Jan 28, 2025
  44. 11/20 reftable/system: introduce `reftable_rand()`Patrick Steinhardt, Jan 28, 2025
  45. 12/20 reftable/stack: stop using `sleep_millisec()`Patrick Steinhardt, Jan 28, 2025
  46. 13/20 reftable/basics: stop using `SWAP()` macroPatrick Steinhardt, Jan 28, 2025
  47. 14/20 reftable/basics: stop using `UNUSED` annotationPatrick Steinhardt, Jan 28, 2025
  48. 15/20 compat: consistently resolve headers via project rootPatrick Steinhardt, Jan 28, 2025
  49. Johannes SixtJan 29, 2025
  50. Junio C HamanoJan 29, 2025
  51. Patrick SteinhardtFeb 3, 2025
  52. 16/20 compat/mingw: split out POSIX-related bitsPatrick Steinhardt, Jan 28, 2025
  53. 17/20 compat/msvc: split out POSIX-related bitsPatrick Steinhardt, Jan 28, 2025
  54. 18/20 git-compat-util.h: split out POSIX-emulating bitsPatrick Steinhardt, Jan 28, 2025
  55. 19/20 reftable: decouple from Git codebase by pulling in "compat/posix.h"Patrick Steinhardt, Jan 28, 2025
  56. 20/20 Makefile: skip reftable library for CoccinellePatrick Steinhardt, Jan 28, 2025
  57. Junio C HamanoJan 28, 2025
  58. Patrick SteinhardtJan 29, 2025
  59. Junio C HamanoJan 29, 2025
  60. 00/18 reftable: stop using "git-compat-util.h"Patrick Steinhardt, Feb 3, 2025
  61. 01/18 reftable/stack: stop using `read_in_full()`Patrick Steinhardt, Feb 3, 2025
  62. 02/18 reftable/stack: stop using `write_in_full()`Patrick Steinhardt, Feb 3, 2025
  63. 03/18 reftable/blocksource: stop using `xmmap()`Patrick Steinhardt, Feb 3, 2025
  64. 04/18 reftable/record: stop using `COPY_ARRAY()`Patrick Steinhardt, Feb 3, 2025
  65. 05/18 reftable/record: stop using `BUG()` in `reftable_record_init()`Patrick Steinhardt, Feb 3, 2025
  66. 06/18 reftable/record: don't `BUG()` in `reftable_record_cmp()`Patrick Steinhardt, Feb 3, 2025
  67. 07/18 reftable: stop using `BUG()` in trivial casesPatrick Steinhardt, Feb 3, 2025
  68. 08/18 reftable/basics: stop using `st_mult()` in array allocatorsPatrick Steinhardt, Feb 3, 2025
  69. 09/18 reftable/basics: provide wrappers for big endian conversionPatrick Steinhardt, Feb 3, 2025
  70. 10/18 reftable/reader: stop using `ARRAY_SIZE()` macroPatrick Steinhardt, Feb 3, 2025
  71. 11/18 reftable/system: introduce `reftable_rand()`Patrick Steinhardt, Feb 3, 2025
  72. 12/18 reftable/stack: stop using `sleep_millisec()`Patrick Steinhardt, Feb 3, 2025
  73. 13/18 reftable/basics: stop using `SWAP()` macroPatrick Steinhardt, Feb 3, 2025
  74. 14/18 reftable/basics: stop using `UNUSED` annotationPatrick Steinhardt, Feb 3, 2025
  75. 15/18 compat/mingw: split out POSIX-related bitsPatrick Steinhardt, Feb 3, 2025
  76. 16/18 git-compat-util.h: split out POSIX-emulating bitsPatrick Steinhardt, Feb 3, 2025
  77. 17/18 reftable: decouple from Git codebase by pulling in "compat/posix.h"Patrick Steinhardt, Feb 3, 2025
  78. 18/18 Makefile: skip reftable library for CoccinellePatrick Steinhardt, Feb 3, 2025
  79. Justin ToblerFeb 6, 2025
  80. 00/18 reftable: stop using "git-compat-util.h"Patrick Steinhardt, Feb 6, 2025
  81. 02/18 reftable/stack: stop using `write_in_full()`Patrick Steinhardt, Feb 6, 2025
  82. 01/18 reftable/stack: stop using `read_in_full()`Patrick Steinhardt, Feb 6, 2025
  83. 03/18 reftable/blocksource: stop using `xmmap()`Patrick Steinhardt, Feb 6, 2025
  84. 04/18 reftable/record: stop using `COPY_ARRAY()`Patrick Steinhardt, Feb 6, 2025
  85. 05/18 reftable/record: stop using `BUG()` in `reftable_record_init()`Patrick Steinhardt, Feb 6, 2025
  86. 06/18 reftable/record: don't `BUG()` in `reftable_record_cmp()`Patrick Steinhardt, Feb 6, 2025
  87. 07/18 reftable: stop using `BUG()` in trivial casesPatrick Steinhardt, Feb 6, 2025
  88. 08/18 reftable/basics: stop using `st_mult()` in array allocatorsPatrick Steinhardt, Feb 6, 2025
  89. 10/18 reftable/reader: stop using `ARRAY_SIZE()` macroPatrick Steinhardt, Feb 6, 2025
  90. 09/18 reftable/basics: provide wrappers for big endian conversionPatrick Steinhardt, Feb 6, 2025
  91. 11/18 reftable/system: introduce `reftable_rand()`Patrick Steinhardt, Feb 6, 2025
  92. 12/18 reftable/stack: stop using `sleep_millisec()`Patrick Steinhardt, Feb 6, 2025
  93. 13/18 reftable/basics: stop using `SWAP()` macroPatrick Steinhardt, Feb 6, 2025
  94. 14/18 reftable/basics: stop using `UNUSED` annotationPatrick Steinhardt, Feb 6, 2025
  95. Toon ClaesFeb 7, 2025
  96. Patrick SteinhardtFeb 7, 2025
  97. 15/18 compat/mingw: split out POSIX-related bitsPatrick Steinhardt, Feb 6, 2025
  98. 16/18 git-compat-util.h: split out POSIX-emulating bitsPatrick Steinhardt, Feb 6, 2025
  99. 17/18 reftable: decouple from Git codebase by pulling in "compat/posix.h"Patrick Steinhardt, Feb 6, 2025
  100. 18/18 Makefile: skip reftable library for CoccinellePatrick Steinhardt, Feb 6, 2025
  101. 00/18 reftable: stop using "git-compat-util.h"Patrick Steinhardt, Feb 7, 2025
  102. 01/18 reftable/stack: stop using `read_in_full()`Patrick Steinhardt, Feb 7, 2025
  103. 02/18 reftable/stack: stop using `write_in_full()`Patrick Steinhardt, Feb 7, 2025
  104. 03/18 reftable/blocksource: stop using `xmmap()`Patrick Steinhardt, Feb 7, 2025
  105. 04/18 reftable/record: stop using `COPY_ARRAY()`Patrick Steinhardt, Feb 7, 2025
  106. 05/18 reftable/record: stop using `BUG()` in `reftable_record_init()`Patrick Steinhardt, Feb 7, 2025
  107. 06/18 reftable/record: don't `BUG()` in `reftable_record_cmp()`Patrick Steinhardt, Feb 7, 2025
  108. 08/18 reftable/basics: stop using `st_mult()` in array allocatorsPatrick Steinhardt, Feb 7, 2025
  109. 07/18 reftable: stop using `BUG()` in trivial casesPatrick Steinhardt, Feb 7, 2025
  110. 09/18 reftable/basics: provide wrappers for big endian conversionPatrick Steinhardt, Feb 7, 2025
  111. 10/18 reftable/reader: stop using `ARRAY_SIZE()` macroPatrick Steinhardt, Feb 7, 2025
  112. 11/18 reftable/system: introduce `reftable_rand()`Patrick Steinhardt, Feb 7, 2025
  113. 12/18 reftable/stack: stop using `sleep_millisec()`Patrick Steinhardt, Feb 7, 2025
  114. 13/18 reftable/basics: stop using `SWAP()` macroPatrick Steinhardt, Feb 7, 2025
  115. 14/18 reftable/basics: introduce `REFTABLE_UNUSED` annotationPatrick Steinhardt, Feb 7, 2025
  116. 15/18 compat/mingw: split out POSIX-related bitsPatrick Steinhardt, Feb 7, 2025
  117. Johannes SixtFeb 9, 2025
  118. Junio C HamanoFeb 10, 2025
  119. Johannes SchindelinFeb 13, 2025
  120. Patrick SteinhardtFeb 17, 2025
  121. 16/18 git-compat-util.h: split out POSIX-emulating bitsPatrick Steinhardt, Feb 7, 2025
  122. 17/18 reftable: decouple from Git codebase by pulling in "compat/posix.h"Patrick Steinhardt, Feb 7, 2025
  123. 18/18 Makefile: skip reftable library for CoccinellePatrick Steinhardt, Feb 7, 2025

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.