summaryrefslogtreecommitdiff
path: root/builtin-update-ref.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-02-22 08:42:18 -0800
committerJunio C Hamano <gitster@pobox.com>2010-02-22 14:29:41 -0800
commit81b50f3ce40bfdd66e5d967bf82be001039a9a98 (patch)
tree7e86bb81e83c9fad73dcbdaa0ef33038137b4274 /builtin-update-ref.c
parent241b9254e1c8ff071d8054f8b6fbe1883b389d69 (diff)
downloadgit-81b50f3ce40bfdd66e5d967bf82be001039a9a98.tar.gz
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 <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-update-ref.c')
-rw-r--r--builtin-update-ref.c58
1 files changed, 0 insertions, 58 deletions
diff --git a/builtin-update-ref.c b/builtin-update-ref.c
deleted file mode 100644
index 76ba1d5881..0000000000
--- a/builtin-update-ref.c
+++ /dev/null
@@ -1,58 +0,0 @@
-#include "cache.h"
-#include "refs.h"
-#include "builtin.h"
-#include "parse-options.h"
-
-static const char * const git_update_ref_usage[] = {
- "git update-ref [options] -d <refname> [<oldval>]",
- "git update-ref [options] <refname> <newval> [<oldval>]",
- NULL
-};
-
-int cmd_update_ref(int argc, const char **argv, const char *prefix)
-{
- const char *refname, *oldval, *msg=NULL;
- unsigned char sha1[20], oldsha1[20];
- int delete = 0, no_deref = 0, flags = 0;
- struct option options[] = {
- OPT_STRING( 'm', NULL, &msg, "reason", "reason of the update"),
- OPT_BOOLEAN('d', NULL, &delete, "deletes the reference"),
- OPT_BOOLEAN( 0 , "no-deref", &no_deref,
- "update <refname> not the one it points to"),
- OPT_END(),
- };
-
- git_config(git_default_config, NULL);
- argc = parse_options(argc, argv, prefix, options, git_update_ref_usage,
- 0);
- if (msg && !*msg)
- die("Refusing to perform update with empty message.");
-
- if (delete) {
- if (argc < 1 || argc > 2)
- usage_with_options(git_update_ref_usage, options);
- refname = argv[0];
- oldval = argv[1];
- } else {
- const char *value;
- if (argc < 2 || argc > 3)
- usage_with_options(git_update_ref_usage, options);
- refname = argv[0];
- value = argv[1];
- oldval = argv[2];
- if (get_sha1(value, sha1))
- die("%s: not a valid SHA1", value);
- }
-
- hashclr(oldsha1); /* all-zero hash in case oldval is the empty string */
- if (oldval && *oldval && get_sha1(oldval, oldsha1))
- die("%s: not a valid old SHA1", oldval);
-
- if (no_deref)
- flags = REF_NODEREF;
- if (delete)
- return delete_ref(refname, oldval ? oldsha1 : NULL, flags);
- else
- return update_ref(msg, refname, sha1, oldval ? oldsha1 : NULL,
- flags, DIE_ON_ERR);
-}