]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Make git-update-ref a builtin
authorLukas Sandström <lukass@etek.chalmers.se>
Tue, 13 Jun 2006 20:22:00 +0000 (22:22 +0200)
committerJunio C Hamano <junkio@cox.net>
Mon, 19 Jun 2006 05:12:20 +0000 (22:12 -0700)
Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Makefile
builtin-update-ref.c [moved from update-ref.c with 88% similarity]
builtin.h
git.c

index 915f130306e5a1018ea12bdbdfde779c837ee0f1..99c9ec2054a54fea5abc3a584d808b0944a5db58 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -159,11 +159,11 @@ PROGRAMS = \
        git-ssh-upload$X git-unpack-file$X \
        git-unpack-objects$X git-update-server-info$X \
        git-upload-pack$X git-verify-pack$X \
-       git-update-ref$X git-symbolic-ref$X \
+       git-symbolic-ref$X \
        git-name-rev$X git-pack-redundant$X git-repo-config$X git-var$X \
        git-describe$X git-merge-tree$X git-blame$X git-imap-send$X
 
-BUILT_INS = git-log$X git-whatchanged$X git-show$X \
+BUILT_INS = git-log$X git-whatchanged$X git-show$X git-update-ref$X \
        git-count-objects$X git-diff$X git-push$X git-mailsplit$X \
        git-grep$X git-add$X git-rm$X git-rev-list$X git-stripspace$X \
        git-check-ref-format$X git-rev-parse$X git-mailinfo$X \
@@ -226,7 +226,8 @@ BUILTIN_OBJS = \
        builtin-read-tree.o builtin-commit-tree.o builtin-mailinfo.o \
        builtin-apply.o builtin-show-branch.o builtin-diff-files.o \
        builtin-diff-index.o builtin-diff-stages.o builtin-diff-tree.o \
-       builtin-cat-file.o builtin-mailsplit.o builtin-stripspace.o
+       builtin-cat-file.o builtin-mailsplit.o builtin-stripspace.o \
+       builtin-update-ref.o
 
 GITLIBS = $(LIB_FILE) $(XDIFF_LIB)
 LIBS = $(GITLIBS) -lz
similarity index 88%
rename from update-ref.c
rename to builtin-update-ref.c
index a1e6bb90fe598dfd030c98f37a5d48c3a30590eb..00333c7e7ca0e706be425182ff92b98a16ac3883 100644 (file)
@@ -1,10 +1,11 @@
 #include "cache.h"
 #include "refs.h"
+#include "builtin.h"
 
 static const char git_update_ref_usage[] =
 "git-update-ref <refname> <value> [<oldval>] [-m <reason>]";
 
-int main(int argc, char **argv)
+int cmd_update_ref(int argc, const char **argv, char **envp)
 {
        const char *refname=NULL, *value=NULL, *oldval=NULL, *msg=NULL;
        struct ref_lock *lock;
@@ -52,5 +53,7 @@ int main(int argc, char **argv)
                return 1;
        if (write_ref_sha1(lock, sha1, msg) < 0)
                return 1;
+
+       /* write_ref_sha1 always unlocks the ref, no need to do it explicitly */
        return 0;
 }
index 03ffdc35e7098119592a00fae04d7041f926be86..f12d5e68f6778fbf96c85b81d250cf7f230edf1d 100644 (file)
--- a/builtin.h
+++ b/builtin.h
@@ -48,6 +48,7 @@ extern int cmd_diff_tree(int argc, const char **argv, char **envp);
 extern int cmd_cat_file(int argc, const char **argv, char **envp);
 extern int cmd_rev_parse(int argc, const char **argv, char **envp);
 extern int cmd_update_index(int argc, const char **argv, char **envp);
+extern int cmd_update_ref(int argc, const char **argv, char **envp);
 
 extern int cmd_write_tree(int argc, const char **argv, char **envp);
 extern int write_tree(unsigned char *sha1, int missing_ok, const char *prefix);
diff --git a/git.c b/git.c
index 28c76412913ed91da14452ae8347687496ab09e9..94e9a4a4b98acbd9e08943dbbe57616bd60b28e9 100644 (file)
--- a/git.c
+++ b/git.c
@@ -183,7 +183,8 @@ static void handle_internal_command(int argc, const char **argv, char **envp)
                { "mailsplit", cmd_mailsplit },
                { "mailinfo", cmd_mailinfo },
                { "stripspace", cmd_stripspace },
-               { "update-index", cmd_update_index }
+               { "update-index", cmd_update_index },
+               { "update-ref", cmd_update_ref }
        };
        int i;