git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] builtin-fast-export: Only output a single parent per line
@ 2008-05-24 23:21 Pieter de Bie
  2008-05-25  1:38 ` Junio C Hamano
  0 siblings, 1 reply; 6+ messages in thread
From: Pieter de Bie @ 2008-05-24 23:21 UTC (permalink / raw)
  To: git, Johannes.Schindelin; +Cc: Pieter de Bie

According to the git-fast-import man-page, you can only put a single
committish per merge: line, like this:

  merge :10
  merge :11

However, git-fast-export puts all parents on a single line, like this:

  merge :10 :11

This may be fine with git-fast-import, but other importers based on it, like
bzr-fast-import, can't handle this.

This changes fast-export to also output a single parent per line.

Signed-off-by: Pieter de Bie <pdebie@ai.rug.nl>
---

I'm not sure why this was done, but it messed up my import :)
 builtin-fast-export.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/builtin-fast-export.c b/builtin-fast-export.c
index e1c5630..34acdf9 100755
--- a/builtin-fast-export.c
+++ b/builtin-fast-export.c
@@ -204,10 +204,8 @@ static void handle_commit(struct commit *commit, struct rev_info *rev)
 			continue;
 		if (i == 0)
 			printf("from :%d\n", mark);
-		else if (i == 1)
-			printf("merge :%d", mark);
 		else
-			printf(" :%d", mark);
+			printf("merge :%d\n", mark);
 		i++;
 	}
 	if (i > 1)
-- 
1.5.5.1.541.g51dc4.dirty

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] builtin-fast-export: Only output a single parent per line
  2008-05-24 23:21 [PATCH] builtin-fast-export: Only output a single parent per line Pieter de Bie
@ 2008-05-25  1:38 ` Junio C Hamano
  2008-05-26  1:49   ` Shawn O. Pearce
  0 siblings, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2008-05-25  1:38 UTC (permalink / raw)
  To: Pieter de Bie; +Cc: git, Johannes.Schindelin

Pieter de Bie <pdebie@ai.rug.nl> writes:

> According to the git-fast-import man-page, you can only put a single
> committish per merge: line, like this:
>
>   merge :10
>   merge :11
>
> However, git-fast-export puts all parents on a single line, like this:
>
>   merge :10 :11
>
> This may be fine with git-fast-import,...

Is it fine for even git-fast-import?  fast-import.c: parse_merge() seems
to suggest that it also wants one parent per "merge " line.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] builtin-fast-export: Only output a single parent per line
  2008-05-25  1:38 ` Junio C Hamano
@ 2008-05-26  1:49   ` Shawn O. Pearce
  2008-05-26  5:19     ` Junio C Hamano
  0 siblings, 1 reply; 6+ messages in thread
From: Shawn O. Pearce @ 2008-05-26  1:49 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Pieter de Bie, git, Johannes.Schindelin

Junio C Hamano <gitster@pobox.com> wrote:
> Pieter de Bie <pdebie@ai.rug.nl> writes:
> 
> > According to the git-fast-import man-page, you can only put a single
> > committish per merge: line, like this:
> >
> >   merge :10
> >   merge :11
> >
> > However, git-fast-export puts all parents on a single line, like this:
> >
> >   merge :10 :11
> >
> > This may be fine with git-fast-import,...
> 
> Is it fine for even git-fast-import?  fast-import.c: parse_merge() seems
> to suggest that it also wants one parent per "merge " line.

