diff options
Diffstat (limited to 'builtin-symbolic-ref.c')
-rw-r--r-- | builtin-symbolic-ref.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/builtin-symbolic-ref.c b/builtin-symbolic-ref.c index d33982b967..ca855a5eb2 100644 --- a/builtin-symbolic-ref.c +++ b/builtin-symbolic-ref.c @@ -4,7 +4,7 @@ #include "parse-options.h" static const char * const git_symbolic_ref_usage[] = { - "git-symbolic-ref [options] name [ref]", + "git symbolic-ref [options] name [ref]", NULL }; @@ -35,8 +35,9 @@ int cmd_symbolic_ref(int argc, const char **argv, const char *prefix) OPT_END(), }; - git_config(git_default_config); - argc = parse_options(argc, argv, options, git_symbolic_ref_usage, 0); + git_config(git_default_config, NULL); + argc = parse_options(argc, argv, prefix, options, + git_symbolic_ref_usage, 0); if (msg &&!*msg) die("Refusing to perform update with empty message"); switch (argc) { @@ -44,6 +45,9 @@ int cmd_symbolic_ref(int argc, const char **argv, const char *prefix) check_symref(argv[0], quiet); break; case 2: + if (!strcmp(argv[0], "HEAD") && + prefixcmp(argv[1], "refs/")) + die("Refusing to point HEAD outside of refs/"); create_symref(argv[0], argv[1], msg); break; default: |