diff options
Diffstat (limited to 'third_party/git/builtin/check-ref-format.c')
-rw-r--r-- | third_party/git/builtin/check-ref-format.c | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/third_party/git/builtin/check-ref-format.c b/third_party/git/builtin/check-ref-format.c deleted file mode 100644 index bc67d3f0a83d..000000000000 --- a/third_party/git/builtin/check-ref-format.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - * GIT - The information manager from hell - */ - -#include "cache.h" -#include "refs.h" -#include "builtin.h" -#include "strbuf.h" - -static const char builtin_check_ref_format_usage[] = -"git check-ref-format [--normalize] [<options>] <refname>\n" -" or: git check-ref-format --branch <branchname-shorthand>"; - -/* - * Return a copy of refname but with leading slashes removed and runs - * of adjacent slashes replaced with single slashes. - * - * This function is similar to normalize_path_copy(), but stripped down - * to meet check_ref_format's simpler needs. - */ -static char *collapse_slashes(const char *refname) -{ - char *ret = xmallocz(strlen(refname)); - char ch; - char prev = '/'; - char *cp = ret; - - while ((ch = *refname++) != '\0') { - if (prev == '/' && ch == prev) - continue; - - *cp++ = ch; - prev = ch; - } - *cp = '\0'; - return ret; -} - -static int check_ref_format_branch(const char *arg) -{ - struct strbuf sb = STRBUF_INIT; - const char *name; - int nongit; - - setup_git_directory_gently(&nongit); - if (strbuf_check_branch_ref(&sb, arg) || - !skip_prefix(sb.buf, "refs/heads/", &name)) - die("'%s' is not a valid branch name", arg); - printf("%s\n", name); - strbuf_release(&sb); - return 0; -} - -int cmd_check_ref_format(int argc, const char **argv, const char *prefix) -{ - int i; - int normalize = 0; - int flags = 0; - const char *refname; - - if (argc == 2 && !strcmp(argv[1], "-h")) - usage(builtin_check_ref_format_usage); - - if (argc == 3 && !strcmp(argv[1], "--branch")) - return check_ref_format_branch(argv[2]); - - for (i = 1; i < argc && argv[i][0] == '-'; i++) { - if (!strcmp(argv[i], "--normalize") || !strcmp(argv[i], "--print")) - normalize = 1; - else if (!strcmp(argv[i], "--allow-onelevel")) - flags |= REFNAME_ALLOW_ONELEVEL; - else if (!strcmp(argv[i], "--no-allow-onelevel")) - flags &= ~REFNAME_ALLOW_ONELEVEL; - else if (!strcmp(argv[i], "--refspec-pattern")) - flags |= REFNAME_REFSPEC_PATTERN; - else - usage(builtin_check_ref_format_usage); - } - if (! (i == argc - 1)) - usage(builtin_check_ref_format_usage); - - refname = argv[i]; - if (normalize) - refname = collapse_slashes(refname); - if (check_refname_format(refname, flags)) - return 1; - if (normalize) - printf("%s\n", refname); - - return 0; -} |