[PATCH v7 0/7] strbuf cleanups
- From
Calvin Wan <calvinwan@google.com>
- Date
- Jun 6, 2023, 19:47 UTC
- Message-ID
- <20230606194720.2053551-1-calvinwan@google.com>
- In-Reply-To
- <20230512171429.2202982-1-calvinwan@google.com>
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