aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--add-patch.c1
-rw-r--r--apply.c1
-rw-r--r--archive.h1
-rw-r--r--bisect.c1
-rw-r--r--branch.c1
-rw-r--r--builtin/am.c1
-rw-r--r--builtin/bisect.c1
-rw-r--r--builtin/blame.c1
-rw-r--r--builtin/branch.c1
-rw-r--r--builtin/cat-file.c1
-rw-r--r--builtin/check-attr.c1
-rw-r--r--builtin/checkout.c1
-rw-r--r--builtin/commit-tree.c1
-rw-r--r--builtin/commit.c1
-rw-r--r--builtin/describe.c1
-rw-r--r--builtin/fast-import.c1
-rw-r--r--builtin/fetch.c1
-rw-r--r--builtin/fsck.c1
-rw-r--r--builtin/grep.c1
-rw-r--r--builtin/log.c1
-rw-r--r--builtin/ls-files.c1
-rw-r--r--builtin/ls-tree.c1
-rw-r--r--builtin/merge-base.c1
-rw-r--r--builtin/merge-recursive.c1
-rw-r--r--builtin/merge-tree.c1
-rw-r--r--builtin/merge.c1
-rw-r--r--builtin/name-rev.c1
-rw-r--r--builtin/notes.c1
-rw-r--r--builtin/prune.c1
-rw-r--r--builtin/pull.c1
-rw-r--r--builtin/range-diff.c1
-rw-r--r--builtin/read-tree.c1
-rw-r--r--builtin/rebase.c1
-rw-r--r--builtin/receive-pack.c1
-rw-r--r--builtin/replace.c1
-rw-r--r--builtin/reset.c1
-rw-r--r--builtin/rev-list.c1
-rw-r--r--builtin/rev-parse.c1
-rw-r--r--builtin/rm.c1
-rw-r--r--builtin/show-branch.c1
-rw-r--r--builtin/show-ref.c1
-rw-r--r--builtin/sparse-checkout.c1
-rw-r--r--builtin/stash.c1
-rw-r--r--builtin/submodule--helper.c1
-rw-r--r--builtin/tag.c1
-rw-r--r--builtin/unpack-file.c1
-rw-r--r--builtin/update-ref.c1
-rw-r--r--builtin/verify-commit.c1
-rw-r--r--builtin/verify-tag.c1
-rw-r--r--builtin/worktree.c1
-rw-r--r--cache.h110
-rw-r--r--checkout.c1
-rw-r--r--combine-diff.c1
-rw-r--r--commit.c1
-rw-r--r--config.c1
-rw-r--r--diff-lib.c1
-rw-r--r--diff.c1
-rw-r--r--fmt-merge-msg.c1
-rw-r--r--list-objects-filter.c1
-rw-r--r--log-tree.c1
-rw-r--r--mailmap.c1
-rw-r--r--merge-ort.c1
-rw-r--r--merge-recursive.c1
-rw-r--r--notes-merge.c1
-rw-r--r--notes.c1
-rw-r--r--object-name.c1
-rw-r--r--object-name.h121
-rw-r--r--parse-options-cb.c1
-rw-r--r--range-diff.c1
-rw-r--r--read-cache.c1
-rw-r--r--rebase-interactive.c1
-rw-r--r--ref-filter.c1
-rw-r--r--refs.c1
-rw-r--r--remote.c1
-rw-r--r--reset.c1
-rw-r--r--revision.c1
-rw-r--r--sequencer.c1
-rw-r--r--setup.c1
-rw-r--r--strbuf.c1
-rw-r--r--submodule-config.c1
-rw-r--r--submodule.c1
-rw-r--r--t/helper/test-fast-rebase.c1
-rw-r--r--t/helper/test-match-trees.c1
-rw-r--r--t/helper/test-oidmap.c1
-rw-r--r--t/helper/test-reach.c1
-rw-r--r--t/helper/test-submodule-config.c1
-rw-r--r--tag.c1
-rw-r--r--transport-helper.c1
-rw-r--r--transport.c1
-rw-r--r--tree.c1
-rw-r--r--wt-status.c1
91 files changed, 210 insertions, 110 deletions
diff --git a/add-patch.c b/add-patch.c
index b381f14a7d..b01ba8fa81 100644
--- a/add-patch.c
+++ b/add-patch.c
@@ -4,6 +4,7 @@
#include "alloc.h"
#include "environment.h"
#include "gettext.h"
+#include "object-name.h"
#include "strbuf.h"
#include "run-command.h"
#include "strvec.h"
diff --git a/apply.c b/apply.c
index 9b7288bc92..7e40f53ec4 100644
--- a/apply.c
+++ b/apply.c
@@ -22,6 +22,7 @@
#include "xdiff-interface.h"
#include "ll-merge.h"
#include "lockfile.h"
+#include "object-name.h"
#include "parse-options.h"
#include "quote.h"
#include "rerere.h"
diff --git a/archive.h b/archive.h
index 7178e2a9a2..f96839ef38 100644
--- a/archive.h
+++ b/archive.h
@@ -2,6 +2,7 @@
#define ARCHIVE_H
#include "cache.h"
+#include "object-name.h"
#include "pathspec.h"
struct repository;
diff --git a/bisect.c b/bisect.c
index 0a5f2ed354..e708e8b6aa 100644
--- a/bisect.c
+++ b/bisect.c
@@ -17,6 +17,7 @@
#include "strvec.h"
#include "commit-slab.h"
#include "commit-reach.h"
+#include "object-name.h"
#include "object-store.h"
#include "dir.h"
diff --git a/branch.c b/branch.c
index 3a087b8b4c..f29743b161 100644
--- a/branch.c
+++ b/branch.c
@@ -6,6 +6,7 @@
#include "environment.h"
#include "gettext.h"
#include "hex.h"
+#include "object-name.h"
#include "refs.h"
#include "refspec.h"
#include "remote.h"
diff --git a/builtin/am.c b/builtin/am.c
index 8d876f3154..0d7ee28bdd 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -27,6 +27,7 @@
#include "diffcore.h"
#include "unpack-trees.h"
#include "branch.h"
+#include "object-name.h"
#include "sequencer.h"
#include "revision.h"
#include "merge-recursive.h"
diff --git a/builtin/bisect.c b/builtin/bisect.c
index 7dc175c657..4b2143d455 100644
--- a/builtin/bisect.c
+++ b/builtin/bisect.c
@@ -3,6 +3,7 @@
#include "environment.h"
#include "gettext.h"
#include "hex.h"
+#include "object-name.h"
#include "parse-options.h"
#include "bisect.h"
#include "refs.h"
diff --git a/builtin/blame.c b/builtin/blame.c
index a8d2114adc..a628388c2c 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -28,6 +28,7 @@
#include "line-log.h"
#include "dir.h"
#include "progress.h"
+#include "object-name.h"
#include "object-store.h"
#include "blame.h"
#include "refs.h"
diff --git a/builtin/branch.c b/builtin/branch.c
index 5706eb0097..7c1c872708 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -13,6 +13,7 @@
#include "commit.h"
#include "builtin.h"
#include "gettext.h"
+#include "object-name.h"
#include "remote.h"
#include "parse-options.h"
#include "branch.h"
diff --git a/builtin/cat-file.c b/builtin/cat-file.c
index 1e4b4798f4..60b7a55dfc 100644
--- a/builtin/cat-file.c
+++ b/builtin/cat-file.c
@@ -20,6 +20,7 @@
#include "tree-walk.h"
#include "oid-array.h"
#include "packfile.h"
+#include "object-name.h"
#include "object-store.h"
#include "replace-object.h"
#include "promisor-remote.h"
diff --git a/builtin/check-attr.c b/builtin/check-attr.c
index 1dbe9d6ca8..037bf1aaa2 100644
--- a/builtin/check-attr.c
+++ b/builtin/check-attr.c
@@ -5,6 +5,7 @@
#include "attr.h"
#include "environment.h"
#include "gettext.h"
+#include "object-name.h"
#include "quote.h"
#include "setup.h"
#include "parse-options.h"
diff --git a/builtin/checkout.c b/builtin/checkout.c
index 65988fd8a3..6f5d82ed3d 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -17,6 +17,7 @@
#include "lockfile.h"
#include "mem-pool.h"
#include "merge-recursive.h"
+#include "object-name.h"
#include "object-store.h"
#include "parse-options.h"
#include "refs.h"
diff --git a/builtin/commit-tree.c b/builtin/commit-tree.c
index 15be167f87..d1d251c3de 100644
--- a/builtin/commit-tree.c
+++ b/builtin/commit-tree.c
@@ -7,6 +7,7 @@
#include "config.h"
#include "gettext.h"
#include "hex.h"
+#include "object-name.h"
#include "object-store.h"
#include "repository.h"
#include "commit.h"
diff --git a/builtin/commit.c b/builtin/commit.c
index b09017e04f..682f47c8d5 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -27,6 +27,7 @@
#include "log-tree.h"
#include "strbuf.h"
#include "utf8.h"
+#include "object-name.h"
#include "parse-options.h"
#include "string-list.h"
#include "rerere.h"
diff --git a/builtin/describe.c b/builtin/describe.c
index 0125d4ddba..d360b1d12a 100644
--- a/builtin/describe.c
+++ b/builtin/describe.c
@@ -11,6 +11,7 @@
#include "refs.h"
#include "builtin.h"
#include "exec-cmd.h"
+#include "object-name.h"
#include "parse-options.h"
#include "revision.h"
#include "diff.h"
diff --git a/builtin/fast-import.c b/builtin/fast-import.c
index 68b1a53987..31b8732128 100644
--- a/builtin/fast-import.c
+++ b/builtin/fast-import.c
@@ -19,6 +19,7 @@
#include "dir.h"
#include "run-command.h"
#include "packfile.h"
+#include "object-name.h"
#include "object-store.h"
#include "mem-pool.h"
#include "commit-reach.h"
diff --git a/builtin/fetch.c b/builtin/fetch.c
index e093662921..8a8ab6799e 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -10,6 +10,7 @@
#include "repository.h"
#include "refs.h"
#include "refspec.h"
+#include "object-name.h"
#include "object-store.h"
#include "oidset.h"
#include "oid-array.h"
diff --git a/builtin/fsck.c b/builtin/fsck.c
index 095b39d398..04bc71d148 100644
--- a/builtin/fsck.c
+++ b/builtin/fsck.c
@@ -19,6 +19,7 @@
#include "streaming.h"
#include "decorate.h"
#include "packfile.h"
+#include "object-name.h"
#include "object-store.h"
#include "replace-object.h"
#include "resolve-undo.h"
diff --git a/builtin/grep.c b/builtin/grep.c
index a1b68d90bd..f66e14389e 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -26,6 +26,7 @@
#include "setup.h"
#include "submodule.h"
#include "submodule-config.h"
+#include "object-name.h"
#include "object-store.h"
#include "packfile.h"
#include "write-or-die.h"
diff --git a/builtin/log.c b/builtin/log.c
index 094897df23..5cdc2276cc 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -12,6 +12,7 @@
#include "gettext.h"
#include "hex.h"
#include "refs.h"
+#include "object-name.h"
#include "object-store.h"
#include "color.h"
#include "commit.h"
diff --git a/builtin/ls-files.c b/builtin/ls-files.c
index 7f228353fe..ce083cb8ef 100644
--- a/builtin/ls-files.c
+++ b/builtin/ls-files.c
@@ -13,6 +13,7 @@
#include "dir.h"
#include "builtin.h"
#include "gettext.h"
+#include "object-name.h"
#include "strbuf.h"
#include "tree.h"
#include "cache-tree.h"
diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c
index f32e6be219..077977a461 100644
--- a/builtin/ls-tree.c
+++ b/builtin/ls-tree.c
@@ -7,6 +7,7 @@
#include "config.h"
#include "gettext.h"
#include "hex.h"
+#include "object-name.h"
#include "object-store.h"
#include "blob.h"
#include "tree.h"
diff --git a/builtin/merge-base.c b/builtin/merge-base.c
index 3f22273b40..854019a32d 100644
--- a/builtin/merge-base.c
+++ b/builtin/merge-base.c
@@ -7,6 +7,7 @@
#include "refs.h"
#include "diff.h"
#include "revision.h"
+#include "object-name.h"
#include "parse-options.h"
#include "repository.h"
#include "commit-reach.h"
diff --git a/builtin/merge-recursive.c b/builtin/merge-recursive.c
index 25f42f2be7..fa1035405c 100644
--- a/builtin/merge-recursive.c
+++ b/builtin/merge-recursive.c
@@ -5,6 +5,7 @@
#include "gettext.h"
#include "tag.h"
#include "merge-recursive.h"
+#include "object-name.h"
#include "xdiff-interface.h"
static const char builtin_merge_recursive_usage[] =
diff --git a/builtin/merge-tree.c b/builtin/merge-tree.c
index 803e380856..6b9f006ec1 100644
--- a/builtin/merge-tree.c
+++ b/builtin/merge-tree.c
@@ -8,6 +8,7 @@
#include "commit.h"
#include "commit-reach.h"
#include "merge-ort.h"
+#include "object-name.h"
#include "object-store.h"
#include "parse-options.h"
#include "repository.h"
diff --git a/builtin/merge.c b/builtin/merge.c
index 225b706406..693f185d4d 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -15,6 +15,7 @@
#include "environment.h"
#include "gettext.h"
#include "hex.h"
+#include "object-name.h"
#include "parse-options.h"
#include "builtin.h"
#include "lockfile.h"
diff --git a/builtin/name-rev.c b/builtin/name-rev.c
index 831d360a78..41fd56b9ba 100644
--- a/builtin/name-rev.c
+++ b/builtin/name-rev.c
@@ -8,6 +8,7 @@
#include "commit.h"
#include "tag.h"
#include "refs.h"
+#include "object-name.h"
#include "parse-options.h"
#include "prio-queue.h"
#include "hash-lookup.h"
diff --git a/builtin/notes.c b/builtin/notes.c
index 4ff44f1e3d..896140b905 100644
--- a/builtin/notes.c
+++ b/builtin/notes.c
@@ -13,6 +13,7 @@
#include "gettext.h"
#include "hex.h"
#include "notes.h"
+#include "object-name.h"
#include "object-store.h"
#include "repository.h"
#include "blob.h"
diff --git a/builtin/prune.c b/builtin/prune.c
index 5c0952f5c6..09891832fb 100644
--- a/builtin/prune.c
+++ b/builtin/prune.c
@@ -11,6 +11,7 @@
#include "progress.h"
#include "prune-packed.h"
#include "replace-object.h"
+#include "object-name.h"
#include "object-store.h"
#include "shallow.h"
diff --git a/builtin/pull.c b/builtin/pull.c
index 636ce12c94..967368ebc6 100644
--- a/builtin/pull.c
+++ b/builtin/pull.c
@@ -12,6 +12,7 @@
#include "builtin.h"
#include "gettext.h"
#include "hex.h"
+#include "object-name.h"
#include "parse-options.h"
#include "exec-cmd.h"
#include "run-command.h"
diff --git a/builtin/range-diff.c b/builtin/range-diff.c
index b72af527f0..04339a92ea 100644
--- a/builtin/range-diff.c
+++ b/builtin/range-diff.c
@@ -1,6 +1,7 @@
#include "cache.h"
#include "builtin.h"
#include "gettext.h"
+#include "object-name.h"
#include "parse-options.h"
#include "range-diff.h"
#include "config.h"
diff --git a/builtin/read-tree.c b/builtin/read-tree.c
index 600d4f748f..d61cbad96d 100644
--- a/builtin/read-tree.c
+++ b/builtin/read-tree.c
@@ -11,6 +11,7 @@
#include "hex.h"
#include "lockfile.h"
#include "object.h"
+#include "object-name.h"
#include "tree.h"
#include "tree-walk.h"
#include "cache-tree.h"
diff --git a/builtin/rebase.c b/builtin/rebase.c
index fb859f93a3..ff5dd77608 100644
--- a/builtin/rebase.c
+++ b/builtin/rebase.c
@@ -21,6 +21,7 @@
#include "cache-tree.h"
#include "unpack-trees.h"
#include "lockfile.h"
+#include "object-name.h"
#include "parse-options.h"
#include "commit.h"
#include "diff.h"
diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
index aa5b6fe861..7d921170f1 100644
--- a/builtin/receive-pack.c
+++ b/builtin/receive-pack.c
@@ -29,6 +29,7 @@
#include "tmp-objdir.h"
#include "oidset.h"
#include "packfile.h"
+#include "object-name.h"
#include "object-store.h"
#include "protocol.h"
#include "commit-reach.h"
diff --git a/builtin/replace.c b/builtin/replace.c
index d2adc8ab61..134f738a45 100644
--- a/builtin/replace.c
+++ b/builtin/replace.c
@@ -17,6 +17,7 @@
#include "refs.h"
#include "parse-options.h"
#include "run-command.h"
+#include "object-name.h"
#include "object-store.h"
#include "replace-object.h"
#include "repository.h"
diff --git a/builtin/reset.c b/builtin/reset.c
index d8c52cc6ed..f99f32d580 100644
--- a/builtin/reset.c
+++ b/builtin/reset.c
@@ -24,6 +24,7 @@
#include "diffcore.h"
#include "tree.h"
#include "branch.h"
+#include "object-name.h"
#include "parse-options.h"
#include "unpack-trees.h"
#include "cache-tree.h"
diff --git a/builtin/rev-list.c b/builtin/rev-list.c
index a3dbbb6338..c17f0282ae 100644
--- a/builtin/rev-list.c
+++ b/builtin/rev-list.c
@@ -10,6 +10,7 @@
#include "list-objects-filter.h"
#include "list-objects-filter-options.h"
#include "object.h"
+#include "object-name.h"
#include "object-store.h"
#include "pack.h"
#include "pack-bitmap.h"
diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c
index 1af2089f9b..852e49e340 100644
--- a/builtin/rev-parse.c
+++ b/builtin/rev-parse.c
@@ -15,6 +15,7 @@
#include "refs.h"
#include "quote.h"
#include "builtin.h"
+#include "object-name.h"
#include "parse-options.h"
#include "diff.h"
#include "revision.h"
diff --git a/builtin/rm.c b/builtin/rm.c
index 6be9281742..d36072252e 100644
--- a/builtin/rm.c
+++ b/builtin/rm.c
@@ -13,6 +13,7 @@
#include "cache-tree.h"
#include "gettext.h"
#include "tree-walk.h"
+#include "object-name.h"
#include "parse-options.h"
#include "string-list.h"
#include "setup.h"
diff --git a/builtin/show-branch.c b/builtin/show-branch.c
index 463a8d11c3..20030b75e3 100644
--- a/builtin/show-branch.c
+++ b/builtin/show-branch.c
@@ -8,6 +8,7 @@
#include "builtin.h"
#include "color.h"
#include "strvec.h"
+#include "object-name.h"
#include "parse-options.h"
#include "dir.h"
#include "commit-slab.h"
diff --git a/builtin/show-ref.c b/builtin/show-ref.c
index 138d30a005..a2243b4219 100644
--- a/builtin/show-ref.c
+++ b/builtin/show-ref.c
@@ -4,6 +4,7 @@
#include "gettext.h"
#include "hex.h"
#include "refs.h"
+#include "object-name.h"
#include "object-store.h"
#include "object.h"
#include "tag.h"
diff --git a/builtin/sparse-checkout.c b/builtin/sparse-checkout.c
index 090bf33510..34b9d92fb1 100644
--- a/builtin/sparse-checkout.c
+++ b/builtin/sparse-checkout.c
@@ -4,6 +4,7 @@
#include "dir.h"
#include "environment.h"
#include "gettext.h"
+#include "object-name.h"
#include "parse-options.h"
#include "pathspec.h"
#include "repository.h"
diff --git a/builtin/stash.c b/builtin/stash.c
index 14194b13bd..6442b5e20a 100644
--- a/builtin/stash.c
+++ b/builtin/stash.c
@@ -5,6 +5,7 @@
#include "environment.h"
#include "gettext.h"
#include "hex.h"
+#include "object-name.h"
#include "parse-options.h"
#include "refs.h"
#include "lockfile.h"
diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
index 8337703715..1f087d7bed 100644
--- a/builtin/submodule--helper.c
+++ b/builtin/submodule--helper.c
@@ -24,6 +24,7 @@
#include "revision.h"
#include "diffcore.h"
#include "diff.h"
+#include "object-name.h"
#include "object-store.h"
#include "advice.h"
#include "branch.h"
diff --git a/builtin/tag.c b/builtin/tag.c
index 3e801f54a0..88a2590230 100644
--- a/builtin/tag.c
+++ b/builtin/tag.c
@@ -14,6 +14,7 @@
#include "gettext.h"
#include "hex.h"
#include "refs.h"
+#include "object-name.h"
#include "object-store.h"
#include "tag.h"
#include "run-command.h"
diff --git a/builtin/unpack-file.c b/builtin/unpack-file.c
index 314761b0b4..21082ceb60 100644
--- a/builtin/unpack-file.c
+++ b/builtin/unpack-file.c
@@ -1,6 +1,7 @@
#include "builtin.h"
#include "config.h"
#include "hex.h"
+#include "object-name.h"
#include "object-store.h"
#include "wrapper.h"
diff --git a/builtin/update-ref.c b/builtin/update-ref.c
index 3ffd75b3e7..6ca85420c3 100644
--- a/builtin/update-ref.c
+++ b/builtin/update-ref.c
@@ -3,6 +3,7 @@
#include "gettext.h"
#include "refs.h"
#include "builtin.h"
+#include "object-name.h"
#include "parse-options.h"
#include "quote.h"
#include "strvec.h"
diff --git a/builtin/verify-commit.c b/builtin/verify-commit.c
index 4d10aa98b1..5d99b82a64 100644
--- a/builtin/verify-commit.c
+++ b/builtin/verify-commit.c
@@ -9,6 +9,7 @@
#include "config.h"
#include "builtin.h"
#include "gettext.h"
+#include "object-name.h"
#include "object-store.h"
#include "repository.h"
#include "commit.h"
diff --git a/builtin/verify-tag.c b/builtin/verify-tag.c
index 28d0da6845..c6019a0ad8 100644
--- a/builtin/verify-tag.c
+++ b/builtin/verify-tag.c
@@ -11,6 +11,7 @@
#include "gettext.h"
#include "tag.h"
#include "run-command.h"
+#include "object-name.h"
#include "parse-options.h"
#include "gpg-interface.h"
#include "ref-filter.h"
diff --git a/builtin/worktree.c b/builtin/worktree.c
index 944dd40f94..69132bba31 100644
--- a/builtin/worktree.c
+++ b/builtin/worktree.c
@@ -7,6 +7,7 @@
#include "environment.h"
#include "gettext.h"
#include "hex.h"
+#include "object-name.h"
#include "parse-options.h"
#include "strvec.h"
#include "branch.h"
diff --git a/cache.h b/cache.h
index 66705dd469..21db5da39a 100644
--- a/cache.h
+++ b/cache.h
@@ -688,24 +688,6 @@ extern int quote_path_fully;
#define TYPE_CHANGED 0x0040
/*
- * Return an abbreviated sha1 unique within this repository's object database.
- * The result will be at least `len` characters long, and will be NUL
- * terminated.
- *
- * The non-`_r` version returns a static buffer which remains valid until 4
- * more calls to repo_find_unique_abbrev are made.
- *
- * The `_r` variant writes to a buffer supplied by the caller, which must be at
- * least `GIT_MAX_HEXSZ + 1` bytes. The return value is the number of bytes
- * written (excluding the NUL terminator).
- *
- * Note that while this version avoids the static buffer, it is not fully
- * reentrant, as it calls into other non-reentrant git code.
- */
-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);
-
-/*
* Create the directory containing the named path, using care to be
* somewhat safe against races. Return one of the scld_error values to
* indicate success/failure. On error, set errno to describe the
@@ -806,94 +788,6 @@ int finalize_object_file(const char *tmpfile, const char *filename);
/* Helper to check and "touch" a file */
int check_and_freshen_file(const char *fn, int freshen);
-/* Convert to/from hex/sha1 representation */
-#define MINIMUM_ABBREV minimum_abbrev
-#define DEFAULT_ABBREV default_abbrev
-
-/* used when the code does not know or care what the default abbrev is */
-#define FALLBACK_DEFAULT_ABBREV 7
-
-struct object_context {
- unsigned short mode;
- /*
- * symlink_path is only used by get_tree_entry_follow_symlinks,
- * and only for symlinks that point outside the repository.
- */
- struct strbuf symlink_path;
- /*
- * If GET_OID_RECORD_PATH is set, this will record path (if any)
- * found when resolving the name. The caller is responsible for
- * releasing the memory.
- */
- char *path;
-};
-
-int repo_get_oid(struct repository *r, const char *str, struct object_id *oid);
-__attribute__((format (printf, 2, 3)))
-int get_oidf(struct object_id *oid, const char *fmt, ...);
-int repo_get_oid_commit(struct repository *r, const char *str, struct object_id *oid);
-int repo_get_oid_committish(struct repository *r, const char *str, struct object_id *oid);
-int repo_get_oid_tree(struct repository *r, const char *str, struct object_id *oid);
-int repo_get_oid_treeish(struct repository *r, const char *str, struct object_id *oid);
-int repo_get_oid_blob(struct repository *r, const char *str, struct object_id *oid);
-int repo_get_oid_mb(struct repository *r, const char *str, struct object_id *oid);
-void maybe_die_on_misspelt_object_name(struct repository *repo,
- const char *name,
- const char *prefix);
-enum get_oid_result get_oid_with_context(struct repository *repo, const char *str,
- unsigned flags, struct object_id *oid,
- struct object_context *oc);
-
-typedef int each_abbrev_fn(const struct object_id *oid, void *);
-int repo_for_each_abbrev(struct repository *r, const char *prefix, each_abbrev_fn, void *);
-
-int set_disambiguate_hint_config(const char *var, const char *value);
-
-/*
- * This reads short-hand syntax that not only evaluates to a commit
- * object name, but also can act as if the end user spelled the name
- * of the branch from the command line.
- *
- * - "@{-N}" finds the name of the Nth previous branch we were on, and
- * places the name of the branch in the given buf and returns the
- * number of characters parsed if successful.
- *
- * - "<branch>@{upstream}" finds the name of the other ref that
- * <branch> is configured to merge with (missing <branch> defaults
- * to the current branch), and places the name of the branch in the
- * given buf and returns the number of characters parsed if
- * successful.
- *
- * If the input is not of the accepted format, it returns a negative
- * number to signal an error.
- *
- * If the input was ok but there are not N branch switches in the
- * reflog, it returns 0.
- */
-#define INTERPRET_BRANCH_LOCAL (1<<0)
-#define INTERPRET_BRANCH_REMOTE (1<<1)
-#define INTERPRET_BRANCH_HEAD (1<<2)
-struct interpret_branch_name_options {
- /*
- * If "allowed" is non-zero, it is a treated as a bitfield of allowable
- * expansions: local branches ("refs/heads/"), remote branches
- * ("refs/remotes/"), or "HEAD". If no "allowed" bits are set, any expansion is
- * allowed, even ones to refs outside of those namespaces.
- */
- unsigned allowed;
-
- /*
- * If ^{upstream} or ^{push} (or equivalent) is requested, and the
- * branch in question does not have such a reference, return -1 instead
- * of die()-ing.
- */
- unsigned nonfatal_dangling_mark : 1;
-};
-int repo_interpret_branch_name(struct repository *r,
- const char *str, int len,
- struct strbuf *buf,
- const struct interpret_branch_name_options *options);
-
int base_name_compare(const char *name1, size_t len1, int mode1,
const char *name2, size_t len2, int mode2);
int df_name_compare(const char *name1, size_t len1, int mode1,
@@ -907,10 +801,6 @@ void *read_object_with_reference(struct repository *r,
unsigned long *size,
struct object_id *oid_ret);
-struct object *repo_peel_to_type(struct repository *r,
- const char *name, int namelen,
- struct object *o, enum object_type);
-
const char *git_editor(void);
const char *git_sequence_editor(void);
const char *git_pager(int stdout_is_tty);
diff --git a/checkout.c b/checkout.c
index 1247b88224..9235073fc0 100644
--- a/checkout.c
+++ b/checkout.c
@@ -1,4 +1,5 @@
#include "cache.h"
+#include "object-name.h"
#include "remote.h"
#include "refspec.h"
#include "checkout.h"
diff --git a/combine-diff.c b/combine-diff.c
index 6586e4508d..cd5f39f22f 100644
--- a/combine-diff.c
+++ b/combine-diff.c
@@ -7,6 +7,7 @@
#include "diffcore.h"
#include "environment.h"
#include "hex.h"
+#include "object-name.h"
#include "quote.h"
#include "xdiff-interface.h"
#include "xdiff/xmacros.h"
diff --git a/commit.c b/commit.c
index 6d844da9a6..bad31c423a 100644
--- a/commit.c
+++ b/commit.c
@@ -6,6 +6,7 @@
#include "gettext.h"
#include "hex.h"
#include "repository.h"
+#include "object-name.h"
#include "object-store.h"
#include "pkt-line.h"
#include "utf8.h"
diff --git a/config.c b/config.c
index 9e74b5aec7..aac439530e 100644
--- a/config.c
+++ b/config.c
@@ -23,6 +23,7 @@
#include "quote.h"
#include "hashmap.h"
#include "string-list.h"
+#include "object-name.h"
#include "object-store.h"
#include "utf8.h"
#include "dir.h"
diff --git a/diff-lib.c b/diff-lib.c
index 8b5cca96ac..d292405a26 100644
--- a/diff-lib.c
+++ b/diff-lib.c
@@ -8,6 +8,7 @@
#include "diffcore.h"
#include "gettext.h"
#include "hex.h"
+#include "object-name.h"
#include "revision.h"
#include "cache-tree.h"
#include "unpack-trees.h"
diff --git a/diff.c b/diff.c
index 89cd0b17da..9e6ad94bc6 100644
--- a/diff.c
+++ b/diff.c
@@ -35,6 +35,7 @@
#include "help.h"
#include "promisor-remote.h"
#include "dir.h"
+#include "object-name.h"
#include "setup.h"
#include "strmap.h"
#include "wrapper.h"
diff --git a/fmt-merge-msg.c b/fmt-merge-msg.c
index 1886c92ddb..21019c932b 100644
--- a/fmt-merge-msg.c
+++ b/fmt-merge-msg.c
@@ -3,6 +3,7 @@
#include "config.h"
#include "environment.h"
#include "refs.h"
+#include "object-name.h"
#include "object-store.h"
#include "diff.h"
#include "diff-merges.h"
diff --git a/list-objects-filter.c b/list-objects-filter.c
index 298ca08711..8b2a45e507 100644
--- a/list-objects-filter.c
+++ b/list-objects-filter.c
@@ -15,6 +15,7 @@
#include "list-objects-filter-options.h"
#include "oidmap.h"
#include "oidset.h"
+#include "object-name.h"
#include "object-store.h"
/* Remember to update object flag allocation in object.h */
diff --git a/log-tree.c b/log-tree.c
index 627c711f70..f0e885635e 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -4,6 +4,7 @@
#include "diff.h"
#include "environment.h"
#include "hex.h"
+#include "object-name.h"
#include "object-store.h"
#include "repository.h"
#include "tmp-objdir.h"
diff --git a/mailmap.c b/mailmap.c
index 14f2c0f62a..d62d7bf0e7 100644
--- a/mailmap.c
+++ b/mailmap.c
@@ -2,6 +2,7 @@
#include "environment.h"
#include "string-list.h"
#include "mailmap.h"
+#include "object-name.h"
#include "object-store.h"
#include "setup.h"
diff --git a/merge-ort.c b/merge-ort.c
index 1008684fbb..2c6a9ed9a4 100644
--- a/merge-ort.c
+++ b/merge-ort.c
@@ -32,6 +32,7 @@
#include "entry.h"
#include "ll-merge.h"
#include "mem-pool.h"
+#include "object-name.h"
#include "object-store.h"
#include "oid-array.h"
#include "promisor-remote.h"
diff --git a/merge-recursive.c b/merge-recursive.c
index ed5534eb57..748a6799a3 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -22,6 +22,7 @@
#include "hex.h"
#include "ll-merge.h"
#include "lockfile.h"
+#include "object-name.h"
#include "object-store.h"
#include "repository.h"
#include "revision.h"
diff --git a/notes-merge.c b/notes-merge.c
index 0258f87d21..b496b77d9d 100644
--- a/notes-merge.c
+++ b/notes-merge.c
@@ -3,6 +3,7 @@
#include "commit.h"
#include "gettext.h"
#include "refs.h"
+#include "object-name.h"
#include "object-store.h"
#include "repository.h"
#include "diff.h"
diff --git a/notes.c b/notes.c
index 45fb7f22d1..c07bcbe348 100644
--- a/notes.c
+++ b/notes.c
@@ -3,6 +3,7 @@
#include "environment.h"
#include "hex.h"
#include "notes.h"
+#include "object-name.h"
#include "object-store.h"
#include "blob.h"
#include "tree.h"
diff --git a/object-name.c b/object-name.c
index ff647d6c7b..3cd5b32729 100644
--- a/object-name.c
+++ b/object-name.c
@@ -1,4 +1,5 @@
#include "cache.h"
+#include "object-name.h"
#include "advice.h"
#include "config.h"
#include "environment.h"
diff --git a/object-name.h b/object-name.h
new file mode 100644
index 0000000000..1d63698f42
--- /dev/null
+++ b/object-name.h
@@ -0,0 +1,121 @@
+#ifndef OBJECT_NAME_H
+#define OBJECT_NAME_H
+
+#include "object.h"
+#include "strbuf.h"
+
+struct object_id;
+struct repository;
+
+struct object_context {
+ unsigned short mode;
+ /*
+ * symlink_path is only used by get_tree_entry_follow_symlinks,
+ * and only for symlinks that point outside the repository.
+ */
+ struct strbuf symlink_path;
+ /*
+ * If GET_OID_RECORD_PATH is set, this will record path (if any)
+ * found when resolving the name. The caller is responsible for
+ * releasing the memory.
+ */
+ char *path;
+};
+
+/*
+ * Return an abbreviated sha1 unique within this repository's object database.
+ * The result will be at least `len` characters long, and will be NUL
+ * terminated.
+ *
+ * The non-`_r` version returns a static buffer which remains valid until 4
+ * more calls to repo_find_unique_abbrev are made.
+ *
+ * The `_r` variant writes to a buffer supplied by the caller, which must be at
+ * least `GIT_MAX_HEXSZ + 1` bytes. The return value is the number of bytes
+ * written (excluding the NUL terminator).
+ *
+ * Note that while this version avoids the static buffer, it is not fully
+ * reentrant, as it calls into other non-reentrant git code.
+ */
+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);
+
+int repo_get_oid(struct repository *r, const char *str, struct object_id *oid);
+__attribute__((format (printf, 2, 3)))
+int get_oidf(struct object_id *oid, const char *fmt, ...);
+int repo_get_oid_commit(struct repository *r, const char *str, struct object_id *oid);
+int repo_get_oid_committish(struct repository *r, const char *str, struct object_id *oid);
+int repo_get_oid_tree(struct repository *r, const char *str, struct object_id *oid);
+int repo_get_oid_treeish(struct repository *r, const char *str, struct object_id *oid);
+int repo_get_oid_blob(struct repository *r, const char *str, struct object_id *oid);
+int repo_get_oid_mb(struct repository *r, const char *str, struct object_id *oid);
+void maybe_die_on_misspelt_object_name(struct repository *repo,
+ const char *name,
+ const char *prefix);
+enum get_oid_result get_oid_with_context(struct repository *repo, const char *str,
+ unsigned flags, struct object_id *oid,
+ struct object_context *oc);
+
+
+typedef int each_abbrev_fn(const struct object_id *oid, void *);
+int repo_for_each_abbrev(struct repository *r, const char *prefix, each_abbrev_fn, void *);
+
+int set_disambiguate_hint_config(const char *var, const char *value);
+
+/*
+ * This reads short-hand syntax that not only evaluates to a commit
+ * object name, but also can act as if the end user spelled the name
+ * of the branch from the command line.
+ *
+ * - "@{-N}" finds the name of the Nth previous branch we were on, and
+ * places the name of the branch in the given buf and returns the
+ * number of characters parsed if successful.
+ *
+ * - "<branch>@{upstream}" finds the name of the other ref that
+ * <branch> is configured to merge with (missing <branch> defaults
+ * to the current branch), and places the name of the branch in the
+ * given buf and returns the number of characters parsed if
+ * successful.
+ *
+ * If the input is not of the accepted format, it returns a negative
+ * number to signal an error.
+ *
+ * If the input was ok but there are not N branch switches in the
+ * reflog, it returns 0.
+ */
+#define INTERPRET_BRANCH_LOCAL (1<<0)
+#define INTERPRET_BRANCH_REMOTE (1<<1)
+#define INTERPRET_BRANCH_HEAD (1<<2)
+struct interpret_branch_name_options {
+ /*
+ * If "allowed" is non-zero, it is a treated as a bitfield of allowable
+ * expansions: local branches ("refs/heads/"), remote branches
+ * ("refs/remotes/"), or "HEAD". If no "allowed" bits are set, any expansion is
+ * allowed, even ones to refs outside of those namespaces.
+ */
+ unsigned allowed;
+
+ /*
+ * If ^{upstream} or ^{push} (or equivalent) is requested, and the
+ * branch in question does not have such a reference, return -1 instead
+ * of die()-ing.
+ */
+ unsigned nonfatal_dangling_mark : 1;
+};
+int repo_interpret_branch_name(struct repository *r,
+ const char *str, int len,
+ struct strbuf *buf,
+ const struct interpret_branch_name_options *options);
+
+struct object *repo_peel_to_type(struct repository *r,
+ const char *name, int namelen,
+ struct object *o, enum object_type);
+
+/* Convert to/from hex/sha1 representation */
+#define MINIMUM_ABBREV minimum_abbrev
+#define DEFAULT_ABBREV default_abbrev
+
+/* used when the code does not know or care what the default abbrev is */
+#define FALLBACK_DEFAULT_ABBREV 7
+
+#endif /* OBJECT_NAME_H */
diff --git a/parse-options-cb.c b/parse-options-cb.c
index 666c212979..b4df4bcebe 100644
--- a/parse-options-cb.c
+++ b/parse-options-cb.c
@@ -6,6 +6,7 @@
#include "color.h"
#include "environment.h"
#include "gettext.h"
+#include "object-name.h"
#include "string-list.h"
#include "strvec.h"
#include "oid-array.h"
diff --git a/range-diff.c b/range-diff.c
index d1ed3b8ee5..a2994331a1 100644
--- a/range-diff.c
+++ b/range-diff.c
@@ -2,6 +2,7 @@
#include "environment.h"
#include "gettext.h"
#include "range-diff.h"
+#include "object-name.h"
#include "string-list.h"
#include "run-command.h"
#include "strvec.h"
diff --git a/read-cache.c b/read-cache.c
index 4ada6d62b9..cbbfc030da 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -22,6 +22,7 @@
#include "environment.h"
#include "gettext.h"
#include "mem-pool.h"
+#include "object-name.h"
#include "resolve-undo.h"
#include "run-command.h"
#include "strbuf.h"
diff --git a/rebase-interactive.c b/rebase-interactive.c
index 79ed61b9fa..48467a7bc4 100644
--- a/rebase-interactive.c
+++ b/rebase-interactive.c
@@ -8,6 +8,7 @@
#include "commit-slab.h"
#include "config.h"
#include "dir.h"
+#include "object-name.h"
#include "wrapper.h"
static const char edit_todo_list_advice[] =
diff --git a/ref-filter.c b/ref-filter.c
index 1c6174c8ae..57a5884aec 100644
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -6,6 +6,7 @@
#include "parse-options.h"
#include "refs.h"
#include "wildmatch.h"
+#include "object-name.h"
#include "object-store.h"
#include "oid-array.h"
#include "repository.h"
diff --git a/refs.c b/refs.c
index cfced6f174..979ed3fbed 100644
--- a/refs.c
+++ b/refs.c
@@ -16,6 +16,7 @@
#include "refs/refs-internal.h"
#include "run-command.h"
#include "hook.h"
+#include "object-name.h"
#include "object-store.h"
#include "object.h"
#include "tag.h"
diff --git a/remote.c b/remote.c
index 6599d52de2..3afedce593 100644
--- a/remote.c
+++ b/remote.c
@@ -9,6 +9,7 @@
#include "urlmatch.h"
#include "refs.h"
#include "refspec.h"
+#include "object-name.h"
#include "object-store.h"
#include "commit.h"
#include "diff.h"
diff --git a/reset.c b/reset.c
index ab300923e0..48da0adf85 100644
--- a/reset.c
+++ b/reset.c
@@ -3,6 +3,7 @@
#include "gettext.h"
#include "hex.h"
#include "lockfile.h"
+#include "object-name.h"
#include "refs.h"
#include "reset.h"
#include "run-command.h"
diff --git a/revision.c b/revision.c
index 7c34c93885..7438b50e26 100644
--- a/revision.c
+++ b/revision.c
@@ -4,6 +4,7 @@
#include "environment.h"
#include "gettext.h"
#include "hex.h"
+#include "object-name.h"
#include "object-store.h"
#include "tag.h"
#include "blob.h"
diff --git a/sequencer.c b/sequencer.c
index eaba379e3a..22b287be98 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -8,6 +8,7 @@
#include "hex.h"
#include "lockfile.h"
#include "dir.h"
+#include "object-name.h"
#include "object-store.h"
#include "object.h"
#include "commit.h"
diff --git a/setup.c b/setup.c
index 3bb7a9fff6..8a297b3cb5 100644
--- a/setup.c
+++ b/setup.c
@@ -2,6 +2,7 @@
#include "abspath.h"
#include "environment.h"
#include "gettext.h"
+#include "object-name.h"
#include "repository.h"
#include "config.h"
#include "dir.h"
diff --git a/strbuf.c b/strbuf.c
index 70a83e7980..1b93d9d3c4 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -4,6 +4,7 @@
#include "environment.h"
#include "gettext.h"
#include "hex.h"
+#include "object-name.h"
#include "refs.h"
#include "string-list.h"
#include "utf8.h"
diff --git a/submodule-config.c b/submodule-config.c
index ecf0fcf007..252b90aa43 100644
--- a/submodule-config.c
+++ b/submodule-config.c
@@ -9,6 +9,7 @@
#include "submodule-config.h"
#include "submodule.h"
#include "strbuf.h"
+#include "object-name.h"
#include "object-store.h"
#include "parse-options.h"
#include "tree-walk.h"
diff --git a/submodule.c b/submodule.c
index 58c9d5e567..4f403b9eef 100644
--- a/submodule.c
+++ b/submodule.c
@@ -24,6 +24,7 @@
#include "remote.h"
#include "worktree.h"
#include "parse-options.h"
+#include "object-name.h"
#include "object-store.h"
#include "commit-reach.h"
#include "setup.h"
diff --git a/t/helper/test-fast-rebase.c b/t/helper/test-fast-rebase.c
index fd48e0ee2c..d1d63feaa9 100644
--- a/t/helper/test-fast-rebase.c
+++ b/t/helper/test-fast-rebase.c
@@ -20,6 +20,7 @@
#include "hex.h"
#include "lockfile.h"
#include "merge-ort.h"
+#include "object-name.h"
#include "refs.h"
#include "revision.h"
#include "sequencer.h"
diff --git a/t/helper/test-match-trees.c b/t/helper/test-match-trees.c
index 7066f3c71d..3808e1ac38 100644
--- a/t/helper/test-match-trees.c
+++ b/t/helper/test-match-trees.c
@@ -1,6 +1,7 @@
#include "test-tool.h"
#include "cache.h"
#include "hex.h"
+#include "object-name.h"
#include "setup.h"
#include "tree.h"
diff --git a/t/helper/test-oidmap.c b/t/helper/test-oidmap.c
index e2eb25ecde..bf4fcfe6ef 100644
--- a/t/helper/test-oidmap.c
+++ b/t/helper/test-oidmap.c
@@ -1,6 +1,7 @@
#include "test-tool.h"
#include "cache.h"
#include "hex.h"
+#include "object-name.h"
#include "oidmap.h"
#include "setup.h"
#include "strbuf.h"
diff --git a/t/helper/test-reach.c b/t/helper/test-reach.c
index b0deaa106a..d4fa33ae75 100644
--- a/t/helper/test-reach.c
+++ b/t/helper/test-reach.c
@@ -6,6 +6,7 @@
#include "config.h"
#include "gettext.h"
#include "hex.h"
+#include "object-name.h"
#include "parse-options.h"
#include "ref-filter.h"
#include "setup.h"
diff --git a/t/helper/test-submodule-config.c b/t/helper/test-submodule-config.c
index 66063b58de..4758c8654e 100644
--- a/t/helper/test-submodule-config.c
+++ b/t/helper/test-submodule-config.c
@@ -1,6 +1,7 @@
#include "test-tool.h"
#include "cache.h"
#include "config.h"
+#include "object-name.h"
#include "setup.h"
#include "submodule-config.h"
#include "submodule.h"
diff --git a/tag.c b/tag.c
index 01ed67d6fa..b9fc2fc992 100644
--- a/tag.c
+++ b/tag.c
@@ -1,6 +1,7 @@
#include "cache.h"
#include "environment.h"
#include "tag.h"
+#include "object-name.h"
#include "object-store.h"
#include "commit.h"
#include "tree.h"
diff --git a/transport-helper.c b/transport-helper.c
index 76d146ee88..ca8bec04bb 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -7,6 +7,7 @@
#include "environment.h"
#include "gettext.h"
#include "hex.h"
+#include "object-name.h"
#include "revision.h"
#include "remote.h"
#include "string-list.h"
diff --git a/transport.c b/transport.c
index 82bf2496ba..7374cfd1fa 100644
--- a/transport.c
+++ b/transport.c
@@ -26,6 +26,7 @@
#include "trace2.h"
#include "transport-internal.h"
#include "protocol.h"
+#include "object-name.h"
#include "object-store.h"
#include "color.h"
#include "bundle-uri.h"
diff --git a/tree.c b/tree.c
index 2b78708766..e9d51ce2e0 100644
--- a/tree.c
+++ b/tree.c
@@ -2,6 +2,7 @@
#include "cache-tree.h"
#include "hex.h"
#include "tree.h"
+#include "object-name.h"
#include "object-store.h"
#include "blob.h"
#include "commit.h"
diff --git a/wt-status.c b/wt-status.c
index 47f223c0f8..97b9c1c035 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -8,6 +8,7 @@
#include "environment.h"
#include "gettext.h"
#include "hex.h"
+#include "object-name.h"
#include "revision.h"
#include "diffcore.h"
#include "quote.h"