On Tue, May 7, 2013 at 9:38 AM, Junio C Hamano <gits...@pobox.com> wrote:
> Felipe Contreras <felipe.contre...@gmail.com> writes:
>
>> It's wrong to call get_sha1() if they should be SHA-1s, plus
>> inefficient.
>>
>> Signed-off-by: Felipe Contreras <felipe.contre...@gmail.com>
>> ---
>
> It appears that "they should be SHA-1s" assumption does not hold;
> this patch breaks at least 3303, 9020, and 9300.
>
> Also assuming these are always 40-hex goes directly against what is
> documented in Documentation/git-fast-import.txt (look for "Here
> committish is any of the following").  My bad while reviewing the
> earlier round.
>
> I've redone 'pu' (which was failing the test last night) after
> dropping this and keeping only patches 2 and 3 from the series.

Turns out most of the get_sha1() calls were correct; this does the trick:

diff --git a/builtin/fast-export.c b/builtin/fast-export.c
index 18fdfb3..d1d68e9 100644
--- a/builtin/fast-export.c
+++ b/builtin/fast-export.c
@@ -623,7 +623,7 @@ static void import_marks(char *input_file)

                mark = strtoumax(line + 1, &mark_end, 10);
                if (!mark || mark_end == line + 1
-                       || *mark_end != ' ' || get_sha1(mark_end + 1, sha1))
+                       || *mark_end != ' ' || get_sha1_hex(mark_end + 1, sha1))
                        die("corrupt mark line: %s", line);

                if (last_idnum < mark)
diff --git a/fast-import.c b/fast-import.c
index 5f539d7..3f32149 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -1822,7 +1822,7 @@ static void read_marks(void)
                *end = 0;
                mark = strtoumax(line + 1, &end, 10);
                if (!mark || end == line + 1
-                       || *end != ' ' || get_sha1(end + 1, sha1))
+                       || *end != ' ' || get_sha1_hex(end + 1, sha1))
                        die("corrupt mark line: %s", line);
                e = find_object(sha1);
                if (!e) {

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to