git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* git-svn and u-boot broken.
@ 2006-10-13 19:19 Joakim Tjernlund
  2006-10-13 19:39 ` Randal L. Schwartz
  0 siblings, 1 reply; 14+ messages in thread
From: Joakim Tjernlund @ 2006-10-13 19:19 UTC (permalink / raw)
  To: git

I am trying to create a SVN tree using git-svn from the u-boot git tree and it doesn't work.
First, I had to change this (from memory) in git-svn:
  my $got = SVN::TxDelta::send_stream($fh, @$atd, $self->{pool});
to
  my $got;
  if ( $got ) {
    $got = SVN::TxDelta::send_stream($fh, @$atd, $self->{pool});
  } else {
    $got = $exp
  }
I am no perl programmer so please change as you se fit.

Secondly I ran out of open file descriptors which I "fixed" with ulimit -n 10000, maybe there is a leak
in git-svn?

Then it still failed, but this I could not fix. Don't have the error msg atm as I am home now, but
it should be easy enough to reproduce, just clone current u-boot tree and try :)

What I really would like to do is merge all u-boot commits up to a point into one commit
and then commit that single git commit to a clean SVN repo. Then I want merge the
remaining git commits(my own stuff).
Tried to import a tar tree into the SVN repo with svn import and then merge
the remain commits on top of that using git-svn but that didn't work, lots of conflicts.

 Jocke

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

* Re: git-svn and u-boot broken.
  2006-10-13 19:19 git-svn and u-boot broken Joakim Tjernlund
@ 2006-10-13 19:39 ` Randal L. Schwartz
  2006-10-13 19:43   ` Joakim Tjernlund
  2006-10-14  1:21   ` Joakim Tjernlund
  0 siblings, 2 replies; 14+ messages in thread
From: Randal L. Schwartz @ 2006-10-13 19:39 UTC (permalink / raw)
  To: Joakim Tjernlund; +Cc: git

>>>>> "Joakim" == Joakim Tjernlund <joakim.tjernlund@transmode.se> writes:

Joakim> First, I had to change this (from memory) in git-svn:
Joakim>   my $got = SVN::TxDelta::send_stream($fh, @$atd, $self->{pool});
Joakim> to
Joakim>   my $got;
Joakim>   if ( $got ) {
Joakim>     $got = SVN::TxDelta::send_stream($fh, @$atd, $self->{pool});
Joakim>   } else {
Joakim>     $got = $exp
Joakim>   }
Joakim> I am no perl programmer so please change as you se fit.

That doesn't make any sense.  You'll never run the if-true branch there.
The value of $got immediately following "my $got;" is always undef.

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!

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

* RE: git-svn and u-boot broken.
  2006-10-13 19:39 ` Randal L. Schwartz
@ 2006-10-13 19:43   ` Joakim Tjernlund
  2006-10-14  1:21   ` Joakim Tjernlund
  1 sibling, 0 replies; 14+ messages in thread
From: Joakim Tjernlund @ 2006-10-13 19:43 UTC (permalink / raw)
  To: 'Randal L. Schwartz'; +Cc: git

 > 
> >>>>> "Joakim" == Joakim Tjernlund 
> <joakim.tjernlund@transmode.se> writes:
> 
> Joakim> First, I had to change this (from memory) in git-svn:
> Joakim>   my $got = SVN::TxDelta::send_stream($fh, @$atd, 
> $self->{pool});
> Joakim> to
> Joakim>   my $got;
> Joakim>   if ( $got ) {
> Joakim>     $got = SVN::TxDelta::send_stream($fh, @$atd, 
> $self->{pool});
> Joakim>   } else {
> Joakim>     $got = $exp
> Joakim>   }
> Joakim> I am no perl programmer so please change as you se fit.
> 
> That doesn't make any sense.  You'll never run the if-true 
> branch there.
> The value of $got immediately following "my $got;" is always undef.

Typo, should be 'if( $atd )', sorry

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

* RE: git-svn and u-boot broken.
  2006-10-13 19:39 ` Randal L. Schwartz
  2006-10-13 19:43   ` Joakim Tjernlund
@ 2006-10-14  1:21   ` Joakim Tjernlund
  2006-10-14  6:28     ` Eric Wong
  1 sibling, 1 reply; 14+ messages in thread
From: Joakim Tjernlund @ 2006-10-14  1:21 UTC (permalink / raw)
  To: 'Randal L. Schwartz'; +Cc: git

 

> -----Original Message-----
> From: Randal L. Schwartz [mailto:merlyn@stonehenge.com] 
> Sent: den 13 oktober 2006 21:40
> To: Joakim Tjernlund
> Cc: git@vger.kernel.org
> Subject: Re: git-svn and u-boot broken.
> 
> >>>>> "Joakim" == Joakim Tjernlund 
> <joakim.tjernlund@transmode.se> writes:
> 
> Joakim> First, I had to change this (from memory) in git-svn:
> Joakim>   my $got = SVN::TxDelta::send_stream($fh, @$atd, 
> $self->{pool});
> Joakim> to
> Joakim>   my $got;
> Joakim>   if ( $got ) {
> Joakim>     $got = SVN::TxDelta::send_stream($fh, @$atd, 
> $self->{pool});
> Joakim>   } else {
> Joakim>     $got = $exp
> Joakim>   }
> Joakim> I am no perl programmer so please change as you se fit.
> 
> That doesn't make any sense.  You'll never run the if-true 
> branch there.
> The value of $got immediately following "my $got;" is always undef.

git-pull --squash seems to do what I want but know I get this when
committing to svn: 
git-svn commit remotes/git-svn..svn-branch
...
        A       cpu/mpc824x/drivers/i2c_export.h
        A       cpu/mpc824x/drivers/i2o.h
        A       cpu/mpc824x/drivers/i2o/Makefile
        A       cpu/mpc824x/drivers/i2o/Makefile_pc
Cannot allocate memory at /usr/bin/git-svn line 1462
3072 at /usr/bin/git-svn line 547
        main::commit_lib('2ff9bcb7908d2752f643695ab3a28f9ababfafab') called at /usr/bin/git-svn line 457
        main::commit('remotes/git-svn..svn-branch') called at /usr/bin/git-svn line 149

 Jocke

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

* Re: git-svn and u-boot broken.
  2006-10-14  1:21   ` Joakim Tjernlund
