OSDN Git Service

Simplify parsing branch switching events in reflog
authorJunio C Hamano <gitster@pobox.com>
Wed, 21 Jan 2009 08:37:38 +0000 (00:37 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 21 Jan 2009 08:42:22 +0000 (00:42 -0800)
We only accept "checkout: moving from A to B" newer style reflog entries,
in order to pick up A.  There is no point computing where B begins at
after running strstr to locate " to ", nor adding 4 and then subtracting 4
from the same pointer.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
sha1_name.c

index 38c9f1b..7d95bbb 100644 (file)
@@ -723,17 +723,13 @@ static int grab_nth_branch_switch(unsigned char *osha1, unsigned char *nsha1,
 
        if (!prefixcmp(message, "checkout: moving from ")) {
                match = message + strlen("checkout: moving from ");
-               if ((target = strstr(match, " to ")) != NULL)
-                       target += 4;
+               target = strstr(match, " to ");
        }
 
        if (!match || !target)
                return 0;
 
-       len = target - match - 4;
-       if (target[len] == '\n' && !strncmp(match, target, len))
-               return 0;
-
+       len = target - match;
        nth = cb->cnt++ % cb->alloc;
        strbuf_reset(&cb->buf[nth]);
        strbuf_add(&cb->buf[nth], match, len);