Code

diff: remove often unused parameters from diff_unmerge()
authorJunio C Hamano <gitster@pobox.com>
Fri, 22 Apr 2011 23:05:58 +0000 (16:05 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sun, 24 Apr 2011 05:34:43 +0000 (22:34 -0700)
e9c8409 (diff-index --cached --raw: show tree entry on the LHS for
unmerged entries., 2007-01-05) added a <mode, object name> pair as
parameters to this function, to store them in the pre-image side of an
unmerged file pair.  Now the function is fixed to return the filepair it
queued, we can make the caller on the special case codepath to do so.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff-lib.c
diff.c
diff.h

index 392ce2bef05746cea7922d39da67bf25d1d3d192..a98385538c307a9beec0087e90ca6a4d8799064d 100644 (file)
@@ -183,7 +183,7 @@ int run_diff_files(struct rev_info *revs, unsigned int option)
                         * Show the diff for the 'ce' if we found the one
                         * from the desired stage.
                         */
-                       diff_unmerge(&revs->diffopt, ce->name, 0, null_sha1);
+                       diff_unmerge(&revs->diffopt, ce->name);
                        if (ce_stage(ce) != diff_unmerged_stage)
                                continue;
                }
@@ -372,8 +372,9 @@ static void do_oneway_diff(struct unpack_trees_options *o,
        match_missing = !revs->ignore_merges;
 
        if (cached && idx && ce_stage(idx)) {
-               diff_unmerge(&revs->diffopt, idx->name, idx->ce_mode,
-                            idx->sha1);
+               struct diff_filepair *pair;
+               pair = diff_unmerge(&revs->diffopt, idx->name);
+               fill_filespec(pair->one, idx->sha1, idx->ce_mode);
                return;
        }
 
diff --git a/diff.c b/diff.c
index 4c34c64bd7dac112e2bea27a0c99967e0b9bc050..d2c5c563bc84ba048ebccdc692a84663b8a74e9a 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -4308,9 +4308,7 @@ void diff_change(struct diff_options *options,
                DIFF_OPT_SET(options, HAS_CHANGES);
 }
 
-struct diff_filepair *diff_unmerge(struct diff_options *options,
-                                  const char *path,
-                                  unsigned mode, const unsigned char *sha1)
+struct diff_filepair *diff_unmerge(struct diff_options *options, const char *path)
 {
        struct diff_filepair *pair;
        struct diff_filespec *one, *two;
@@ -4321,7 +4319,6 @@ struct diff_filepair *diff_unmerge(struct diff_options *options,
 
        one = alloc_filespec(path);
        two = alloc_filespec(path);
-       fill_filespec(one, sha1, mode);
        pair = diff_queue(&diff_queued_diff, one, two);
        pair->is_unmerged = 1;
        return pair;
diff --git a/diff.h b/diff.h
index f51a8ee1b2a159814ce7fcca699b9895365ab2ff..3edb705b4dc6c7f8bb1febdb6440c96141232c01 100644 (file)
--- a/diff.h
+++ b/diff.h
@@ -209,10 +209,7 @@ extern void diff_change(struct diff_options *,
                        const char *fullpath,
                        unsigned dirty_submodule1, unsigned dirty_submodule2);
 
-extern struct diff_filepair *diff_unmerge(struct diff_options *,
-                        const char *path,
-                        unsigned mode,
-                        const unsigned char *sha1);
+extern struct diff_filepair *diff_unmerge(struct diff_options *, const char *path);
 
 #define DIFF_SETUP_REVERSE             1
 #define DIFF_SETUP_USE_CACHE           2