]> git.ipfire.org Git - thirdparty/git.git/commitdiff
commit-reach: reduce requirements for remove_redundant()
authorDerrick Stolee <dstolee@microsoft.com>
Mon, 1 Feb 2021 12:47:23 +0000 (12:47 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 1 Feb 2021 19:50:33 +0000 (11:50 -0800)
Remove a comment at the beggining of remove_redundant() that mentions a
reordering of the input array to have the initial segment be the
independent commits and the final segment be the redundant commits.
While this behavior is followed in remove_redundant(), no callers rely
on that behavior.

Remove the final loop that copies this final segment and update the
comment to match the new behavior.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit-reach.c

index e38771ca5a1f63c84b7ad3e6d3bf6013c923042a..9af51fe7e0781aee0e6d4c80a590534f7a099733 100644 (file)
@@ -160,9 +160,10 @@ static int remove_redundant(struct repository *r, struct commit **array, int cnt
 {
        /*
         * Some commit in the array may be an ancestor of
-        * another commit.  Move such commit to the end of
-        * the array, and return the number of commits that
-        * are independent from each other.
+        * another commit.  Move the independent commits to the
+        * beginning of 'array' and return their number. Callers
+        * should not rely upon the contents of 'array' after
+        * that number.
         */
        struct commit **work;
        unsigned char *redundant;
@@ -209,9 +210,6 @@ static int remove_redundant(struct repository *r, struct commit **array, int cnt
        for (i = filled = 0; i < cnt; i++)
                if (!redundant[i])
                        array[filled++] = work[i];
-       for (j = filled, i = 0; i < cnt; i++)
-               if (redundant[i])
-                       array[j++] = work[i];
        free(work);
        free(redundant);
        free(filled_index);