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

Re: GSOC Proposal draft: git-remote-svn

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Apr 10, 2012, 23:46 UTC
Message-ID
<20120410234622.GB11506@burratino>
In-Reply-To
<4F84B47D.1080301@pileofstuff.org>
Andrew Sayers wrote:
> Just to be clear, my understanding is that this project will take SBL
> created by another program (that I'm writing) and create branches as
> specified.

If that seems like the right thing to do for the people involved (Florian and mentor, list consensus) and if that's easy. I'm happy as long as the default configuration works well with sane repositories.

[...]
> On 10/04/12 18:17, Jonathan Nieder wrote:
Show 6 quoted lines
>>    How should the importer handle Subversion copy commands that
>>    refer to other projects in this case?
>
> This is a good point.  I've just svnadmin and svnrdump, and it turns out
> svnadmin doesn't allow you to dump a subtree while svnrdump strips out
> the offending copy commands, so either way there's nothing to be done.
>From a quick test, it looks like svnrdump converts a directory copy
into the addition of its contents.  Good.
svndumpfilter produces
	svndumpfilter: E200003: Invalid copy source path '/branches/foo/subdir'
and exits with status 1 so it seems like we're ok.
[...]
Show 5 quoted lines
>>  . tracing history past branch creation events, using the now-saved
>>    copyfrom information.
>
> I'm not sure if I understand correctly, but I think you're referring to
> this edge case:
Nope, I'm talking about the most typical and boring case there is:
	svn cp <repo>/trunk <repo>/branches/topic

When cloning <repo>, it seems reasonable to expect that the ancestry of the trunk and branch would not be shown as disjoint linear histories, but that the revision in which the branch was introduced would be shown as a child of the previous revision of the trunk, like so:

	              o --- o --- o [topic]
	             /
	o --- o --- o --- o --- o --- o [trunk]
This requires paying attention to copyfrom information.
[...]
Show 6 quoted lines
> Right now I have a script that first takes an SVN dump and produces
> gzipped JSON as output, then takes the gzipped JSON as input and
> produces an SBL file as output.  The first round will generally only
> need to be run once (and is comparable to svn-fe in speed), whereas the
> second round might need to be run an arbitrary number of times (but is
> very fast).

For what it's worth, for importing from repositories that use a nonstandard layout I do think this "start with a quick pass to figure the layout out" approach is a sane one.

[...]
Show 6 quoted lines
> I'm currently focussing on bringing all the modules up to release
> quality, so that I can have something for Florian to play with in the
> near future.  This should have an interface that is mature but flexible,
> so I can change the interface to make his life easier but won't need to
> change the interface because I missed something.  After that, I'll
> concentrate on improving the quality of the SBL output.
Neat.

Thanks for some useful clarifications. Jonathan

Previous: Andrew SayersNext: Florian Achleitner
Message 26 of 46 in “GSoC intro”
  1. Florian AchleitnerMar 19, 2012
  2. Andrew SayersMar 19, 2012
  3. Florian AchleitnerMar 20, 2012
  4. David BarrMar 20, 2012
  5. Florian AchleitnerMar 21, 2012
  6. Ramkumar RamachandraMar 26, 2012
  7. Florian AchleitnerMar 27, 2012
  8. GSOC Proposal draft: git-remote-svnFlorian Achleitner, Apr 2, 2012
  9. Ramkumar RamachandraApr 2, 2012
  10. Jonathan NiederApr 2, 2012
  11. Jonathan NiederApr 2, 2012
  12. Florian AchleitnerApr 3, 2012
  13. Jonathan NiederApr 3, 2012
  14. Tomas CarneckyApr 5, 2012
  15. Andrew SayersApr 2, 2012
  16. Jonathan NiederApr 2, 2012
  17. Andrew SayersApr 2, 2012
  18. Jonathan NiederApr 3, 2012
  19. Andrew SayersApr 3, 2012
  20. Jonathan NiederApr 3, 2012
  21. Florian AchleitnerApr 5, 2012
  22. Dmitry IvankovApr 5, 2012
  23. Stephen BashApr 9, 2012
  24. Jonathan NiederApr 10, 2012
  25. Andrew SayersApr 10, 2012
  26. Jonathan NiederApr 10, 2012
  27. Florian AchleitnerApr 11, 2012
  28. Andrew SayersApr 14, 2012
  29. Jakub NarebskiApr 11, 2012
  30. Jonathan NiederApr 11, 2012
  31. Florian AchleitnerApr 11, 2012
  32. Dmitry IvankovApr 11, 2012
  33. Jonathan NiederApr 11, 2012
  34. Andrew SayersApr 11, 2012
  35. Thomas RastApr 12, 2012
  36. Florian AchleitnerApr 12, 2012
  37. Andrew SayersApr 12, 2012
  38. Florian AchleitnerApr 14, 2012
  39. Andrew SayersApr 14, 2012
  40. Stephen BashApr 15, 2012
  41. Jonathan NiederApr 13, 2012
  42. Florian AchleitnerApr 14, 2012
  43. Florian AchleitnerApr 18, 2012
  44. Florian AchleitnerApr 19, 2012
  45. Miles BaderMar 28, 2012
  46. Dmitry IvankovMar 28, 2012

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.