refs: break out ref conflict checks
Create new function find_descendant_ref, to hold one of the ref conflict checks used in verify_refname_available. Multiple backends will need this function, so move it to the common code. Also move rename_ref_available to the common code, because alternate backends might need it and it has no files-backend-specific code. Signed-off-by: David Turner <dturner@twopensource.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Jeff King <peff@peff.net>
This commit is contained in:
@ -181,4 +181,20 @@ int files_log_ref_write(const char *refname, const unsigned char *old_sha1,
|
||||
const unsigned char *new_sha1, const char *msg,
|
||||
int flags, struct strbuf *err);
|
||||
|
||||
/*
|
||||
* Check for entries in extras that are within the specified
|
||||
* directory, where dirname is a reference directory name including
|
||||
* the trailing slash (e.g., "refs/heads/foo/"). Ignore any
|
||||
* conflicting references that are found in skip. If there is a
|
||||
* conflicting reference, return its name.
|
||||
*
|
||||
* extras and skip must be sorted lists of reference names. Either one
|
||||
* can be NULL, signifying the empty list.
|
||||
*/
|
||||
const char *find_descendant_ref(const char *dirname,
|
||||
const struct string_list *extras,
|
||||
const struct string_list *skip);
|
||||
|
||||
int rename_ref_available(const char *oldname, const char *newname);
|
||||
|
||||
#endif /* REFS_REFS_INTERNAL_H */
|
||||
|
Reference in New Issue
Block a user