From 02f3389d9647378ed864ff1cdfb6f0238b64ee91 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Thu, 24 Aug 2006 22:38:13 -0400 Subject: [PATCH] Moved from command to after data to help cvs2svn. cvs2svn has three phases: begin_commit, middle_commit, end_commit. The ancester is computed in the middle_commit phase. So its easier to generate a stream if the from command appears after the commit message itself but before the file change commands. Signed-off-by: Shawn O. Pearce --- fast-import.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fast-import.c b/fast-import.c index 3e527edf70..1842d0738b 100644 --- a/fast-import.c +++ b/fast-import.c @@ -14,11 +14,11 @@ Format of STDIN stream: file_content ::= data; new_commit ::= 'commit' sp ref_str lf - ('from' sp (ref_str | hexsha1 | sha1exp_str | idnum) lf)? mark? ('author' sp name '<' email '>' ts tz lf)? 'committer' sp name '<' email '>' ts tz lf commit_msg + ('from' sp (ref_str | hexsha1 | sha1exp_str | idnum) lf)? file_change* lf; commit_msg ::= data; @@ -1385,7 +1385,6 @@ static void cmd_new_commit() free(str_uq); read_next_command(); - cmd_from(b); cmd_mark(); if (!strncmp("author ", command_buf.buf, 7)) { author = strdup(command_buf.buf); @@ -1398,6 +1397,8 @@ static void cmd_new_commit() if (!committer) die("Expected committer but didn't get one"); msg = cmd_data(&msglen); + read_next_command(); + cmd_from(b); /* ensure the branch is active/loaded */ if (!b->branch_tree.tree || !max_active_branches) { @@ -1407,7 +1408,6 @@ static void cmd_new_commit() /* file_change* */ for (;;) { - read_next_command(); if (1 == command_buf.len) break; else if (!strncmp("M ", command_buf.buf, 2)) @@ -1416,6 +1416,7 @@ static void cmd_new_commit() file_change_d(b); else die("Unsupported file_change: %s", command_buf.buf); + read_next_command(); } /* build the tree and the commit */