@ 2006-10-14  6:28     ` Eric Wong
  2006-10-14  9:51       ` Joakim Tjernlund
  0 siblings, 1 reply; 14+ messages in thread
From: Eric Wong @ 2006-10-14  6:28 UTC (permalink / raw)
  To: Joakim Tjernlund; +Cc: 'Randal L. Schwartz', git

Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
>  
> 
> > -----Original Message-----
> > From: Randal L. Schwartz [mailto:merlyn@stonehenge.com] 
> > Sent: den 13 oktober 2006 21:40
> > To: Joakim Tjernlund
> > Cc: git@vger.kernel.org
> > Subject: Re: git-svn and u-boot broken.
> > 
> > >>>>> "Joakim" == Joakim Tjernlund 
> > <joakim.tjernlund@transmode.se> writes:
> > 
> > Joakim> First, I had to change this (from memory) in git-svn:
> > Joakim>   my $got = SVN::TxDelta::send_stream($fh, @$atd, 
> > $self->{pool});
> > Joakim> to
> > Joakim>   my $got;
> > Joakim>   if ( $got ) {
> > Joakim>     $got = SVN::TxDelta::send_stream($fh, @$atd, 
> > $self->{pool});
> > Joakim>   } else {
> > Joakim>     $got = $exp
> > Joakim>   }
> > Joakim> I am no perl programmer so please change as you se fit.

With your correction following merlyn's comments, it could work[1].  I'm
curious as to what change git-svn printed right before hitting an error
here, and would like to see the files (before and after) that were
printed by git-svn.

I'm not sure what change would show up in git but cause apply_textdelta
to return undef...

[1] - I am tempted to apply a change based on yours, but this could just
be working around another bug somewhere else (either in git-svn or
subversion).

> > That doesn't make any sense.  You'll never run the if-true 
> > branch there.
> > The value of $got immediately following "my $got;" is always undef.
> 
> git-pull --squash seems to do what I want but know I get this when
> committing to svn: 
> git-svn commit remotes/git-svn..svn-branch
> ...
>         A       cpu/mpc824x/drivers/i2c_export.h
>         A       cpu/mpc824x/drivers/i2o.h
>         A       cpu/mpc824x/drivers/i2o/Makefile
>         A       cpu/mpc824x/drivers/i2o/Makefile_pc
> Cannot allocate memory at /usr/bin/git-svn line 1462
> 3072 at /usr/bin/git-svn line 547
>         main::commit_lib('2ff9bcb7908d2752f643695ab3a28f9ababfafab') called at /usr/bin/git-svn line 457
>         main::commit('remotes/git-svn..svn-branch') called at /usr/bin/git-svn line 149

How large is the changeset you're committing?
(git show --stat 2ff9bcb7908d2752f643695ab3a28f9ababfafab)

I actually have a fair amount of fork() hacks in git-svn to workaround
leaks in the SVN:: libraries (hard to avoid otherwise in Perl).
I haven't noticed (or looked for) file-descriptor leakage very heard,
though.

