#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
#include "advice.h"
#include "config.h"
#include "editor.h"
#include "environment.h"
#include "gettext.h"
#include "hex.h"
#include "refs.h"
#include "object-name.h"
#include "object-store-ll.h"
#include "path.h"
#include "tag.h"
#include "parse-options.h"
#include "diff.h"
#include "revision.h"
#include "gpg-interface.h"
#include "oid-array.h"
#include "column.h"
#include "ref-filter.h"
#include "date.h"
#include "write-or-die.h"
#include "object-file-convert.h"
#include "trailer.h"
static const char * const git_tag_usage[] = …;
static unsigned int colopts;
static int force_sign_annotate;
static int config_sign_tag = …;
static int list_tags(struct ref_filter *filter, struct ref_sorting *sorting,
struct ref_format *format)
{ … }
each_tag_name_fn;
static int for_each_tag_name(const char **argv, each_tag_name_fn fn,
void *cb_data)
{ … }
static int collect_tags(const char *name UNUSED, const char *ref,
const struct object_id *oid, void *cb_data)
{ … }
static int delete_tags(const char **argv)
{ … }
static int verify_tag(const char *name, const char *ref UNUSED,
const struct object_id *oid, void *cb_data)
{ … }
static int do_sign(struct strbuf *buffer, struct object_id **compat_oid,
struct object_id *compat_oid_buf)
{ … }
static const char tag_template[] = …);
static const char tag_template_nocleanup[] = …);
static int git_tag_config(const char *var, const char *value,
const struct config_context *ctx, void *cb)
{ … }
static void write_tag_body(int fd, const struct object_id *oid)
{ … }
static int build_tag_object(struct strbuf *buf, int sign, struct object_id *result)
{ … }
struct create_tag_options { … };
static const char message_advice_nested_tag[] = …);
static void create_tag(const struct object_id *object, const char *object_ref,
const char *tag,
struct strbuf *buf, struct create_tag_options *opt,
struct object_id *prev, struct object_id *result,
struct strvec *trailer_args, char *path)
{ … }
static void create_reflog_msg(const struct object_id *oid, struct strbuf *sb)
{ … }
struct msg_arg { … };
static int parse_msg_arg(const struct option *opt, const char *arg, int unset)
{ … }
static int strbuf_check_tag_ref(struct strbuf *sb, const char *name)
{ … }
int cmd_tag(int argc,
const char **argv,
const char *prefix,
struct repository *repo UNUSED)
{ … }