[PATCH v2 00/17] cocci: remove "the_repository" wrapper macros
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Mar 28, 2023, 13:58 UTC
- Message-ID
- <cover-v2-00.17-00000000000-20230328T110946Z-avarab@gmail.com>
- In-Reply-To
- <cover-00.17-00000000000-20230317T152724Z-avarab@gmail.com>
A v2 of the removal of "the_repository" wrapper macros and adjacent cleanups. The v1 subject for this said "the_index", sorry!
See v1 [1] for a more general overview. The changes since v1 are trivial & best skimmed from the range-diff, just a rebasing, clarification in a commit message, and a typo fix, thanks all!
As before this has a trivial conflict with "seen", but this time
around the conflict is different, but it's trivially solved as before,
the remerge-diff was:
diff --git a/cache.h b/cache.h
remerge CONFLICT (content): Merge conflict in cache.h
index 25e002c488b..82d7b112b4e 100644
--- a/cache.h
+++ b/cache.h
@@ -711,31 +711,6 @@ extern int quote_path_fully;
*/
const char *repo_find_unique_abbrev(struct repository *r, const struct object_id *oid, int len);
int repo_find_unique_abbrev_r(struct repository *r, char *hex, const struct object_id *oid, int len);
-<<<<<<< 9f4013b4b9d (libs: use "struct repository *" argument, not "the_repository")
-
-/* set default permissions by passing mode arguments to open(2) */
-int git_mkstemps_mode(char *pattern, int suffix_len, int mode);
-int git_mkstemp_mode(char *pattern, int mode);
-
-/*
- * NOTE NOTE NOTE!!
- *
- * PERM_UMASK, OLD_PERM_GROUP and OLD_PERM_EVERYBODY enumerations must
- * not be changed. Old repositories have core.sharedrepository written in
- * numeric format, and therefore these values are preserved for compatibility
- * reasons.
- */
-enum sharedrepo {
- PERM_UMASK = 0,
- OLD_PERM_GROUP = 1,
- OLD_PERM_EVERYBODY = 2,
- PERM_GROUP = 0660,
- PERM_EVERYBODY = 0664
-};
-int git_config_perm(const char *var, const char *value);
-int adjust_shared_perm(const char *path);
-=======
->>>>>>> 2bb680d6bbd (Merge branch 'kh/commentchar-config-error-message' into seen)
/*
* Create the directory containing the named path, using care to be
@@ -925,11 +900,6 @@ int repo_interpret_branch_name(struct repository *r,
const char *str, int len,
struct strbuf *buf,
const struct interpret_branch_name_options *options);
-<<<<<<< 9f4013b4b9d (libs: use "struct repository *" argument, not "the_repository")
-
-int validate_headref(const char *ref);
-=======
->>>>>>> 2bb680d6bbd (Merge branch 'kh/commentchar-config-error-message' into seen)
int base_name_compare(const char *name1, size_t len1, int mode1,
const char *name2, size_t len2, int mode2);
Branch & CI for this at:
https://github.com/avar/git/tree/avar/cocci-the-repository-from-pending-21. https://lore.kernel.org/git/cover-00.17-00000000000-20230317T152724Z-avarab@gmail.com/
Ævar Arnfjörð Bjarmason (17): cocci: remove dead rule from "the_repository.pending.cocci" cocci: fix incorrect & verbose "the_repository" rules cocci: sort "the_repository" rules by header cocci: add missing "the_repository" macros to "pending" cocci: apply the "cache.h" part of "the_repository.pending" cocci: apply the "commit-reach.h" part of "the_repository.pending" cocci: apply the "commit.h" part of "the_repository.pending" cocci: apply the "diff.h" part of "the_repository.pending" cocci: apply the "object-store.h" part of "the_repository.pending" cocci: apply the "pretty.h" part of "the_repository.pending" cocci: apply the "packfile.h" part of "the_repository.pending" cocci: apply the "promisor-remote.h" part of "the_repository.pending" cocci: apply the "refs.h" part of "the_repository.pending" cocci: apply the "rerere.h" part of "the_repository.pending" cocci: apply the "revision.h" part of "the_repository.pending" post-cocci: adjust comments for recent repo_* migration libs: use "struct repository *" argument, not "the_repository"
add-interactive.c | 2 +- add-patch.c | 2 +- apply.c | 13 +- archive.c | 12 +- bisect.c | 11 +- blame.c | 15 +- branch.c | 7 +- builtin/am.c | 23 +-- builtin/bisect.c | 33 ++-- builtin/blame.c | 15 +- builtin/branch.c | 9 +- builtin/cat-file.c | 25 +-- builtin/checkout.c | 35 ++-- builtin/clone.c | 6 +- builtin/commit-tree.c | 4 +- builtin/commit.c | 29 ++-- builtin/describe.c | 9 +- builtin/diff.c | 3 +- builtin/difftool.c | 3 +- builtin/fast-export.c | 12 +- builtin/fast-import.c | 17 +- builtin/fetch.c | 21 +-- builtin/fsck.c | 2 +- builtin/gc.c | 8 +- builtin/grep.c | 6 +- builtin/index-pack.c | 11 +- builtin/log.c | 30 ++-- builtin/ls-files.c | 4 +- builtin/ls-tree.c | 9 +- builtin/merge-base.c | 9 +- builtin/merge-recursive.c | 6 +- builtin/merge-tree.c | 18 ++- builtin/merge.c | 23 +-- builtin/mktag.c | 3 +- builtin/name-rev.c | 11 +- builtin/notes.c | 34 ++-- builtin/pack-objects.c | 24 ++- builtin/prune.c | 2 +- builtin/pull.c | 4 +- builtin/range-diff.c | 12 +- builtin/read-tree.c | 2 +- builtin/rebase.c | 21 +-- builtin/receive-pack.c | 14 +- builtin/remote.c | 2 +- builtin/repack.c | 2 +- builtin/replace.c | 20 +-- builtin/reset.c | 22 +-- builtin/rev-list.c | 2 +- builtin/rev-parse.c | 18 ++- builtin/rm.c | 2 +- builtin/shortlog.c | 13 +- builtin/show-branch.c | 19 +-- builtin/show-ref.c | 6 +- builtin/sparse-checkout.c | 2 +- builtin/stash.c | 26 +-- builtin/submodule--helper.c | 6 +- builtin/tag.c | 10 +- builtin/unpack-file.c | 4 +- builtin/unpack-objects.c | 5 +- builtin/update-ref.c | 8 +- builtin/verify-commit.c | 2 +- builtin/verify-tag.c | 2 +- builtin/worktree.c | 8 +- bulk-checkin.c | 2 +- bundle.c | 5 +- cache-tree.c | 16 +- cache.h | 19 +-- checkout.c | 2 +- combine-diff.c | 8 +- commit-graph.c | 4 +- commit-reach.c | 21 +-- commit-reach.h | 9 -- commit.c | 44 ++--- commit.h | 22 +-- connected.c | 4 +- contrib/coccinelle/the_repository.cocci | 123 ++++++++++++++ .../coccinelle/the_repository.pending.cocci | 128 --------------- delta-islands.c | 5 +- diff-lib.c | 2 +- diff.c | 6 +- diff.h | 5 +- diffcore-break.c | 2 +- diffcore-rename.c | 4 +- dir.c | 2 +- entry.c | 3 +- fetch-pack.c | 8 +- fmt-merge-msg.c | 15 +- fsck.c | 6 +- http-push.c | 16 +- http-walker.c | 4 +- list-objects-filter-options.c | 7 +- list-objects.c | 20 ++- log-tree.c | 28 ++-- mailmap.c | 4 +- match-trees.c | 4 +- merge-blobs.c | 6 +- merge-ort.c | 6 +- merge-recursive.c | 9 +- negotiator/default.c | 6 +- negotiator/skipping.c | 2 +- notes-cache.c | 5 +- notes-merge.c | 11 +- notes-utils.c | 2 +- notes.c | 18 ++- object-file.c | 4 +- object-name.c | 19 ++- object-store.h | 11 +- pack-bitmap-write.c | 3 +- packfile.c | 2 +- packfile.h | 1 - parse-options-cb.c | 8 +- pretty.c | 10 +- pretty.h | 4 - promisor-remote.h | 15 -- range-diff.c | 12 +- read-cache.c | 9 +- rebase-interactive.c | 2 +- ref-filter.c | 8 +- reflog.c | 7 +- refs.c | 2 +- refs.h | 6 - remote.c | 15 +- rerere.c | 5 +- rerere.h | 3 - reset.c | 4 +- revision.c | 27 ++-- revision.h | 3 - send-pack.c | 6 +- sequencer.c | 150 ++++++++++-------- shallow.c | 21 +-- strbuf.h | 6 +- submodule-config.c | 5 +- submodule.c | 8 +- t/helper/test-fast-rebase.c | 19 ++- t/helper/test-match-trees.c | 4 +- t/helper/test-oidmap.c | 6 +- t/helper/test-reach.c | 12 +- t/helper/test-revision-walking.c | 3 +- t/helper/test-submodule-config.c | 2 +- tag.c | 9 +- transport-helper.c | 2 +- transport.c | 3 +- tree.c | 5 +- unpack-trees.c | 2 +- upload-pack.c | 8 +- walker.c | 6 +- wt-status.c | 21 +-- xdiff-interface.c | 2 +- 148 files changed, 958 insertions(+), 873 deletions(-) create mode 100644 contrib/coccinelle/the_repository.cocci delete mode 100644 contrib/coccinelle/the_repository.pending.cocci
Range-diff against v1:
1: c167bde3c0c ! 1: e1e27490d60 cocci: remove dead rule from "the_repository.pending.cocci"
@@ Commit message
cocci: remove dead rule from "the_repository.pending.cocci"
The "parse_commit_gently" macro went away in [1], so we don't need to
- carry his for its migration.
+ carry this for its migration.
1. ea3f7e598c8 (revision: use repository from rev_info when parsing
commits, 2020-06-23)
2: 1b1fc5d41f5 = 2: 5ac9d5b8905 cocci: fix incorrect & verbose "the_repository" rules
3: 34c6b8afd6c ! 3: a3fcd19d744 cocci: sort "the_repository" rules by header
@@ Commit message
rules. This will make subsequent commits easier to follow, as we'll be
applying these rules on a header-by-header basis.
+ Once we've fully applied "the_repository.pending.cocci" we'll keep
+ this rules around for a while in "the_repository.cocci", to help any
+ outstanding topics and out-of-tree code to resolve textual or semantic
+ conflicts with these changes, but eventually we'll remove the
+ "the_repository.cocci" as a follow-up.
+
+ So even if some of these functions are subsequently moved and/or split
+ into other or new headers there's no risk of this becoming stale, if
+ and when that happens the we should be removing these rules anyway.
+
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## contrib/coccinelle/the_repository.pending.cocci ##
4: 4b62e9a35a9 = 4: af8bdc2adec cocci: add missing "the_repository" macros to "pending"
5: 36eae891341 ! 5: 3e721fa5db0 cocci: apply the "cache.h" part of "the_repository.pending"
@@ cache.h: void *read_object_with_reference(struct repository *r,
-#define peel_to_type(name, namelen, obj, type) \
- repo_peel_to_type(the_repository, name, namelen, obj, type)
- #define IDENT_STRICT 1
- #define IDENT_NO_DATE 2
+ const char *git_editor(void);
+ const char *git_sequence_editor(void);
## checkout.c ##
@@ checkout.c: static int check_tracking_name(struct remote *remote, void *cb_data)
6: b06ea9861fd = 6: 0f24a57b50b cocci: apply the "commit-reach.h" part of "the_repository.pending"
7: 2e9cf3ca378 ! 7: 7d64ace3551 cocci: apply the "commit.h" part of "the_repository.pending"
@@ commit.h: void repo_unuse_commit_buffer(struct repository *r,
/*
@@ commit.h: void free_commit_list(struct commit_list *list);
+
struct rev_info; /* in revision.h, it circularly uses enum cmit_fmt */
- int has_non_ascii(const char *text);
-const char *logmsg_reencode(const struct commit *commit,
- char **commit_encoding,
- const char *output_encoding);
8: 6c5f4861471 = 8: f442e7b9acc cocci: apply the "diff.h" part of "the_repository.pending"
9: 893684f135b = 9: 1866d473f1b cocci: apply the "object-store.h" part of "the_repository.pending"
10: c4bf81a2892 = 10: 10e05c56231 cocci: apply the "pretty.h" part of "the_repository.pending"
11: 8cfc1c18878 = 11: 13955394126 cocci: apply the "packfile.h" part of "the_repository.pending"
12: abd237009f9 = 12: 8336b0321a8 cocci: apply the "promisor-remote.h" part of "the_repository.pending"
13: aae743233ab = 13: a08d7f8eccf cocci: apply the "refs.h" part of "the_repository.pending"
14: fb281b1ecdd = 14: 3d59dfe4186 cocci: apply the "rerere.h" part of "the_repository.pending"
15: c8ff241844a = 15: b7561c87ba5 cocci: apply the "revision.h" part of "the_repository.pending"
16: 86e24add191 = 16: f947bb69dee post-cocci: adjust comments for recent repo_* migration
17: 6f86a34bf8b = 17: 9f4013b4b9d libs: use "struct repository *" argument, not "the_repository"-- 2.40.0.rc1.1034.g5867a1b10c5