diff --git a/diff-lib.c b/diff-lib.c index 392ce2bef0..a98385538c 100644 --- a/diff-lib.c +++ b/diff-lib.c @@ -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 4c34c64bd7..d2c5c563bc 100644 --- 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 f51a8ee1b2..3edb705b4d 100644 --- 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