Re: [PATCH v2 1/3] fast-{import,export}: use get_sha1_hex() directly
From: Felipe Contreras <hidden>
Date: 2016-06-15 22:57:10
Subsystem:
the rest · Maintainer:
Linus Torvalds
On Tue, May 7, 2013 at 9:38 AM, Junio C Hamano [off-list ref] wrote:
Felipe Contreras [off-list ref] writes:quoted
It's wrong to call get_sha1() if they should be SHA-1s, plus inefficient. Signed-off-by: Felipe Contreras <redacted> ---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