reset: use "unpack_trees()" directly instead of "git read-tree"
[gitweb.git] / builtin-symbolic-ref.c
index d33982b967e7665ae79fb186435d9ed9aabb907b..ca855a5eb239f4dadccd53369e38db4e78b1d13f 100644 (file)
@@ -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: