threads / discuss / 24373

[GSoC update] git-remote-svn: Week 11

Subject: [GSoC update] git-remote-svn: Week 11

## tl;dr

7 messages between Jul 12, 2010 and Jul 14, 2010.

replies: 6people: 4as markdown or json

Ramkumar Ramachandra· Jul 12, 2010, 14:35 UTC · lore
Hi,

I'm happy to report that I'll soon be getting partial committer access to the ASF repository (thanks to Greg for this) and will be able to commit the svnrdump there. At the moment, all the validations pass without any issues and I've shifted my focus towards writing a dumpfile v3 parser [1] to get the data into David's exporter. I will re-roll a series for git.git in some time again after I've fixed a few pending things pointed out by Jonathan in his excellent reviews and merged a few patches from Will; although this isn't top priority, it will be pretty painful for Git developers to compile the SVN trunk even if they want to try out git-remote-svn.

Currently, I'm implementing svndiff0 parser component of the dumpfile v3 parser using Sam's Perl implementation [2] as a guideline. In addition, with an excellent specification present in the Subversion trunk [3], this shouldn't be a problem.

-- Ram

[1]: dumpfilev3 branch of http://github.com/artagnon/svn-dump-fast-export/ [2]: http://search.cpan.org/~samv/Parse-SVNDiff/ [3]: http://svn.apache.org/repos/asf/subversion/trunk/notes/svndiff

Michael J Gruber· Jul 12, 2010, 14:48 UTC · re: Ramkumar Ramachandra · lore

Re: [GSoC update] git-remote-svn: Week 11

Ramkumar Ramachandra venit, vidit, dixit 12.07.2010 16:35:
Show 12 quoted lines
> Hi,
> 
> I'm happy to report that I'll soon be getting partial committer access
> to the ASF repository (thanks to Greg for this) and will be able to
> commit the svnrdump there. At the moment, all the validations pass
> without any issues and I've shifted my focus towards writing a
> dumpfile v3 parser [1] to get the data into David's exporter. I will
> re-roll a series for git.git in some time again after I've fixed a few
> pending things pointed out by Jonathan in his excellent reviews and
> merged a few patches from Will; although this isn't top priority, it
> will be pretty painful for Git developers to compile the SVN trunk
> even if they want to try out git-remote-svn.

While this is certainly true for the "compilation" part, at least getting the source is a snap for us:

git://git.apache.org/subversion.git git://github.com/apache/subversion.git

:)
Michael
Stefan Sperling· Jul 12, 2010, 15:24 UTC · re: Michael J Gruber · lore

Re: [GSoC update] git-remote-svn: Week 11

On Mon, Jul 12, 2010 at 04:48:40PM +0200, Michael J Gruber wrote:
Show 8 quoted lines
> Ramkumar Ramachandra venit, vidit, dixit 12.07.2010 16:35:
> > it will be pretty painful for Git developers to compile the SVN trunk
> 
> While this is certainly true for the "compilation" part, at least
> getting the source is a snap for us:
> 
> git://git.apache.org/subversion.git
> git://github.com/apache/subversion.git

Regarding compilation, take a look at tools/dev/unix-build/Makefile.svn in the Subversion tree. Possibly the most painful thing for git devs is that you'll need an svn binary somewhere in PATH, but any version will do. Then create an empty directory (say, ~/svn), copy the Makefile in there, and run make (requires GNU make). That will download and compile Subversion from trunk, including various dependencies. If all goes well, binaries (with debug symbols) end up in ~/svn/prefix/

On Linux, -devel packages for a couple of libaries may be needed (most likely openssl, zlib, expat, libproxy).

Stefan
Will Palmer· Jul 12, 2010, 15:39 UTC · re: Stefan Sperling · lore

Re: [GSoC update] git-remote-svn: Week 11

On Mon, 2010-07-12 at 17:24 +0200, Stefan Sperling wrote:
Show 22 quoted lines
> On Mon, Jul 12, 2010 at 04:48:40PM +0200, Michael J Gruber wrote:
> > Ramkumar Ramachandra venit, vidit, dixit 12.07.2010 16:35:
> > > it will be pretty painful for Git developers to compile the SVN trunk
> > 
> > While this is certainly true for the "compilation" part, at least
> > getting the source is a snap for us:
> > 
> > git://git.apache.org/subversion.git
> > git://github.com/apache/subversion.git
> 
> Regarding compilation, take a look at tools/dev/unix-build/Makefile.svn
> in the Subversion tree. Possibly the most painful thing for git devs is
> that you'll need an svn binary somewhere in PATH, but any version will do.
> Then create an empty directory (say, ~/svn), copy the Makefile in there,
> and run make (requires GNU make). That will download and compile Subversion
> from trunk, including various dependencies.
> If all goes well, binaries (with debug symbols) end up in ~/svn/prefix/
> 
> On Linux, -devel packages for a couple of libaries may be needed
> (most likely openssl, zlib, expat, libproxy).
> 
> Stefan

This is all moot, because the whole point is that svndumpr compiles against libsvn, so you don't need the whole svn source-tree. All you need to get svndumpr working are some header files and a working libsvn. Everyone who currently uses git-svn already has a working libsvn, since perl's svn bindings wrap around libsvn anyway.

Ramkumar Ramachandra· Jul 12, 2010, 18:12 UTC · re: Will Palmer · lore

Re: [GSoC update] git-remote-svn: Week 11

Hi,
Will Palmer writes:
Show 5 quoted lines
> This is all moot, because the whole point is that svndumpr compiles
> against libsvn, so you don't need the whole svn source-tree. All you
> need to get svndumpr working are some header files and a working libsvn.
> Everyone who currently uses git-svn already has a working libsvn, since
> perl's svn bindings wrap around libsvn anyway.

Yes, I meant that people will need the complete Subversion tree if I DON'T get svnrdump merged somewhere in git.git (I'll attempt to get the version that compiles against libsvn 1.6 merged). The instructions to checkout the right branches and place it in the git tree can be complicated: git-remote-svn relies on a chain of tools including David's exporter and svnrdump to work.

-- Ram
Stefan Sperling· Jul 14, 2010, 08:58 UTC · re: Will Palmer · lore

Re: [GSoC update] git-remote-svn: Week 11

On Mon, Jul 12, 2010 at 04:39:51PM +0100, Will Palmer wrote:
> On Mon, 2010-07-12 at 17:24 +0200, Stefan Sperling wrote:
> > Regarding compilation, take a look at tools/dev/unix-build/Makefile.svn
> This is all moot, because the whole point is that svndumpr compiles
> against libsvn, so you don't need the whole svn source-tree.

It's not moot. svndumpr may now or in the future be using API calls which are specific to the Subversion 1.7 libraries, in which case you'll need to compile Subversion from trunk to get compatible libraries until 1.7 is released. Maybe Ramkumar wants to maintain a 1.6.x-specific version you can use, but that won't be living in our repository anyway.

Stefan
Michael J Gruber· Jul 12, 2010, 16:00 UTC · re: Stefan Sperling · lore

Re: [GSoC update] git-remote-svn: Week 11

Stefan Sperling venit, vidit, dixit 12.07.2010 17:24:
Show 22 quoted lines
> On Mon, Jul 12, 2010 at 04:48:40PM +0200, Michael J Gruber wrote:
>> Ramkumar Ramachandra venit, vidit, dixit 12.07.2010 16:35:
>>> it will be pretty painful for Git developers to compile the SVN trunk
>>
>> While this is certainly true for the "compilation" part, at least
>> getting the source is a snap for us:
>>
>> git://git.apache.org/subversion.git
>> git://github.com/apache/subversion.git
> 
> Regarding compilation, take a look at tools/dev/unix-build/Makefile.svn
> in the Subversion tree. Possibly the most painful thing for git devs is
> that you'll need an svn binary somewhere in PATH, but any version will do.
> Then create an empty directory (say, ~/svn), copy the Makefile in there,
> and run make (requires GNU make). That will download and compile Subversion
> from trunk, including various dependencies.
> If all goes well, binaries (with debug symbols) end up in ~/svn/prefix/
> 
> On Linux, -devel packages for a couple of libaries may be needed
> (most likely openssl, zlib, expat, libproxy).
> 
> Stefan

That Makefile pulls in (and compiles) a lot of stuff which may or may not be what you want.

In terms of Git development, I prefer a Git checkout (rather than a svn checkout) of the subversion code where I can bisect happily. Fulfilling most dependencies using devel packages was not a real problem (Fedora 13), just an iterative process...

The most painful part is that older svns (e.g. 1.4.6) don't seem to like newer autoconf (2.65) so that compatibility testing gets difficult, especially because (due to the branch structure of the code) merge bases of, say, 1.5.0 and trunk go quite a way back (1.5.0~955).

Michael

← back to recent threads