path: root/builtin-symbolic-ref.c
diff options
authorLinus Torvalds <>2010-02-22 16:42:18 (GMT)
committerJunio C Hamano <>2010-02-22 22:29:41 (GMT)
commit81b50f3ce40bfdd66e5d967bf82be001039a9a98 (patch)
tree7e86bb81e83c9fad73dcbdaa0ef33038137b4274 /builtin-symbolic-ref.c
parent241b9254e1c8ff071d8054f8b6fbe1883b389d69 (diff)
Move 'builtin-*' into a 'builtin/' subdirectory
This shrinks the top-level directory a bit, and makes it much more pleasant to use auto-completion on the thing. Instead of [torvalds@nehalem git]$ em buil<tab> Display all 180 possibilities? (y or n) [torvalds@nehalem git]$ em builtin-sh builtin-shortlog.c builtin-show-branch.c builtin-show-ref.c builtin-shortlog.o builtin-show-branch.o builtin-show-ref.o [torvalds@nehalem git]$ em builtin-shor<tab> builtin-shortlog.c builtin-shortlog.o [torvalds@nehalem git]$ em builtin-shortlog.c you get [torvalds@nehalem git]$ em buil<tab> [type] builtin/ builtin.h [torvalds@nehalem git]$ em builtin [auto-completes to] [torvalds@nehalem git]$ em builtin/sh<tab> [type] shortlog.c shortlog.o show-branch.c show-branch.o show-ref.c show-ref.o [torvalds@nehalem git]$ em builtin/sho [auto-completes to] [torvalds@nehalem git]$ em builtin/shor<tab> [type] shortlog.c shortlog.o [torvalds@nehalem git]$ em builtin/shortlog.c which doesn't seem all that different, but not having that annoying break in "Display all 180 possibilities?" is quite a relief. NOTE! If you do this in a clean tree (no object files etc), or using an editor that has auto-completion rules that ignores '*.o' files, you won't see that annoying 'Display all 180 possibilities?' message - it will just show the choices instead. I think bash has some cut-off around 100 choices or something. So the reason I see this is that I'm using an odd editory, and thus don't have the rules to cut down on auto-completion. But you can simulate that by using 'ls' instead, or something similar. Signed-off-by: Linus Torvalds <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'builtin-symbolic-ref.c')
1 files changed, 0 insertions, 57 deletions
diff --git a/builtin-symbolic-ref.c b/builtin-symbolic-ref.c
deleted file mode 100644
index ca855a5..0000000
--- a/builtin-symbolic-ref.c
+++ /dev/null
@@ -1,57 +0,0 @@
-#include "builtin.h"
-#include "cache.h"
-#include "refs.h"
-#include "parse-options.h"
-static const char * const git_symbolic_ref_usage[] = {
- "git symbolic-ref [options] name [ref]",
-static void check_symref(const char *HEAD, int quiet)
- unsigned char sha1[20];
- int flag;
- const char *refs_heads_master = resolve_ref(HEAD, sha1, 0, &flag);
- if (!refs_heads_master)
- die("No such ref: %s", HEAD);
- else if (!(flag & REF_ISSYMREF)) {
- if (!quiet)
- die("ref %s is not a symbolic ref", HEAD);
- else
- exit(1);
- }
- puts(refs_heads_master);
-int cmd_symbolic_ref(int argc, const char **argv, const char *prefix)
- int quiet = 0;
- const char *msg = NULL;
- struct option options[] = {
- OPT__QUIET(&quiet),
- OPT_STRING('m', NULL, &msg, "reason", "reason of the update"),
- OPT_END(),
- };
- 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) {
- case 1:
- 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:
- usage_with_options(git_symbolic_ref_usage, options);
- }
- return 0;