diff options
author | Junio C Hamano <gitster@pobox.com> | 2013-01-31 19:19:44 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-01-31 20:30:55 -0800 |
commit | e2afb0be9073fbe9f565ad9e952155c0bf7dd7c6 (patch) | |
tree | 623ec8b09af697819d835d66701971ef4f276c94 /builtin | |
parent | 4ae6d4699f4d1df7cd3ffac9dd361c86d62eca42 (diff) | |
download | git-e2afb0be9073fbe9f565ad9e952155c0bf7dd7c6.tar.gz git-e2afb0be9073fbe9f565ad9e952155c0bf7dd7c6.tar.xz |
apply: simplify build_fake_ancestor()
The local variable sha1_ptr in the build_fake_ancestor() function
used to either point at the null_sha1[] (if the ancestor did not
have the path) or at sha1[] (if we read the object name into the
local array), but 7a98869 (apply: get rid of --index-info in favor
of --build-fake-ancestor, 2007-09-17) made the "missing in the
ancestor" case unnecessary, hence sha1_ptr, when used, always points
at the local array.
Get rid of the unneeded variable, and restructure the if/else
cascade a bit to make it easier to read. There should be no
behaviour change.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/apply.c | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/builtin/apply.c b/builtin/apply.c index 156b3ce3b..a1db7b429 100644 --- a/builtin/apply.c +++ b/builtin/apply.c @@ -3598,7 +3598,6 @@ static void build_fake_ancestor(struct patch *list, const char *filename) * worth showing the new sha1 prefix, but until then... */ for (patch = list; patch; patch = patch->next) { - const unsigned char *sha1_ptr; unsigned char sha1[20]; struct cache_entry *ce; const char *name; @@ -3606,20 +3605,19 @@ static void build_fake_ancestor(struct patch *list, const char *filename) name = patch->old_name ? patch->old_name : patch->new_name; if (0 < patch->is_new) continue; - else if (get_sha1_blob(patch->old_sha1_prefix, sha1)) - /* git diff has no index line for mode/type changes */ - if (!patch->lines_added && !patch->lines_deleted) { - if (get_current_sha1(patch->old_name, sha1)) - die("mode change for %s, which is not " - "in current HEAD", name); - sha1_ptr = sha1; - } else - die("sha1 information is lacking or useless " - "(%s).", name); - else - sha1_ptr = sha1; - ce = make_cache_entry(patch->old_mode, sha1_ptr, name, 0, 0); + if (!get_sha1_blob(patch->old_sha1_prefix, sha1)) { + ; /* ok */ + } else if (!patch->lines_added && !patch->lines_deleted) { + /* mode-only change: update the current */ + if (get_current_sha1(patch->old_name, sha1)) + die("mode change for %s, which is not " + "in current HEAD", name); + } else + die("sha1 information is lacking or useless " + "(%s).", name); + + ce = make_cache_entry(patch->old_mode, sha1, name, 0, 0); if (!ce) die(_("make_cache_entry failed for path '%s'"), name); if (add_index_entry(&result, ce, ADD_CACHE_OK_TO_ADD)) |