refs: move the remaining ref module declarations to refs.h
Some functions from the refs module were still declared in cache.h. Move them to refs.h. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e426ff4222
commit
fb58c8d507
@ -1,4 +1,5 @@
|
|||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
|
#include "refs.h"
|
||||||
#include "commit.h"
|
#include "commit.h"
|
||||||
#include "tree-walk.h"
|
#include "tree-walk.h"
|
||||||
#include "attr.h"
|
#include "attr.h"
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
|
#include "refs.h"
|
||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
#include "blob.h"
|
#include "blob.h"
|
||||||
#include "commit.h"
|
#include "commit.h"
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
|
#include "refs.h"
|
||||||
#include "commit.h"
|
#include "commit.h"
|
||||||
#include "object.h"
|
#include "object.h"
|
||||||
#include "tag.h"
|
#include "tag.h"
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
|
#include "refs.h"
|
||||||
#include "commit.h"
|
#include "commit.h"
|
||||||
#include "diff.h"
|
#include "diff.h"
|
||||||
#include "revision.h"
|
#include "revision.h"
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
* Copyright (C) Linus Torvalds, 2005
|
* Copyright (C) Linus Torvalds, 2005
|
||||||
*/
|
*/
|
||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
|
#include "refs.h"
|
||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
#include "exec_cmd.h"
|
#include "exec_cmd.h"
|
||||||
#include "parse-options.h"
|
#include "parse-options.h"
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
* 2006 Junio Hamano
|
* 2006 Junio Hamano
|
||||||
*/
|
*/
|
||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
|
#include "refs.h"
|
||||||
#include "color.h"
|
#include "color.h"
|
||||||
#include "commit.h"
|
#include "commit.h"
|
||||||
#include "diff.h"
|
#include "diff.h"
|
||||||
|
66
cache.h
66
cache.h
@ -1009,76 +1009,10 @@ extern int get_oid_hex(const char *hex, struct object_id *sha1);
|
|||||||
|
|
||||||
extern char *sha1_to_hex(const unsigned char *sha1); /* static buffer result! */
|
extern char *sha1_to_hex(const unsigned char *sha1); /* static buffer result! */
|
||||||
extern char *oid_to_hex(const struct object_id *oid); /* same static buffer as sha1_to_hex */
|
extern char *oid_to_hex(const struct object_id *oid); /* same static buffer as sha1_to_hex */
|
||||||
extern int read_ref_full(const char *refname, int resolve_flags,
|
|
||||||
unsigned char *sha1, int *flags);
|
|
||||||
extern int read_ref(const char *refname, unsigned char *sha1);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Resolve a reference, recursively following symbolic refererences.
|
|
||||||
*
|
|
||||||
* Store the referred-to object's name in sha1 and return the name of
|
|
||||||
* the non-symbolic reference that ultimately pointed at it. The
|
|
||||||
* return value, if not NULL, is a pointer into either a static buffer
|
|
||||||
* or the input ref.
|
|
||||||
*
|
|
||||||
* If the reference cannot be resolved to an object, the behavior
|
|
||||||
* depends on the RESOLVE_REF_READING flag:
|
|
||||||
*
|
|
||||||
* - If RESOLVE_REF_READING is set, return NULL.
|
|
||||||
*
|
|
||||||
* - If RESOLVE_REF_READING is not set, clear sha1 and return the name of
|
|
||||||
* the last reference name in the chain, which will either be a non-symbolic
|
|
||||||
* reference or an undefined reference. If this is a prelude to
|
|
||||||
* "writing" to the ref, the return value is the name of the ref
|
|
||||||
* that will actually be created or changed.
|
|
||||||
*
|
|
||||||
* If the RESOLVE_REF_NO_RECURSE flag is passed, only resolves one
|
|
||||||
* level of symbolic reference. The value stored in sha1 for a symbolic
|
|
||||||
* reference will always be null_sha1 in this case, and the return
|
|
||||||
* value is the reference that the symref refers to directly.
|
|
||||||
*
|
|
||||||
* If flags is non-NULL, set the value that it points to the
|
|
||||||
* combination of REF_ISPACKED (if the reference was found among the
|
|
||||||
* packed references), REF_ISSYMREF (if the initial reference was a
|
|
||||||
* symbolic reference), REF_BAD_NAME (if the reference name is ill
|
|
||||||
* formed --- see RESOLVE_REF_ALLOW_BAD_NAME below), and REF_ISBROKEN
|
|
||||||
* (if the ref is malformed or has a bad name). See refs.h for more detail
|
|
||||||
* on each flag.
|
|
||||||
*
|
|
||||||
* If ref is not a properly-formatted, normalized reference, return
|
|
||||||
* NULL. If more than MAXDEPTH recursive symbolic lookups are needed,
|
|
||||||
* give up and return NULL.
|
|
||||||
*
|
|
||||||
* RESOLVE_REF_ALLOW_BAD_NAME allows resolving refs even when their
|
|
||||||
* name is invalid according to git-check-ref-format(1). If the name
|
|
||||||
* is bad then the value stored in sha1 will be null_sha1 and the two
|
|
||||||
* flags REF_ISBROKEN and REF_BAD_NAME will be set.
|
|
||||||
*
|
|
||||||
* Even with RESOLVE_REF_ALLOW_BAD_NAME, names that escape the refs/
|
|
||||||
* directory and do not consist of all caps and underscores cannot be
|
|
||||||
* resolved. The function returns NULL for such ref names.
|
|
||||||
* Caps and underscores refers to the special refs, such as HEAD,
|
|
||||||
* FETCH_HEAD and friends, that all live outside of the refs/ directory.
|
|
||||||
*/
|
|
||||||
#define RESOLVE_REF_READING 0x01
|
|
||||||
#define RESOLVE_REF_NO_RECURSE 0x02
|
|
||||||
#define RESOLVE_REF_ALLOW_BAD_NAME 0x04
|
|
||||||
extern const char *resolve_ref_unsafe(const char *ref, int resolve_flags, unsigned char *sha1, int *flags);
|
|
||||||
extern char *resolve_refdup(const char *ref, int resolve_flags, unsigned char *sha1, int *flags);
|
|
||||||
|
|
||||||
extern int dwim_ref(const char *str, int len, unsigned char *sha1, char **ref);
|
|
||||||
extern int dwim_log(const char *str, int len, unsigned char *sha1, char **ref);
|
|
||||||
extern int interpret_branch_name(const char *str, int len, struct strbuf *);
|
extern int interpret_branch_name(const char *str, int len, struct strbuf *);
|
||||||
extern int get_sha1_mb(const char *str, unsigned char *sha1);
|
extern int get_sha1_mb(const char *str, unsigned char *sha1);
|
||||||
|
|
||||||
/*
|
|
||||||
* Return true iff abbrev_name is a possible abbreviation for
|
|
||||||
* full_name according to the rules defined by ref_rev_parse_rules in
|
|
||||||
* refs.c.
|
|
||||||
*/
|
|
||||||
extern int refname_match(const char *abbrev_name, const char *full_name);
|
|
||||||
|
|
||||||
extern int create_symref(const char *ref, const char *refs_heads_master, const char *logmsg);
|
|
||||||
extern int validate_headref(const char *ref);
|
extern int validate_headref(const char *ref);
|
||||||
|
|
||||||
extern int base_name_compare(const char *name1, int len1, int mode1, const char *name2, int len2, int mode2);
|
extern int base_name_compare(const char *name1, int len1, int mode1, const char *name2, int len2, int mode2);
|
||||||
|
6
refs.c
6
refs.c
@ -1732,9 +1732,11 @@ const char *resolve_ref_unsafe(const char *refname, int resolve_flags,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *resolve_refdup(const char *ref, int resolve_flags, unsigned char *sha1, int *flags)
|
char *resolve_refdup(const char *refname, int resolve_flags,
|
||||||
|
unsigned char *sha1, int *flags)
|
||||||
{
|
{
|
||||||
return xstrdup_or_null(resolve_ref_unsafe(ref, resolve_flags, sha1, flags));
|
return xstrdup_or_null(resolve_ref_unsafe(refname, resolve_flags,
|
||||||
|
sha1, flags));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The argument to filter_refs */
|
/* The argument to filter_refs */
|
||||||
|
121
refs.h
121
refs.h
@ -1,6 +1,98 @@
|
|||||||
#ifndef REFS_H
|
#ifndef REFS_H
|
||||||
#define REFS_H
|
#define REFS_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Resolve a reference, recursively following symbolic refererences.
|
||||||
|
*
|
||||||
|
* Store the referred-to object's name in sha1 and return the name of
|
||||||
|
* the non-symbolic reference that ultimately pointed at it. The
|
||||||
|
* return value, if not NULL, is a pointer into either a static buffer
|
||||||
|
* or the input ref.
|
||||||
|
*
|
||||||
|
* If the reference cannot be resolved to an object, the behavior
|
||||||
|
* depends on the RESOLVE_REF_READING flag:
|
||||||
|
*
|
||||||
|
* - If RESOLVE_REF_READING is set, return NULL.
|
||||||
|
*
|
||||||
|
* - If RESOLVE_REF_READING is not set, clear sha1 and return the name of
|
||||||
|
* the last reference name in the chain, which will either be a non-symbolic
|
||||||
|
* reference or an undefined reference. If this is a prelude to
|
||||||
|
* "writing" to the ref, the return value is the name of the ref
|
||||||
|
* that will actually be created or changed.
|
||||||
|
*
|
||||||
|
* If the RESOLVE_REF_NO_RECURSE flag is passed, only resolves one
|
||||||
|
* level of symbolic reference. The value stored in sha1 for a symbolic
|
||||||
|
* reference will always be null_sha1 in this case, and the return
|
||||||
|
* value is the reference that the symref refers to directly.
|
||||||
|
*
|
||||||
|
* If flags is non-NULL, set the value that it points to the
|
||||||
|
* combination of REF_ISPACKED (if the reference was found among the
|
||||||
|
* packed references), REF_ISSYMREF (if the initial reference was a
|
||||||
|
* symbolic reference), REF_BAD_NAME (if the reference name is ill
|
||||||
|
* formed --- see RESOLVE_REF_ALLOW_BAD_NAME below), and REF_ISBROKEN
|
||||||
|
* (if the ref is malformed or has a bad name). See refs.h for more detail
|
||||||
|
* on each flag.
|
||||||
|
*
|
||||||
|
* If ref is not a properly-formatted, normalized reference, return
|
||||||
|
* NULL. If more than MAXDEPTH recursive symbolic lookups are needed,
|
||||||
|
* give up and return NULL.
|
||||||
|
*
|
||||||
|
* RESOLVE_REF_ALLOW_BAD_NAME allows resolving refs even when their
|
||||||
|
* name is invalid according to git-check-ref-format(1). If the name
|
||||||
|
* is bad then the value stored in sha1 will be null_sha1 and the two
|
||||||
|
* flags REF_ISBROKEN and REF_BAD_NAME will be set.
|
||||||
|
*
|
||||||
|
* Even with RESOLVE_REF_ALLOW_BAD_NAME, names that escape the refs/
|
||||||
|
* directory and do not consist of all caps and underscores cannot be
|
||||||
|
* resolved. The function returns NULL for such ref names.
|
||||||
|
* Caps and underscores refers to the special refs, such as HEAD,
|
||||||
|
* FETCH_HEAD and friends, that all live outside of the refs/ directory.
|
||||||
|
*/
|
||||||
|
#define RESOLVE_REF_READING 0x01
|
||||||
|
#define RESOLVE_REF_NO_RECURSE 0x02
|
||||||
|
#define RESOLVE_REF_ALLOW_BAD_NAME 0x04
|
||||||
|
|
||||||
|
extern const char *resolve_ref_unsafe(const char *refname, int resolve_flags,
|
||||||
|
unsigned char *sha1, int *flags);
|
||||||
|
|
||||||
|
extern char *resolve_refdup(const char *refname, int resolve_flags,
|
||||||
|
unsigned char *sha1, int *flags);
|
||||||
|
|
||||||
|
extern int read_ref_full(const char *refname, int resolve_flags,
|
||||||
|
unsigned char *sha1, int *flags);
|
||||||
|
extern int read_ref(const char *refname, unsigned char *sha1);
|
||||||
|
|
||||||
|
extern int ref_exists(const char *);
|
||||||
|
|
||||||
|
extern int is_branch(const char *refname);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If refname is a non-symbolic reference that refers to a tag object,
|
||||||
|
* and the tag can be (recursively) dereferenced to a non-tag object,
|
||||||
|
* store the SHA1 of the referred-to object to sha1 and return 0. If
|
||||||
|
* any of these conditions are not met, return a non-zero value.
|
||||||
|
* Symbolic references are considered unpeelable, even if they
|
||||||
|
* ultimately resolve to a peelable tag.
|
||||||
|
*/
|
||||||
|
extern int peel_ref(const char *refname, unsigned char *sha1);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolve refname in the nested "gitlink" repository that is located
|
||||||
|
* at path. If the resolution is successful, return 0 and set sha1 to
|
||||||
|
* the name of the object; otherwise, return a non-zero value.
|
||||||
|
*/
|
||||||
|
extern int resolve_gitlink_ref(const char *path, const char *refname, unsigned char *sha1);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Return true iff abbrev_name is a possible abbreviation for
|
||||||
|
* full_name according to the rules defined by ref_rev_parse_rules in
|
||||||
|
* refs.c.
|
||||||
|
*/
|
||||||
|
extern int refname_match(const char *abbrev_name, const char *full_name);
|
||||||
|
|
||||||
|
extern int dwim_ref(const char *str, int len, unsigned char *sha1, char **ref);
|
||||||
|
extern int dwim_log(const char *str, int len, unsigned char *sha1, char **ref);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* A ref_transaction represents a collection of ref updates
|
* A ref_transaction represents a collection of ref updates
|
||||||
* that should succeed or fail together.
|
* that should succeed or fail together.
|
||||||
@ -99,14 +191,14 @@ extern int for_each_remote_ref_submodule(const char *submodule, each_ref_fn fn,
|
|||||||
extern int head_ref_namespaced(each_ref_fn fn, void *cb_data);
|
extern int head_ref_namespaced(each_ref_fn fn, void *cb_data);
|
||||||
extern int for_each_namespaced_ref(each_ref_fn fn, void *cb_data);
|
extern int for_each_namespaced_ref(each_ref_fn fn, void *cb_data);
|
||||||
|
|
||||||
|
/* can be used to learn about broken ref and symref */
|
||||||
|
extern int for_each_rawref(each_ref_fn, void *);
|
||||||
|
|
||||||
static inline const char *has_glob_specials(const char *pattern)
|
static inline const char *has_glob_specials(const char *pattern)
|
||||||
{
|
{
|
||||||
return strpbrk(pattern, "?*[");
|
return strpbrk(pattern, "?*[");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* can be used to learn about broken ref and symref */
|
|
||||||
extern int for_each_rawref(each_ref_fn, void *);
|
|
||||||
|
|
||||||
extern void warn_dangling_symref(FILE *fp, const char *msg_fmt, const char *refname);
|
extern void warn_dangling_symref(FILE *fp, const char *msg_fmt, const char *refname);
|
||||||
extern void warn_dangling_symrefs(FILE *fp, const char *msg_fmt, const struct string_list *refnames);
|
extern void warn_dangling_symrefs(FILE *fp, const char *msg_fmt, const struct string_list *refnames);
|
||||||
|
|
||||||
@ -124,20 +216,6 @@ extern void warn_dangling_symrefs(FILE *fp, const char *msg_fmt, const struct st
|
|||||||
*/
|
*/
|
||||||
int pack_refs(unsigned int flags);
|
int pack_refs(unsigned int flags);
|
||||||
|
|
||||||
extern int ref_exists(const char *);
|
|
||||||
|
|
||||||
extern int is_branch(const char *refname);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If refname is a non-symbolic reference that refers to a tag object,
|
|
||||||
* and the tag can be (recursively) dereferenced to a non-tag object,
|
|
||||||
* store the SHA1 of the referred-to object to sha1 and return 0. If
|
|
||||||
* any of these conditions are not met, return a non-zero value.
|
|
||||||
* Symbolic references are considered unpeelable, even if they
|
|
||||||
* ultimately resolve to a peelable tag.
|
|
||||||
*/
|
|
||||||
extern int peel_ref(const char *refname, unsigned char *sha1);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Flags controlling ref_transaction_update(), ref_transaction_create(), etc.
|
* Flags controlling ref_transaction_update(), ref_transaction_create(), etc.
|
||||||
* REF_NODEREF: act on the ref directly, instead of dereferencing
|
* REF_NODEREF: act on the ref directly, instead of dereferencing
|
||||||
@ -206,17 +284,13 @@ extern int for_each_reflog(each_ref_fn, void *);
|
|||||||
extern int check_refname_format(const char *refname, int flags);
|
extern int check_refname_format(const char *refname, int flags);
|
||||||
|
|
||||||
extern const char *prettify_refname(const char *refname);
|
extern const char *prettify_refname(const char *refname);
|
||||||
|
|
||||||
extern char *shorten_unambiguous_ref(const char *refname, int strict);
|
extern char *shorten_unambiguous_ref(const char *refname, int strict);
|
||||||
|
|
||||||
/** rename ref, return 0 on success **/
|
/** rename ref, return 0 on success **/
|
||||||
extern int rename_ref(const char *oldref, const char *newref, const char *logmsg);
|
extern int rename_ref(const char *oldref, const char *newref, const char *logmsg);
|
||||||
|
|
||||||
/**
|
extern int create_symref(const char *ref, const char *refs_heads_master, const char *logmsg);
|
||||||
* Resolve refname in the nested "gitlink" repository that is located
|
|
||||||
* at path. If the resolution is successful, return 0 and set sha1 to
|
|
||||||
* the name of the object; otherwise, return a non-zero value.
|
|
||||||
*/
|
|
||||||
extern int resolve_gitlink_ref(const char *path, const char *refname, unsigned char *sha1);
|
|
||||||
|
|
||||||
enum action_on_err {
|
enum action_on_err {
|
||||||
UPDATE_REFS_MSG_ON_ERR,
|
UPDATE_REFS_MSG_ON_ERR,
|
||||||
@ -367,6 +441,7 @@ int update_ref(const char *msg, const char *refname,
|
|||||||
unsigned int flags, enum action_on_err onerr);
|
unsigned int flags, enum action_on_err onerr);
|
||||||
|
|
||||||
extern int parse_hide_refs_config(const char *var, const char *value, const char *);
|
extern int parse_hide_refs_config(const char *var, const char *value, const char *);
|
||||||
|
|
||||||
extern int ref_is_hidden(const char *);
|
extern int ref_is_hidden(const char *);
|
||||||
|
|
||||||
enum expire_reflog_flags {
|
enum expire_reflog_flags {
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
|
#include "refs.h"
|
||||||
#include "remote.h"
|
#include "remote.h"
|
||||||
#include "strbuf.h"
|
#include "strbuf.h"
|
||||||
#include "url.h"
|
#include "url.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user