fast-import wants the same as bzr-fast-import; one parent per
merge line.  If git-fast-import was doing anything with multiple
per line it was probably dropping everything after the first.  :-(

This was a bug in fast-export; I'm glad Pieter has fixed it.

-- 
Shawn.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] builtin-fast-export: Only output a single parent per line
  2008-05-26  1:49   ` Shawn O. Pearce
@ 2008-05-26  5:19     ` Junio C Hamano
  2008-05-26  5:24       ` Junio C Hamano
  0 siblings, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2008-05-26  5:19 UTC (permalink / raw)
  To: Shawn O. Pearce; +Cc: Pieter de Bie, git, Johannes.Schindelin

"Shawn O. Pearce" <spearce@spearce.org> writes:

> Junio C Hamano <gitster@pobox.com> wrote:
> ...
>> Is it fine for even git-fast-import?  fast-import.c: parse_merge() seems
>> to suggest that it also wants one parent per "merge " line.
>
> fast-import wants the same as bzr-fast-import; one parent per
> merge line.  If git-fast-import was doing anything with multiple
> per line it was probably dropping everything after the first.  :-(
>
> This was a bug in fast-export; I'm glad Pieter has fixed it.

Unfortunately, t9301 does not pass with the "fix".

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] builtin-fast-export: Only output a single parent per line
  2008-05-26  5:19     ` Junio C Hamano
@ 2008-05-26  5:24       ` Junio C Hamano
  2008-05-26  5:30         ` Shawn O. Pearce
  0 siblings, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2008-05-26  5:24 UTC (permalink / raw)
  To: Shawn O. Pearce; +Cc: Pieter de Bie, git, Johannes.Schindelin

Junio C Hamano <gitster@pobox.com> writes:

> "Shawn O. Pearce" <spearce@spearce.org> writes:
>
>> Junio C Hamano <gitster@pobox.com> wrote:
>> ...
>>> Is it fine for even git-fast-import?  fast-import.c: parse_merge() seems
>>> to suggest that it also wants one parent per "merge " line.
>>
>> fast-import wants the same as bzr-fast-import; one parent per
>> merge line.  If git-fast-import was doing anything with multiple
>> per line it was probably dropping everything after the first.  :-(
>>
>> This was a bug in fast-export; I'm glad Pieter has fixed it.
>
> Unfortunately, t9301 does not pass with the "fix".

Perhaps, this is needed on top?

 builtin-fast-export.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/builtin-fast-export.c b/builtin-fast-export.c
index 4d28cf7..4bf5b58 100755
--- a/builtin-fast-export.c
+++ b/builtin-fast-export.c
@@ -209,8 +209,6 @@ static void handle_commit(struct commit *commit, struct rev_info *rev)
 			printf("merge :%d\n", mark);
 		i++;
 	}
-	if (i > 1)
-		printf("\n");
 
 	log_tree_diff_flush(rev);
 	rev->diffopt.output_format = saved_output_format;

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] builtin-fast-export: Only output a single parent per line
  2008-05-26  5:24       ` Junio C Hamano
@ 2008-05-26  5:30         ` Shawn O. Pearce
  0 siblings, 0 replies; 6+ messages in thread
From: Shawn O. Pearce @ 2008-05-26  5:30 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Pieter de Bie, git, Johannes.Schindelin

Junio C Hamano <gitster@pobox.com> wrote:
> > Unfortunately, t9301 does not pass with the "fix".
> 
> Perhaps, this is needed on top?
> 
>  builtin-fast-export.c |    2 --
>  1 files changed, 0 insertions(+), 2 deletions(-)
> 
> diff --git a/builtin-fast-export.c b/builtin-fast-export.c
> index 4d28cf7..4bf5b58 100755
> --- a/builtin-fast-export.c
> +++ b/builtin-fast-export.c
> @@ -209,8 +209,6 @@ static void handle_commit(struct commit *commit, struct rev_info *rev)
>  			printf("merge :%d\n", mark);
>  		i++;
>  	}
> -	if (i > 1)
> -		printf("\n");
>  
>  	log_tree_diff_flush(rev);
>  	rev->diffopt.output_format = saved_output_format;


Yea, that looks right.  The LF shouldn't follow the last merge
command.

-- 
Shawn.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-05-26  5:31 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-24 23:21 [PATCH] builtin-fast-export: Only output a single parent per line Pieter de Bie
2008-05-25  1:38 ` Junio C Hamano
2008-05-26  1:49   ` Shawn O. Pearce
2008-05-26  5:19     ` Junio C Hamano
2008-05-26  5:24       ` Junio C Hamano
2008-05-26  5:30         ` Shawn O. Pearce

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).