From: Thomas Harning <harningt@gmail.com>
To: gitster@pobox.com
Cc: git@vger.kernel.org, thomas.harning@trustbearer.com
Subject: [PATCH] Converted git-merge-ours.sh -> builtin-merge-ours.c
Date: Thu, 22 Nov 2007 15:19:40 -0500 [thread overview]
Message-ID: <4745E45C.7@gmail.com> (raw)
Here's a simple patch to make git-merge-ours.sh into a builtin.
I figure this would be a simple way of getting in the git-development flow.
Signed-off-by: Thomas Harning Jr <harningt@gmail.com>
---
Makefile | 3 ++-
builtin-merge-ours.c | 32 ++++++++++++++++++++++++++++++++
builtin.h | 1 +
git-merge-ours.sh | 14 --------------
git.c | 1 +
5 files changed, 36 insertions(+), 15 deletions(-)
create mode 100644 builtin-merge-ours.c
delete mode 100755 git-merge-ours.sh
diff --git a/Makefile b/Makefile
index cabde81..7a0ee78 100644
--- a/Makefile
+++ b/Makefile
@@ -221,7 +221,7 @@ SCRIPT_SH = \
git-sh-setup.sh \
git-am.sh \
git-merge.sh git-merge-stupid.sh git-merge-octopus.sh \
- git-merge-resolve.sh git-merge-ours.sh \
+ git-merge-resolve.sh \
git-lost-found.sh git-quiltimport.sh git-submodule.sh \
git-filter-branch.sh \
git-stash.sh
@@ -353,6 +353,7 @@ BUILTIN_OBJS = \
builtin-mailsplit.o \
builtin-merge-base.o \
builtin-merge-file.o \
+ builtin-merge-ours.o \
builtin-mv.o \
builtin-name-rev.o \
builtin-pack-objects.o \
diff --git a/builtin-merge-ours.c b/builtin-merge-ours.c
new file mode 100644
index 0000000..fbfe183
--- /dev/null
+++ b/builtin-merge-ours.c
@@ -0,0 +1,32 @@
+/*
+ * Implementation of git-merge-ours.sh as builtin
+ *
+ * Copyright (c) 2007 Thomas Harning Jr
+ * Original:
+ * Original Copyright (c) 2005 Junio C Hamano
+ *
+ * Pretend we resolved the heads, but declare our tree trumps everybody else.
+ */
+#include "git-compat-util.h"
+#include "builtin.h"
+
+int cmd_merge_ours(int argc, const char **argv, const char *prefix)
+{
+ const char *nargv[] = {
+ "diff-index",
+ "--quiet",
+ "--cached",
+ "HEAD",
+ NULL
+ };
+ int i;
+
+ int ret = cmd_diff_index(4, nargv, prefix);
+ printf("GOT: %i\n", ret);
+ /* We need to exit with 2 if the index does not match our HEAD tree,
+ * because the current index is what we will be committing as the
+ * merge result.
+ */
+ if(ret) ret = 2;
+ return ret;
+}
diff --git a/builtin.h b/builtin.h
index 9a6213a..bcb54aa 100644
--- a/builtin.h
+++ b/builtin.h
@@ -51,6 +51,7 @@ extern int cmd_ls_tree(int argc, const char **argv, const char *prefix);
extern int cmd_mailinfo(int argc, const char **argv, const char *prefix);
extern int cmd_mailsplit(int argc, const char **argv, const char *prefix);
extern int cmd_merge_base(int argc, const char **argv, const char *prefix);
+extern int cmd_merge_ours(int argc, const char **argv, const char *prefix);
extern int cmd_merge_file(int argc, const char **argv, const char *prefix);
extern int cmd_mv(int argc, const char **argv, const char *prefix);
extern int cmd_name_rev(int argc, const char **argv, const char *prefix);
diff --git a/git-merge-ours.sh b/git-merge-ours.sh
deleted file mode 100755
index c81a790..0000000
--- a/git-merge-ours.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2005 Junio C Hamano
-#
-# Pretend we resolved the heads, but declare our tree trumps everybody else.
-#
-
-# We need to exit with 2 if the index does not match our HEAD tree,
-# because the current index is what we will be committing as the
-# merge result.
-
-git diff-index --quiet --cached HEAD || exit 2
-
-exit 0
diff --git a/git.c b/git.c
index 7604319..80c2f14 100644
--- a/git.c
+++ b/git.c
@@ -325,6 +325,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "mailsplit", cmd_mailsplit },
{ "merge-base", cmd_merge_base, RUN_SETUP },
{ "merge-file", cmd_merge_file },
+ { "merge-ours", cmd_merge_ours, RUN_SETUP },
{ "mv", cmd_mv, RUN_SETUP | NEED_WORK_TREE },
{ "name-rev", cmd_name_rev, RUN_SETUP },
{ "pack-objects", cmd_pack_objects, RUN_SETUP },
--
1.5.3.6.861.gd794
next reply other threads:[~2007-11-22 20:19 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-22 20:19 Thomas Harning [this message]
2007-11-23 8:49 ` [PATCH] Converted git-merge-ours.sh -> builtin-merge-ours.c Junio C Hamano
2007-11-23 9:42 ` Jakub Narebski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4745E45C.7@gmail.com \
--to=harningt@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=thomas.harning@trustbearer.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.