I rebased this series onto 2.41 and noticed I was getting a compilation error for a missing dependency to repository in dir.h. With all of the other cleanups happening, I assume some dependency chain that used to exist doesn't anymore. This reroll moves "strbuf: clarify dependency" to the second patch so any dependency chain broken by the other cleanup patches can be caught. And that is why patch 4 adds a forward declaration back. I also caught an additional unnecessary dependency that could be removed in patch 5. This series should now be able to be rebased onto 2.41 without any issue. Calvin Wan (7): strbuf: clarify API boundary strbuf: clarify dependency abspath: move related functions to abspath credential-store: move related functions to credential-store file object-name: move related functions to object-name path: move related function to path strbuf: remove global variable abspath.c | 36 ++++++++++++ abspath.h | 21 +++++++ add-patch.c | 12 ++-- builtin/am.c | 2 +- builtin/branch.c | 4 +- builtin/commit.c | 2 +- builtin/credential-store.c | 19 +++++++ builtin/merge.c | 10 ++-- builtin/notes.c | 16 +++--- builtin/rebase.c | 2 +- builtin/stripspace.c | 6 +- builtin/tag.c | 9 ++- dir.h | 2 + fmt-merge-msg.c | 9 ++- gpg-interface.c | 5 +- hook.c | 1 + object-name.c | 15 +++++ object-name.h | 9 +++ path.c | 20 +++++++ path.h | 5 ++ pretty.c | 1 + rebase-interactive.c | 15 ++--- sequencer.c | 24 +++++--- strbuf.c | 113 ++++--------------------------------- strbuf.h | 57 ++++++------------- tempfile.c | 1 + wt-status.c | 6 +- 27 files changed, 229 insertions(+), 193 deletions(-) Range-diff against v6: 1: 5ae531a1e2 = 1: 121788f263 strbuf: clarify API boundary -: ---------- > 2: 5e91404ecd strbuf: clarify dependency 2: 3bb2b9c01a = 3: 5c05f40181 abspath: move related functions to abspath 3: ff91ca2fda = 4: e1addc77e5 credential-store: move related functions to credential-store file 4: 10e61eb570 ! 5: 62e8c42f59 object-name: move related functions to object-name @@ Commit message so that strbuf is focused on string manipulation routines with minimal dependencies. + dir.h relied on the forward declration of the repository struct in + strbuf.h. Since that is removed in this patch, add the forward + declaration to dir.h. + + ## dir.h ## +@@ + * + */ + ++struct repository; ++ + struct dir_entry { + unsigned int len; + char name[FLEX_ARRAY]; /* more */ + ## object-name.c ## @@ object-name.c: static void find_abbrev_len_packed(struct min_abbrev_data *mad) find_abbrev_len_for_pack(p, mad); @@ strbuf.c #include "gettext.h" #include "hex.h" -#include "object-name.h" - #include "refs.h" + #include "repository.h" + #include "strbuf.h" #include "string-list.h" - #include "utf8.h" @@ strbuf.c: void strbuf_addftime(struct strbuf *sb, const char *fmt, const struct tm *tm, strbuf_setlen(sb, sb->len + len); } 5: c3d5db4e11 ! 6: 0abba57acb path: move related function to path @@ Commit message Move path-related function from strbuf.[ch] to path.[ch] so that strbuf is focused on string manipulation routines with minimal dependencies. + repository.h is no longer a necessary dependency after moving this + function out. + ## path.c ## @@ path.c: int normalize_path_copy(char *dst, const char *src) return normalize_path_copy_len(dst, src, NULL); @@ path.h: const char *remove_leading_path(const char *in, const char *prefix); int daemon_avoid_alias(const char *path); ## strbuf.c ## +@@ + #include "environment.h" + #include "gettext.h" + #include "hex.h" +-#include "repository.h" + #include "strbuf.h" + #include "string-list.h" + #include "utf8.h" @@ strbuf.c: void strbuf_stripspace(struct strbuf *sb, int skip_comments) strbuf_setlen(sb, j); } 6: 113d156195 < -: ---------- strbuf: clarify dependency 7: 01c923160d = 7: d33267a390 strbuf: remove global variable -- 2.41.0.162.gfafddb0af9-goog