git/list[1] front-page[2] threads[3] people[4] search[5] about
 

RE: git-svn and u-boot broken.

From
JTJoakim Tjernlund <joakim.tjernlund@transmode.se>
Date
Oct 14, 2006, 23:54 UTC
Message-ID
<00f901c6efec$07fdc630$1267a8c0@Jocke>
In-Reply-To
<20061014224636.GA12565@soma>
Show 52 quoted lines
> 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
Show 41 quoted lines
> 
> > > 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
Previous: Eric Wong
Message 9 of 9 in “git-svn and u-boot broken.”
  1. Joakim TjernlundOct 13, 2006
  2. Randal L. SchwartzOct 13, 2006
  3. Joakim TjernlundOct 13, 2006
  4. Joakim TjernlundOct 14, 2006
  5. Eric WongOct 14, 2006
  6. Joakim TjernlundOct 14, 2006
  7. Eric WongOct 14, 2006
  8. git-svn: reduce memory usage for large commitsEric Wong, Oct 14, 2006
  9. Joakim TjernlundOct 14, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.