aboutsummaryrefslogtreecommitdiff
path: root/builtin-checkout.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-03-02 12:44:09 -0800
committerJunio C Hamano <gitster@pobox.com>2010-03-02 12:44:09 -0800
commitd5f61ce1574d0167fd0902bd3c6ed83bd072e976 (patch)
tree01713be3924217696fbabc53855ead5fd6ef3b63 /builtin-checkout.c
parenta0626bcc66828dbfd4a2f6d18eb52a411fc268ae (diff)
parent06b65939b083ba1b71043005bf83b4883e98264e (diff)
downloadgit-d5f61ce1574d0167fd0902bd3c6ed83bd072e976.tar.gz
git-d5f61ce1574d0167fd0902bd3c6ed83bd072e976.tar.xz
Merge branch 'ml/fill-mm-refactor'
* ml/fill-mm-refactor: refactor duplicated fill_mm() in checkout and merge-recursive
Diffstat (limited to 'builtin-checkout.c')
-rw-r--r--builtin-checkout.c24
1 files changed, 3 insertions, 21 deletions
diff --git a/builtin-checkout.c b/builtin-checkout.c
index c5ab7835e..acefaaf41 100644
--- a/builtin-checkout.c
+++ b/builtin-checkout.c
@@ -128,24 +128,6 @@ static int checkout_stage(int stage, struct cache_entry *ce, int pos,
(stage == 2) ? "our" : "their");
}
-/* NEEDSWORK: share with merge-recursive */
-static void fill_mm(const unsigned char *sha1, mmfile_t *mm)
-{
- unsigned long size;
- enum object_type type;
-
- if (!hashcmp(sha1, null_sha1)) {
- mm->ptr = xstrdup("");
- mm->size = 0;
- return;
- }
-
- mm->ptr = read_sha1_file(sha1, &type, &size);
- if (!mm->ptr || type != OBJ_BLOB)
- die("unable to read blob object %s", sha1_to_hex(sha1));
- mm->size = size;
-}
-
static int checkout_merged(int pos, struct checkout *state)
{
struct cache_entry *ce = active_cache[pos];
@@ -163,9 +145,9 @@ static int checkout_merged(int pos, struct checkout *state)
ce_stage(active_cache[pos+2]) != 3)
return error("path '%s' does not have all 3 versions", path);
- fill_mm(active_cache[pos]->sha1, &ancestor);
- fill_mm(active_cache[pos+1]->sha1, &ours);
- fill_mm(active_cache[pos+2]->sha1, &theirs);
+ read_mmblob(&ancestor, active_cache[pos]->sha1);
+ read_mmblob(&ours, active_cache[pos+1]->sha1);
+ read_mmblob(&theirs, active_cache[pos+2]->sha1);
status = ll_merge(&result_buf, path, &ancestor,
&ours, "ours", &theirs, "theirs", 0);