diff options
author | Junio C Hamano <gitster@pobox.com> | 2018-03-21 11:30:10 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-03-21 11:30:10 -0700 |
commit | beb2cdf5041104a7513301a9b20944a617eec94e (patch) | |
tree | 6f44e7c048bc9857025235064b956a5d1d53ee25 /builtin/merge.c | |
parent | 75901dfd52ef97df51621a23156db96c9cd4a90b (diff) | |
parent | 610008146ed1647bb1da6a098e314b8929ff213e (diff) | |
download | git-beb2cdf5041104a7513301a9b20944a617eec94e.tar.gz |
Merge branch 'ma/skip-writing-unchanged-index'
Internal API clean-up to allow write_locked_index() optionally skip
writing the in-core index when it is not modified.
* ma/skip-writing-unchanged-index:
write_locked_index(): add flag to avoid writing unchanged index
Diffstat (limited to 'builtin/merge.c')
-rw-r--r-- | builtin/merge.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/builtin/merge.c b/builtin/merge.c index e8d9d4383e..ee050a47f3 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -652,10 +652,9 @@ static int try_merge_strategy(const char *strategy, struct commit_list *common, hold_locked_index(&lock, LOCK_DIE_ON_ERROR); refresh_cache(REFRESH_QUIET); - if (active_cache_changed && - write_locked_index(&the_index, &lock, COMMIT_LOCK)) + if (write_locked_index(&the_index, &lock, + COMMIT_LOCK | SKIP_IF_UNCHANGED)) return error(_("Unable to write index.")); - rollback_lock_file(&lock); if (!strcmp(strategy, "recursive") || !strcmp(strategy, "subtree")) { int clean, x; @@ -692,10 +691,9 @@ static int try_merge_strategy(const char *strategy, struct commit_list *common, remoteheads->item, reversed, &result); if (clean < 0) exit(128); - if (active_cache_changed && - write_locked_index(&the_index, &lock, COMMIT_LOCK)) + if (write_locked_index(&the_index, &lock, + COMMIT_LOCK | SKIP_IF_UNCHANGED)) die (_("unable to write %s"), get_index_file()); - rollback_lock_file(&lock); return clean ? 0 : 1; } else { return try_merge_command(strategy, xopts_nr, xopts, @@ -811,10 +809,9 @@ static int merge_trivial(struct commit *head, struct commit_list *remoteheads) hold_locked_index(&lock, LOCK_DIE_ON_ERROR); refresh_cache(REFRESH_QUIET); - if (active_cache_changed && - write_locked_index(&the_index, &lock, COMMIT_LOCK)) + if (write_locked_index(&the_index, &lock, + COMMIT_LOCK | SKIP_IF_UNCHANGED)) return error(_("Unable to write index.")); - rollback_lock_file(&lock); write_tree_trivial(&result_tree); printf(_("Wonderful.\n")); |