Re: [PATCH v13 00/14] libify apply and use lib in am, part 3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Aug 27, 2016 at 8:45 PM, Christian Couder
<christian.couder@xxxxxxxxx> wrote:
>
> I will send a diff between this version and v12 as a reply to this
> email.

Here is the diff:

diff --git a/apply.c b/apply.c
index 7e561a4..5cd037d 100644
--- a/apply.c
+++ b/apply.c
@@ -3993,12 +3993,21 @@ static int check_patch_list(struct apply_state
*state, struct patch *patch)
     return err;
 }

+static int read_apply_cache(struct apply_state *state)
+{
+    if (state->index_file)
+        return read_cache_from(state->index_file);
+    else
+        return read_cache();
+}
+
 /* This function tries to read the sha1 from the current index */
-static int get_current_sha1(const char *path, unsigned char *sha1)
+static int get_current_sha1(struct apply_state *state, const char *path,
+                unsigned char *sha1)
 {
     int pos;

-    if (read_cache() < 0)
+    if (read_apply_cache(state) < 0)
         return -1;
     pos = cache_name_pos(path, strlen(path));
     if (pos < 0)
@@ -4042,7 +4051,7 @@ static int preimage_sha1_in_gitlink_patch(struct
patch *p, unsigned char sha1[20
 }

 /* Build an index that contains the just the files needed for a 3way merge */
-static int build_fake_ancestor(struct patch *list, const char *filename)
+static int build_fake_ancestor(struct apply_state *state, struct patch *list)
 {
     struct patch *patch;
     struct index_state result = { NULL };
@@ -4071,7 +4080,7 @@ static int build_fake_ancestor(struct patch
*list, const char *filename)
             ; /* ok */
         } else if (!patch->lines_added && !patch->lines_deleted) {
             /* mode-only change: update the current */
-            if (get_current_sha1(patch->old_name, sha1))
+            if (get_current_sha1(state, patch->old_name, sha1))
                 return error("mode change for %s, which is not "
                          "in current HEAD", name);
         } else
@@ -4089,12 +4098,13 @@ static int build_fake_ancestor(struct patch
*list, const char *filename)
         }
     }

-    hold_lock_file_for_update(&lock, filename, LOCK_DIE_ON_ERROR);
+    hold_lock_file_for_update(&lock, state->fake_ancestor, LOCK_DIE_ON_ERROR);
     res = write_locked_index(&result, &lock, COMMIT_LOCK);
     discard_index(&result);

     if (res)
-        return error("Could not write temporary index to %s", filename);
+        return error("Could not write temporary index to %s",
+                 state->fake_ancestor);

     return 0;
 }
@@ -4683,7 +4693,7 @@ static int apply_patch(struct apply_state *state,
             state->newfd = hold_locked_index(state->lock_file, 1);
     }

-    if (state->check_index && read_cache() < 0) {
+    if (state->check_index && read_apply_cache(state) < 0) {
         error(_("unable to read index file"));
         res = -128;
         goto end;
@@ -4715,7 +4725,7 @@ static int apply_patch(struct apply_state *state,
     }

     if (state->fake_ancestor &&
-        build_fake_ancestor(list, state->fake_ancestor)) {
+        build_fake_ancestor(state, list)) {
         res = -128;
         goto end;
     }
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]