Also, which version of git-svn are you running?  Also, which version of
Subversion (client library, and server (if possible) are you running?

There seems to be a lot of new bugreports to git-svn lately and very
little has changed in git-svn the past few months...

-- 
Eric Wong

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

* RE: git-svn and u-boot broken.
  2006-10-14  6:28     ` Eric Wong
@ 2006-10-14  9:51       ` Joakim Tjernlund
  2006-10-14 22:46         ` Eric Wong
  0 siblings, 1 reply; 14+ messages in thread
From: Joakim Tjernlund @ 2006-10-14  9:51 UTC (permalink / raw)
  To: 'Eric Wong'; +Cc: 'Randal L. Schwartz', git

 

> -----Original Message-----
> From: Eric Wong [mailto:normalperson@yhbt.net] 
> Sent: den 14 oktober 2006 08:28
> To: Joakim Tjernlund
> Cc: 'Randal L. Schwartz'; git@vger.kernel.org
> Subject: Re: git-svn and u-boot broken.
> 
> Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
> >  
> > 
> > > -----Original Message-----
> > > From: Randal L. Schwartz [mailto:merlyn@stonehenge.com] 
> > > Sent: den 13 oktober 2006 21:40
> > > To: Joakim Tjernlund
> > > Cc: git@vger.kernel.org
> > > Subject: Re: git-svn and u-boot broken.
> > > 
> > > >>>>> "Joakim" == Joakim Tjernlund 
> > > <joakim.tjernlund@transmode.se> writes:
> > > 
> > > Joakim> First, I had to change this (from memory) in git-svn:
> > > Joakim>   my $got = SVN::TxDelta::send_stream($fh, @$atd, 
> > > $self->{pool});
> > > Joakim> to
> > > Joakim>   my $got;
> > > Joakim>   if ( $got ) {
> > > Joakim>     $got = SVN::TxDelta::send_stream($fh, @$atd, 
> > > $self->{pool});
> > > Joakim>   } else {
> > > Joakim>     $got = $exp
> > > Joakim>   }
> > > Joakim> I am no perl programmer so please change as you se fit.
> 
> With your correction following merlyn's comments, it could 
> work[1].  I'm
> curious as to what change git-svn printed right before 
> hitting an error

from memory:
Usage: svn_txdelta_send_stream(x,y,z,m)

> here, and would like to see the files (before and after) that were
> printed by git-svn.

Sorry, don't have that hande ATM

> 
> I'm not sure what change would show up in git but cause 
> apply_textdelta
> to return undef...
> 
> [1] - I am tempted to apply a change based on yours, but this 
> could just
> be working around another bug somewhere else (either in git-svn or
> subversion).
> 
> > > That doesn't make any sense.  You'll never run the if-true 
> > > branch there.
> > > The value of $got immediately following "my $got;" is 
> always undef.
> > 
> > git-pull --squash seems to do what I want but know I get this when
> > committing to svn: 
> > git-svn commit remotes/git-svn..svn-branch
> > ...
> >         A       cpu/mpc824x/drivers/i2c_export.h
> >         A       cpu/mpc824x/drivers/i2o.h
> >         A       cpu/mpc824x/drivers/i2o/Makefile
> >         A       cpu/mpc824x/drivers/i2o/Makefile_pc
> > Cannot allocate memory at /usr/bin/git-svn line 1462
> > 3072 at /usr/bin/git-svn line 547
> >         
> main::commit_lib('2ff9bcb7908d2752f643695ab3a28f9ababfafab') 
> called at /usr/bin/git-svn line 457
> >         main::commit('remotes/git-svn..svn-branch') called 
> at /usr/bin/git-svn line 149
> 
> How large is the changeset you're committing?
> (git show --stat 2ff9bcb7908d2752f643695ab3a28f9ababfafab)

That gives me a huge listing that ends in:
 4306 files changed, 1194819 insertions(+), 0 deletions(-)

got some entries that look like this:
 board/MAI/bios_emulator/scitech/makedefs/qnxnto.mk |  157
 .../bios_emulator/scitech/makedefs/rules/bc16.mk   |   69
 .../bios_emulator/scitech/makedefs/rules/bc3.mk 

whats the ... for?
> 
> I actually have a fair amount of fork() hacks in git-svn to workaround
> leaks in the SVN:: libraries (hard to avoid otherwise in Perl).
> I haven't noticed (or looked for) file-descriptor leakage very heard,
> though.
> 
> Also, which version of git-svn are you running?  Also, which 
> version of
> Subversion (client library, and server (if possible) are you running?

git 1.4.2.3
subversion 1.3.2-r1

I will try upgrading to newer subverison.

distribution: Gentoo

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

* RE: git-svn and u-boot broken.
@ 2006-10-14 13:13 Joakim Tjernlund
  2006-10-14 21:09 ` Eric Wong
  0 siblings, 1 reply; 14+ messages in thread
From: Joakim Tjernlund @ 2006-10-14 13:13 UTC (permalink / raw)
  To: 'Eric Wong'; +Cc: 'Randal L. Schwartz', git

> > Also, which version of git-svn are you running?  Also, which 
> > version of
> > Subversion (client library, and server (if possible) are 
> you running?
> 
> git 1.4.2.3
> subversion 1.3.2-r1
> 
> I will try upgrading to newer subverison.

subversion 1.4.0 didn't help

PS.

I can't find the dcommit command in git-cvs, has it been removed?
if so, then the docs need an update.

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

* Re: git-svn and u-boot broken.
  2006-10-14 13:13 Joakim Tjernlund
@ 2006-10-14 21:09 ` Eric Wong
  2006-10-15  0:39   ` Joakim Tjernlund
  0 siblings, 1 reply; 14+ messages in thread
From: Eric Wong @ 2006-10-14 21:09 UTC (permalink / raw)
  To: Joakim Tjernlund; +Cc: git

Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
> > > Also, which version of git-svn are you running?  Also, which 
> > > version of
> > > Subversion (client library, and server (if possible) are 
> > you running?
> > 
> > git 1.4.2.3
> > subversion 1.3.2-r1
> > 
> > I will try upgrading to newer subverison.
> 
> subversion 1.4.0 didn't help
> 
> PS.
> 
> I can't find the dcommit command in git-cvs, has it been removed?
> if so, then the docs need an update.

You mean git-svn, right?  No, 'dcommit' has not been removed and I have
no plans to remove it.

-- 
Eric Wong

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

* Re: git-svn and u-boot broken.
  2006-10-14  9:51       ` Joakim Tjernlund
@ 2006-10-14 22:46         ` Eric Wong
  2006-10-14 22:48           ` [PATCH] git-svn: reduce memory usage for large commits Eric Wong
  2006-10-14 23:54           ` git-svn and u-boot broken Joakim Tjernlund
  0 siblings, 2 replies; 14+ messages in thread
From: Eric Wong @ 2006-10-14 22:46 UTC (permalink / raw)
  To: Joakim Tjernlund; +Cc: git

Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
> 
> > -----Original Message-----
> > From: Eric Wong [mailto:normalperson@yhbt.net] 
> > Sent: den 14 oktober 2006 08:28
> > To: Joakim Tjernlund
> > Cc: 'Randal L. Schwartz'; git@vger.kernel.org
> > Subject: Re: git-svn and u-boot broken.
> > 
> > Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
> > >  
> > > 
> > > > -----Original Message-----
> > > > From: Randal L. Schwartz [mailto:merlyn@stonehenge.com] 
> > > > Sent: den 13 oktober 2006 21:40
> > > > To: Joakim Tjernlund
> > > > Cc: git@vger.kernel.org
> > > > Subject: Re: git-svn and u-boot broken.
> > > > 
> > > > >>>>> "Joakim" == Joakim Tjernlund 
> > > > <joakim.tjernlund@transmode.se> writes:
> > > > 
> > > > Joakim> First, I had to change this (from memory) in git-svn:
> > > > Joakim>   my $got = SVN::TxDelta::send_stream($fh, @$atd, 
> > > > $self->{pool});
> > > > Joakim> to
> > > > Joakim>   my $got;
> > > > Joakim>   if ( $got ) {
> > > > Joakim>     $got = SVN::TxDelta::send_stream($fh, @$atd, 
> > > > $self->{pool});
> > > > Joakim>   } else {
> > > > Joakim>     $got = $exp
> > > > Joakim>   }
> > > > Joakim> I am no perl programmer so please change as you se fit.
> > 
> > With your correction following merlyn's comments, it could 
> > work[1].  I'm
> > curious as to what change git-svn printed right before 
> > hitting an error
> 
> from memory:
> Usage: svn_txdelta_send_stream(x,y,z,m)
 
> > here, and would like to see the files (before and after) that were
> > printed by git-svn.
> 
> Sorry, don't have that hande ATM

Could you publish your git repository for u-boot and also the
exact commands (if you have them) you used to attempt the import
into SVN?  Thanks.

> > I'm not sure what change would show up in git but cause 
> > apply_textdelta
> > to return undef...
> > 
> > [1] - I am tempted to apply a change based on yours, but this 
> > could just
> > be working around another bug somewhere else (either in git-svn or
> > subversion).
> > 
> > > > That doesn't make any sense.  You'll never run the if-true 
> > > > branch there.
> > > > The value of $got immediately following "my $got;" is 
> > always undef.
> > > 
> > > git-pull --squash seems to do what I want but know I get this when
> > > committing to svn: 
> > > git-svn commit remotes/git-svn..svn-branch
> > > ...
> > >         A       cpu/mpc824x/drivers/i2c_export.h
> > >         A       cpu/mpc824x/drivers/i2o.h
> > >         A       cpu/mpc824x/drivers/i2o/Makefile
> > >         A       cpu/mpc824x/drivers/i2o/Makefile_pc
> > > Cannot allocate memory at /usr/bin/git-svn line 1462
> > > 3072 at /usr/bin/git-svn line 547
> > >         
> > main::commit_lib('2ff9bcb7908d2752f643695ab3a28f9ababfafab') 
> > called at /usr/bin/git-svn line 457
> > >         main::commit('remotes/git-svn..svn-branch') called 
> > at /usr/bin/git-svn line 149
> > 
> > How large is the changeset you're committing?
> > (git show --stat 2ff9bcb7908d2752f643695ab3a28f9ababfafab)
> 
> That gives me a huge listing that ends in:
>  4306 files changed, 1194819 insertions(+), 0 deletions(-)

Yikes, that's a huge commit.  git-svn memory usage was bounded
for the size of each changeset, so yes, this could get nasty.
Patch coming in a reply to this message.

> got some entries that look like this:
>  board/MAI/bios_emulator/scitech/makedefs/qnxnto.mk |  157
>  .../bios_emulator/scitech/makedefs/rules/bc16.mk   |   69
>  .../bios_emulator/scitech/makedefs/rules/bc3.mk 
> 
> whats the ... for?

Long filename that couldn't fit on the (80 char width?) diffstat prints
out.

-- 
Eric Wong

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

* [PATCH] git-svn: reduce memory usage for large commits
  2006-10-14 22:46         ` Eric Wong
@ 2006-10-14 22:48           ` Eric Wong
  2006-10-14 23:54           ` git-svn and u-boot broken Joakim Tjernlund
  1 sibling, 0 replies; 14+ messages in thread
From: Eric Wong @ 2006-10-14 22:48 UTC (permalink / raw)
  To: Junio C Hamano, Joakim Tjernlund; +Cc: git

apply_textdelta and send_stream can use a separate pool from the
rest of the editor interface, so we'll use a separate SVN::Pool
for them and clear the pool after each file is sent to SVN.

This drastically reduces memory usage per-changeset committed,
and makes large commits (and initial imports) of several
thousand files possible.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
---
 git-svn.perl |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/git-svn.perl b/git-svn.perl
index 0f968c8..54d2356 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -3354,9 +3354,11 @@ sub chg_file {
 	seek $fh, 0, 0 or croak $!;
 
 	my $exp = $md5->hexdigest;
-	my $atd = $self->apply_textdelta($fbat, undef, $self->{pool});
-	my $got = SVN::TxDelta::send_stream($fh, @$atd, $self->{pool});
+	my $pool = SVN::Pool->new;
+	my $atd = $self->apply_textdelta($fbat, undef, $pool);
+	my $got = SVN::TxDelta::send_stream($fh, @$atd, $pool);
 	die "Checksum mismatch\nexpected: $exp\ngot: $got\n" if ($got ne $exp);
+	$pool->clear;
 
 	close $fh or croak $!;
 }
-- 
1.4.3.rc2.ge931

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

* RE: git-svn and u-boot broken.
  2006-10-14 22:46         ` Eric Wong
  2006-10-14 22:48           ` [PATCH] git-svn: reduce memory usage for large commits Eric Wong
@ 2006-10-14 23:54           ` Joakim Tjernlund
  1 sibling, 0 replies; 14+ messages in thread
From: Joakim Tjernlund @ 2006-10-14 23:54 UTC (permalink / raw)
  To: 'Eric Wong'; +Cc: git

> Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
> > 
> > > -----Original Message-----
> > > From: Eric Wong [mailto:normalperson@yhbt.net] 
> > > Sent: den 14 oktober 2006 08:28
> > > To: Joakim Tjernlund
> > > Cc: 'Randal L. Schwartz'; git@vger.kernel.org
> > > Subject: Re: git-svn and u-boot broken.
> > > 
> > > Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
> > > >  
> > > > 
> > > > > -----Original Message-----
> > > > > From: Randal L. Schwartz [mailto:merlyn@stonehenge.com] 
> > > > > Sent: den 13 oktober 2006 21:40
> > > > > To: Joakim Tjernlund
> > > > > Cc: git@vger.kernel.org
> > > > > Subject: Re: git-svn and u-boot broken.
> > > > > 
> > > > > >>>>> "Joakim" == Joakim Tjernlund 
> > > > > <joakim.tjernlund@transmode.se> writes:
> > > > > 
> > > > > Joakim> First, I had to change this (from memory) in git-svn:
> > > > > Joakim>   my $got = SVN::TxDelta::send_stream($fh, @$atd, 
> > > > > $self->{pool});
> > > > > Joakim> to
> > > > > Joakim>   my $got;
> > > > > Joakim>   if ( $got ) {
> > > > > Joakim>     $got = SVN::TxDelta::send_stream($fh, @$atd, 
> > > > > $self->{pool});
> > > > > Joakim>   } else {
> > > > > Joakim>     $got = $exp
> > > > > Joakim>   }
> > > > > Joakim> I am no perl programmer so please change as 
> you se fit.
> > > 
> > > With your correction following merlyn's comments, it could 
> > > work[1].  I'm
> > > curious as to what change git-svn printed right before 
> > > hitting an error
> > 
> > from memory:
> > Usage: svn_txdelta_send_stream(x,y,z,m)
>  
> > > here, and would like to see the files (before and after) that were
> > > printed by git-svn.
> > 
> > Sorry, don't have that hande ATM
> 
> Could you publish your git repository for u-boot and also the
> exact commands (if you have them) you used to attempt the import
> into SVN?  Thanks.

The git repo is a bit complicated as I don't have have anywhere
to put it. However I don't think you need it, just clone DENX u-boot repo
at git://www.denx.de/git/u-boot.git, it bails out before it gets to my
changes.

Here is the script I use to test with

REPO="file:///tmp/SVNuboot"
REPO_PATH="/tmp/SVNuboot"
GIT_REPO="/tmp/mygituboot"
ORG_REPO="/usr/local/src/u-boot"
rm -rf "$REPO_PATH"
rm -rf "$GIT_REPO"
svnadmin create "$REPO_PATH"
svn mkdir -m "initial repo layout" "$REPO"/trunk "$REPO"/branches "$REPO"/tags
mkdir -p "$GIT_REPO"
cd "$GIT_REPO"
git-svn init "$REPO"/trunk
echo  [user] >> .git/config
echo  name="jocke" >> .git/config
echo  email="Joakim.Tjernlund@transmode.se" >> .git/config
git-svn fetch
git checkout -b svn-branch remotes/git-svn
git-fetch "$ORG_REPO" tmcu2:tmcu
git-branch initial-uboot f5e0d03970409feb3c77ab0107d5dece6b7d45c9
git pull . initial-uboot
# --squash makes one large commit.
#git pull --squash . initial-uboot
#cg-commit -m "merge up to f5e0d03970409feb3c77ab0107d5dece6b7d45c9"


# without --squash one gets a SVN repo with lots of small commits(2)
git pull . initial-uboot
git-svn commit -q remotes/git-svn..svn-branch


(2)
 This fails currently with 
 git-svn commit -q remotes/git-svn..svn-branch
diff-tree 9030f4be0b324cb312cfecd86d4a7da04ffa99ee 8e9655f863246db60c51140153186acc2afdc855
Inappropriate ioctl for device at /usr/bin/git-svn line 1462
6400 at /usr/bin/git-svn line 1462
6400 at /usr/bin/git-svn line 547
        main::commit_lib('8e9655f863246db60c51140153186acc2afdc855', 'ef04a0aa2676738847bd69914cadac0b96d6e731',
'4d03a21f2329bb13a9661a23742ac0b77a7a76d5', 'f190c11b1f22ff766e046588e5a7bb55f28ae305', '182e10691f378987b53c64ee0347d542e4924ef6',
'527b5a511c804074eebfc08c9ae7860b6717da85', 'ea339205a94706d8b9170bbd89e8c1373df9a92f', '3ada834e30a0742991209140049035c626ccea85',
'feaedfcf84c92599c0b805f66cc8a628d82411f0', ...) called at /usr/bin/git-svn line 457
        main::commit('remotes/git-svn..svn-branch') called at /usr/bin/git-svn line 149
> 
> > > I'm not sure what change would show up in git but cause 
> > > apply_textdelta
> > > to return undef...
> > > 
> > > [1] - I am tempted to apply a change based on yours, but this 
> > > could just
> > > be working around another bug somewhere else (either in git-svn or
> > > subversion).
> > > 
> > > > > That doesn't make any sense.  You'll never run the if-true 
> > > > > branch there.
> > > > > The value of $got immediately following "my $got;" is 
> > > always undef.
> > > > 
> > > > git-pull --squash seems to do what I want but know I 
> get this when
> > > > committing to svn: 
> > > > git-svn commit remotes/git-svn..svn-branch
> > > > ...
> > > >         A       cpu/mpc824x/drivers/i2c_export.h
> > > >         A       cpu/mpc824x/drivers/i2o.h
> > > >         A       cpu/mpc824x/drivers/i2o/Makefile
> > > >         A       cpu/mpc824x/drivers/i2o/Makefile_pc
> > > > Cannot allocate memory at /usr/bin/git-svn line 1462
> > > > 3072 at /usr/bin/git-svn line 547
> > > >         
> > > main::commit_lib('2ff9bcb7908d2752f643695ab3a28f9ababfafab') 
> > > called at /usr/bin/git-svn line 457
> > > >         main::commit('remotes/git-svn..svn-branch') called 
> > > at /usr/bin/git-svn line 149
> > > 
> > > How large is the changeset you're committing?
> > > (git show --stat 2ff9bcb7908d2752f643695ab3a28f9ababfafab)
> > 
> > That gives me a huge listing that ends in:
> >  4306 files changed, 1194819 insertions(+), 0 deletions(-)
> 
> Yikes, that's a huge commit.  git-svn memory usage was bounded
> for the size of each changeset, so yes, this could get nasty.
> Patch coming in a reply to this message.

Thanks, will try that patch next.

  Jocke

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

* RE: git-svn and u-boot broken.
  2006-10-14 21:09 ` Eric Wong
@ 2006-10-15  0:39   ` Joakim Tjernlund
  2006-10-15  1:48     ` Eric Wong
  0 siblings, 1 reply; 14+ messages in thread
From: Joakim Tjernlund @ 2006-10-15  0:39 UTC (permalink / raw)
  To: 'Eric Wong'; +Cc: git

> 
> Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
> > > > Also, which version of git-svn are you running?  Also, which 
> > > > version of
> > > > Subversion (client library, and server (if possible) are 
> > > you running?
> > > 
> > > git 1.4.2.3
> > > subversion 1.3.2-r1
> > > 
> > > I will try upgrading to newer subverison.
> > 
> > subversion 1.4.0 didn't help
> > 
> > PS.
> > 
> > I can't find the dcommit command in git-cvs, has it been removed?
> > if so, then the docs need an update.
> 
> You mean git-svn, right?  No, 'dcommit' has not been removed 
> and I have
> no plans to remove it.

hmm, its it not released yet then? I don't have it in git 1.4.2.3

Also, I have difficulties to follow the docs on http://www.kernel.org/pub/software/scm/git/docs/git-svn.html

Any chance you can update it with more examples?
Especially one that show how one can do one big initial
commit then merge your own changes on top of that?

Something like this
REPO="file:///tmp/SVNuboot"
REPO_PATH="/tmp/SVNuboot"
GIT_REPO="/tmp/mygituboot"
ORG_REPO="/usr/local/src/u-boot"
rm -rf "$REPO_PATH"
rm -rf "$GIT_REPO"
svnadmin create "$REPO_PATH"
svn mkdir -m "initial repo layout" "$REPO"/trunk "$REPO"/branches "$REPO"/tags
mkdir -p "$GIT_REPO"
cd "$GIT_REPO"
git-svn init "$REPO"/trunk
echo  [user] >> .git/config
echo  name="jocke" >> .git/config
echo  email="Joakim.Tjernlund@transmode.se" >> .git/config
git-svn fetch
git checkout -b svn-branch remotes/git-svn
git-fetch "$ORG_REPO" tmcu2:tmcu
git-branch initial-uboot f5e0d03970409feb3c77ab0107d5dece6b7d45c9
git pull . initial-uboot
# --squash makes one large commit.
git pull --squash . initial-uboot
cg-commit -m "merge up to f5e0d03970409feb3c77ab0107d5dece6b7d45c9"
git-svn commit -q remotes/git-svn..svn-branch
git pull . tmcu # This doesn't work, I get merge conflicts
git-svn commit -q remotes/git-svn..svn-branch

Anyhow, I am glad to report that after applying your patch all my
problems with went away, no more Too many open file desc,  memory
alloc failed or Inappropriate ioctl for device, Thanks a lot.

 Jocke

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

* Re: git-svn and u-boot broken.
  2006-10-15  0:39   ` Joakim Tjernlund
@ 2006-10-15  1:48     ` Eric Wong
  2006-10-15  2:10       ` Joakim Tjernlund
  0 siblings, 1 reply; 14+ messages in thread
From: Eric Wong @ 2006-10-15  1:48 UTC (permalink / raw)
  To: Joakim Tjernlund; +Cc: git

Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
> > 
> > Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
> > > > > Also, which version of git-svn are you running?  Also, which 
> > > > > version of
> > > > > Subversion (client library, and server (if possible) are 
> > > > you running?
> > > > 
> > > > git 1.4.2.3
> > > > subversion 1.3.2-r1
> > > > 
> > > > I will try upgrading to newer subverison.
> > > 
> > > subversion 1.4.0 didn't help
> > > 
> > > PS.
> > > 
> > > I can't find the dcommit command in git-cvs, has it been removed?
> > > if so, then the docs need an update.
> > 
> > You mean git-svn, right?  No, 'dcommit' has not been removed 
> > and I have
> > no plans to remove it.
> 
> hmm, its it not released yet then? I don't have it in git 1.4.2.3

Hm... guess not.  I track master on git.git.  1.4.3 should be released
pretty soon, and should have dcommit.

> Also, I have difficulties to follow the docs on
> http://www.kernel.org/pub/software/scm/git/docs/git-svn.html

The most-up-to-date documentation is available here:

http://git-svn.bogomips.org/git-svn.html

> Any chance you can update it with more examples?
> Especially one that show how one can do one big initial
> commit then merge your own changes on top of that?

Hmm.. large imports from git to svn can get confusing, and generally
aren't very useful on the svn side since history gets flattened.
So I generally don't recommend importing complete git histories into
svn.

> Something like this
> REPO="file:///tmp/SVNuboot"
> REPO_PATH="/tmp/SVNuboot"
> GIT_REPO="/tmp/mygituboot"
> ORG_REPO="/usr/local/src/u-boot"
> rm -rf "$REPO_PATH"
> rm -rf "$GIT_REPO"
> svnadmin create "$REPO_PATH"
> svn mkdir -m "initial repo layout" "$REPO"/trunk "$REPO"/branches "$REPO"/tags
> mkdir -p "$GIT_REPO"
> cd "$GIT_REPO"
> git-svn init "$REPO"/trunk
> echo  [user] >> .git/config
> echo  name="jocke" >> .git/config
> echo  email="Joakim.Tjernlund@transmode.se" >> .git/config
> git-svn fetch
> git checkout -b svn-branch remotes/git-svn
> git-fetch "$ORG_REPO" tmcu2:tmcu
> git-branch initial-uboot f5e0d03970409feb3c77ab0107d5dece6b7d45c9
> git pull . initial-uboot
> # --squash makes one large commit.
> git pull --squash . initial-uboot
> cg-commit -m "merge up to f5e0d03970409feb3c77ab0107d5dece6b7d45c9"
> git-svn commit -q remotes/git-svn..svn-branch
> git pull . tmcu # This doesn't work, I get merge conflicts
> git-svn commit -q remotes/git-svn..svn-branch
> 
> Anyhow, I am glad to report that after applying your patch all my
> problems with went away, no more Too many open file desc,  memory
> alloc failed or Inappropriate ioctl for device, Thanks a lot.

Cool, good to know.  It seems like the apply_textdelta returning undef
was a result of memory allocation failures, then.

-- 
Eric Wong

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

* RE: git-svn and u-boot broken.
  2006-10-15  1:48     ` Eric Wong
@ 2006-10-15  2:10       ` Joakim Tjernlund
  0 siblings, 0 replies; 14+ messages in thread
From: Joakim Tjernlund @ 2006-10-15  2:10 UTC (permalink / raw)
  To: 'Eric Wong'; +Cc: git

> 
> Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
> > > 
> > > Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
> > > > > > Also, which version of git-svn are you running?  
> Also, which 
> > > > > > version of
> > > > > > Subversion (client library, and server (if possible) are 
> > > > > you running?
> > > > > 
> > > > > git 1.4.2.3
> > > > > subversion 1.3.2-r1
> > > > > 
> > > > > I will try upgrading to newer subverison.
> > > > 
> > > > subversion 1.4.0 didn't help
> > > > 
> > > > PS.
> > > > 
> > > > I can't find the dcommit command in git-cvs, has it 
> been removed?
> > > > if so, then the docs need an update.
> > > 
> > > You mean git-svn, right?  No, 'dcommit' has not been removed 
> > > and I have
> > > no plans to remove it.
> > 
> > hmm, its it not released yet then? I don't have it in git 1.4.2.3
> 
> Hm... guess not.  I track master on git.git.  1.4.3 should be released
> pretty soon, and should have dcommit.

OK, please add some examples on how to use dcommit.
Also, consider adding what options are supported for each command
in the COMMAND section.

> 
> > Also, I have difficulties to follow the docs on
> > http://www.kernel.org/pub/software/scm/git/docs/git-svn.html
> 
> The most-up-to-date documentation is available here:
> 
> http://git-svn.bogomips.org/git-svn.html
> 
> > Any chance you can update it with more examples?
> > Especially one that show how one can do one big initial
> > commit then merge your own changes on top of that?
> 
> Hmm.. large imports from git to svn can get confusing, and generally
> aren't very useful on the svn side since history gets flattened.
> So I generally don't recommend importing complete git histories into
> svn.

Yes, that's what I am trying to avoid below. Basically I want to commit to SVN the
whole u-boot tree as one commit up to the point where I started to do my changes.
Then I want my changes per commit on top of that. However I don't want to loose the
ability to merge/pull in future updates from denx u-boot tree.

I just don't know how to do it, the script below fails when it tries to 
pull the rest of the tree. Any ideas?

> 
> > Something like this
> > REPO="file:///tmp/SVNuboot"
> > REPO_PATH="/tmp/SVNuboot"
> > GIT_REPO="/tmp/mygituboot"
> > ORG_REPO="/usr/local/src/u-boot"
> > rm -rf "$REPO_PATH"
> > rm -rf "$GIT_REPO"
> > svnadmin create "$REPO_PATH"
> > svn mkdir -m "initial repo layout" "$REPO"/trunk 
> "$REPO"/branches "$REPO"/tags
> > mkdir -p "$GIT_REPO"
> > cd "$GIT_REPO"
> > git-svn init "$REPO"/trunk
> > echo  [user] >> .git/config
> > echo  name="jocke" >> .git/config
> > echo  email="Joakim.Tjernlund@transmode.se" >> .git/config
> > git-svn fetch
> > git checkout -b svn-branch remotes/git-svn
> > git-fetch "$ORG_REPO" tmcu2:tmcu
> > git-branch initial-uboot f5e0d03970409feb3c77ab0107d5dece6b7d45c9
> > git pull . initial-uboot
> > # --squash makes one large commit.
> > git pull --squash . initial-uboot
> > cg-commit -m "merge up to f5e0d03970409feb3c77ab0107d5dece6b7d45c9"
> > git-svn commit -q remotes/git-svn..svn-branch
> > git pull . tmcu # This doesn't work, I get merge conflicts
> > git-svn commit -q remotes/git-svn..svn-branch
> > 
> > Anyhow, I am glad to report that after applying your patch all my
> > problems with went away, no more Too many open file desc,  memory
> > alloc failed or Inappropriate ioctl for device, Thanks a lot.
> 
> Cool, good to know.  It seems like the apply_textdelta returning undef
> was a result of memory allocation failures, then.

Or possibly the older subversion I used(1.3.2), now I am on 1.4.0 

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

end of thread, other threads:[~2006-10-15  2:12 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-13 19:19 git-svn and u-boot broken Joakim Tjernlund
2006-10-13 19:39 ` Randal L. Schwartz
2006-10-13 19:43   ` Joakim Tjernlund
2006-10-14  1:21   ` Joakim Tjernlund
2006-10-14  6:28     ` Eric Wong
2006-10-14  9:51       ` Joakim Tjernlund
2006-10-14 22:46         ` Eric Wong
2006-10-14 22:48           ` [PATCH] git-svn: reduce memory usage for large commits Eric Wong
2006-10-14 23:54           ` git-svn and u-boot broken Joakim Tjernlund
  -- strict thread matches above, loose matches on Subject: below --
2006-10-14 13:13 Joakim Tjernlund
2006-10-14 21:09 ` Eric Wong
2006-10-15  0:39   ` Joakim Tjernlund
2006-10-15  1:48     ` Eric Wong
2006-10-15  2:10       ` Joakim Tjernlund

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).