#define USE_THE_REPOSITORY_VARIABLE
#include "git-compat-util.h"
#include "object-name.h"
#include "advice.h"
#include "config.h"
#include "environment.h"
#include "gettext.h"
#include "hex.h"
#include "tag.h"
#include "commit.h"
#include "tree.h"
#include "tree-walk.h"
#include "refs.h"
#include "remote.h"
#include "dir.h"
#include "oid-array.h"
#include "oidtree.h"
#include "packfile.h"
#include "pretty.h"
#include "object-store-ll.h"
#include "read-cache-ll.h"
#include "repo-settings.h"
#include "repository.h"
#include "setup.h"
#include "midx.h"
#include "commit-reach.h"
#include "date.h"
#include "object-file-convert.h"
static int get_oid_oneline(struct repository *r, const char *, struct object_id *,
const struct commit_list *);
disambiguate_hint_fn;
struct disambiguate_state { … };
static void update_candidates(struct disambiguate_state *ds, const struct object_id *current)
{ … }
static int match_hash(unsigned, const unsigned char *, const unsigned char *);
static enum cb_next match_prefix(const struct object_id *oid, void *arg)
{ … }
static void find_short_object_filename(struct disambiguate_state *ds)
{ … }
static int match_hash(unsigned len, const unsigned char *a, const unsigned char *b)
{ … }
static void unique_in_midx(struct multi_pack_index *m,
struct disambiguate_state *ds)
{ … }
static void unique_in_pack(struct packed_git *p,
struct disambiguate_state *ds)
{ … }
static void find_short_packed_object(struct disambiguate_state *ds)
{ … }
static int finish_object_disambiguation(struct disambiguate_state *ds,
struct object_id *oid)
{ … }
static int disambiguate_commit_only(struct repository *r,
const struct object_id *oid,
void *cb_data UNUSED)
{ … }
static int disambiguate_committish_only(struct repository *r,
const struct object_id *oid,
void *cb_data UNUSED)
{ … }
static int disambiguate_tree_only(struct repository *r,
const struct object_id *oid,
void *cb_data UNUSED)
{ … }
static int disambiguate_treeish_only(struct repository *r,
const struct object_id *oid,
void *cb_data UNUSED)
{ … }
static int disambiguate_blob_only(struct repository *r,
const struct object_id *oid,
void *cb_data UNUSED)
{ … }
static disambiguate_hint_fn default_disambiguate_hint;
int set_disambiguate_hint_config(const char *var, const char *value)
{ … }
static int init_object_disambiguation(struct repository *r,
const char *name, int len,
const struct git_hash_algo *algo,
struct disambiguate_state *ds)
{ … }
struct ambiguous_output { … };
static int show_ambiguous_object(const struct object_id *oid, void *data)
{ … }
static int collect_ambiguous(const struct object_id *oid, void *data)
{ … }
static int repo_collect_ambiguous(struct repository *r UNUSED,
const struct object_id *oid,
void *data)
{ … }
static int sort_ambiguous(const void *va, const void *vb, void *ctx)
{ … }
static void sort_ambiguous_oid_array(struct repository *r, struct oid_array *a)
{ … }
static enum get_oid_result get_short_oid(struct repository *r,
const char *name, int len,
struct object_id *oid,
unsigned flags)
{ … }
int repo_for_each_abbrev(struct repository *r, const char *prefix,
const struct git_hash_algo *algo,
each_abbrev_fn fn, void *cb_data)
{ … }
static unsigned msb(unsigned long val)
{ … }
struct min_abbrev_data { … };
static inline char get_hex_char_from_oid(const struct object_id *oid,
unsigned int pos)
{ … }
static int extend_abbrev_len(const struct object_id *oid, void *cb_data)
{ … }
static int repo_extend_abbrev_len(struct repository *r UNUSED,
const struct object_id *oid,
void *cb_data)
{ … }
static void find_abbrev_len_for_midx(struct multi_pack_index *m,
struct min_abbrev_data *mad)
{ … }
static void find_abbrev_len_for_pack(struct packed_git *p,
struct min_abbrev_data *mad)
{ … }
static void find_abbrev_len_packed(struct min_abbrev_data *mad)
{ … }
void strbuf_repo_add_unique_abbrev(struct strbuf *sb, struct repository *repo,
const struct object_id *oid, int abbrev_len)
{ … }
void strbuf_add_unique_abbrev(struct strbuf *sb, const struct object_id *oid,
int abbrev_len)
{ … }
int repo_find_unique_abbrev_r(struct repository *r, char *hex,
const struct object_id *oid, int len)
{ … }
const char *repo_find_unique_abbrev(struct repository *r,
const struct object_id *oid,
int len)
{ … }
static int ambiguous_path(const char *path, int len)
{ … }
static inline int at_mark(const char *string, int len,
const char **suffix, int nr)
{ … }
static inline int upstream_mark(const char *string, int len)
{ … }
static inline int push_mark(const char *string, int len)
{ … }
static enum get_oid_result get_oid_1(struct repository *r, const char *name, int len, struct object_id *oid, unsigned lookup_flags);
static int interpret_nth_prior_checkout(struct repository *r, const char *name, int namelen, struct strbuf *buf);
static int get_oid_basic(struct repository *r, const char *str, int len,
struct object_id *oid, unsigned int flags)
{ … }
static enum get_oid_result get_parent(struct repository *r,
const char *name, int len,
struct object_id *result, int idx)
{ … }
static enum get_oid_result get_nth_ancestor(struct repository *r,
const char *name, int len,
struct object_id *result,
int generation)
{ … }
struct object *repo_peel_to_type(struct repository *r, const char *name, int namelen,
struct object *o, enum object_type expected_type)
{ … }
static int peel_onion(struct repository *r, const char *name, int len,
struct object_id *oid, unsigned lookup_flags)
{ … }
static int get_describe_name(struct repository *r,
const char *name, int len,
struct object_id *oid)
{ … }
static enum get_oid_result get_oid_1(struct repository *r,
const char *name, int len,
struct object_id *oid,
unsigned lookup_flags)
{ … }
#define ONELINE_SEEN …
struct handle_one_ref_cb { … };
static int handle_one_ref(const char *path, const char *referent UNUSED, const struct object_id *oid,
int flag UNUSED,
void *cb_data)
{ … }
static int get_oid_oneline(struct repository *r,
const char *prefix, struct object_id *oid,
const struct commit_list *list)
{ … }
struct grab_nth_branch_switch_cbdata { … };
static int grab_nth_branch_switch(struct object_id *ooid UNUSED,
struct object_id *noid UNUSED,
const char *email UNUSED,
timestamp_t timestamp UNUSED,
int tz UNUSED,
const char *message, void *cb_data)
{ … }
static int interpret_nth_prior_checkout(struct repository *r,
const char *name, int namelen,
struct strbuf *buf)
{ … }
int repo_get_oid_mb(struct repository *r,
const char *name,
struct object_id *oid)
{ … }
static int interpret_empty_at(const char *name, int namelen, int len, struct strbuf *buf)
{ … }
static int reinterpret(struct repository *r,
const char *name, int namelen, int len,
struct strbuf *buf, unsigned allowed)
{ … }
static void set_shortened_ref(struct repository *r, struct strbuf *buf, const char *ref)
{ … }
static int branch_interpret_allowed(const char *refname, unsigned allowed)
{ … }
static int interpret_branch_mark(struct repository *r,
const char *name, int namelen,
int at, struct strbuf *buf,
int (*get_mark)(const char *, int),
const char *(*get_data)(struct branch *,
struct strbuf *),
const struct interpret_branch_name_options *options)
{ … }
int repo_interpret_branch_name(struct repository *r,
const char *name, int namelen,
struct strbuf *buf,
const struct interpret_branch_name_options *options)
{ … }
void strbuf_branchname(struct strbuf *sb, const char *name, unsigned allowed)
{ … }
int strbuf_check_branch_ref(struct strbuf *sb, const char *name)
{ … }
void object_context_release(struct object_context *ctx)
{ … }
int repo_get_oid(struct repository *r, const char *name, struct object_id *oid)
{ … }
int get_oidf(struct object_id *oid, const char *fmt, ...)
{ … }
int repo_get_oid_committish(struct repository *r,
const char *name,
struct object_id *oid)
{ … }
int repo_get_oid_treeish(struct repository *r,
const char *name,
struct object_id *oid)
{ … }
int repo_get_oid_commit(struct repository *r,
const char *name,
struct object_id *oid)
{ … }
int repo_get_oid_tree(struct repository *r,
const char *name,
struct object_id *oid)
{ … }
int repo_get_oid_blob(struct repository *r,
const char *name,
struct object_id *oid)
{ … }
static void diagnose_invalid_oid_path(struct repository *r,
const char *prefix,
const char *filename,
const struct object_id *tree_oid,
const char *object_name,
int object_name_len)
{ … }
static void diagnose_invalid_index_path(struct repository *r,
int stage,
const char *prefix,
const char *filename)
{ … }
static char *resolve_relative_path(struct repository *r, const char *rel)
{ … }
static int reject_tree_in_index(struct repository *repo,
int only_to_die,
const struct cache_entry *ce,
int stage,
const char *prefix,
const char *cp)
{ … }
static enum get_oid_result get_oid_with_context_1(struct repository *repo,
const char *name,
unsigned flags,
const char *prefix,
struct object_id *oid,
struct object_context *oc)
{ … }
void maybe_die_on_misspelt_object_name(struct repository *r,
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)
{ … }