[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r1583639 [1/3] - in /subversion/branches/ra-git: ./ build/ac-macros/ subversion/include/ subversion/libsvn_client/ subversion/libsvn_ra/ subversion/libsvn_ra_git/ tools/dev/unix-build/

From: Stefan Sperling <stsp_at_apache.org>
Date: Tue, 1 Apr 2014 14:15:43 +0200

On Tue, Apr 01, 2014 at 11:51:43AM -0000, stsp_at_apache.org wrote:
> Author: stsp
> Date: Tue Apr 1 11:51:43 2014
> New Revision: 1583639
>
> URL: http://svn.apache.org/r1583639
> Log:
> Create the ra-git branch: git repository access for Suversion
>
> This allows Subversion clients to interact with git repositories,
> paving the way towards better integration of both systems.
>
> This code originated in a private git repository maintained by me and Carlos.
> Due to popular demand we're now moving development of this library to
> svn.apache.org. Since the Subversion project has finally been convinced
> that git has the better backend[1], we hope to accelerate development of
> the git repository access layer by joining forces on this project with
> the other SVN and libgit2 developers.
>
> [1] https://issues.apache.org/jira/browse/INFRA-7524
>
> We hope to get libsvn_ra_git production ready in time for Subversion 1.9.0.
>
> The long-term intention is that git will become the default repository
> backend for Subversion 1.10 and later, lifting much of the burden of
> backend development off the SVN team. BDB has already been deprecated in
> 1.8 because of this burden. Development of the FSFS successor FSX has been
> slower than anticipated but FSX will stay as an optional backend in case
> empirical data demonstrates that it outperforms git in large deployments.
> But the default migration path for the current FSFS userbase will be git.
>
> See the BRANCH-README for design and implementation notes and a list
> of remaining TODO items.

For those who are going to test/review this:

I forgot to mention that we currently use libgit-0.20.0 as our base.
A different version of libgit2 might not work as expected.

Building libgit2 is a breeze, by the way. It has a very portable
cmake-based build system and no externals dependencies (except
libssh, but that isn't yet supported by ra-git anyway).

Have fun!

For those interested, here's a "screenshot" of the action:

$ svn checkout git+https://github.com/carlosmn/jagged
DBG: ra_plugin.c: 952: creating git repos in '/tmp/svn-HGOtGH'
DBG: ra_plugin.c: 144: trying remote url 'https://github.com/carlosmn/jagged'
DBG: ra_plugin.c: 191: found remote url 'https://github.com/carlosmn/jagged', fs_path: ''
DBG: ra_plugin.c: 213: fetching from https://github.com/carlosmn/jagged
DBG: ra_plugin.c: 628: Counting objects: 670, done.
DBG: ra_plugin.c: 628:
DBG: ra_plugin.c: 628: Compressing objects: 100% (351/351), done.
DBG: ra_plugin.c: 628:
DBG: ra_plugin.c: 648: objects: 670 total 670 indexed 670 received 0 local, deltas: 171 total 171 indexed, 1274089 bytes received
DBG: ra_plugin.c: 661: update refs/remotes/origin/master
DBG: ra_plugin.c: 242: scanning git commits...
DBG: ra_plugin.c: 272: r1 -> 6ad856118a0f42e4ea82b0d3ef70f39983aa19d7
DBG: ra_plugin.c: 272: r2 -> 1396344f68f5699bd7008c575ea7dd2b8f124c02
DBG: ra_plugin.c: 272: r3 -> 02299b15b2fa4df1203349245558acee7d5cfe75
DBG: ra_plugin.c: 272: r4 -> 7f589e38136c94ff838fce17f6b15ff4ad6391b9
DBG: ra_plugin.c: 272: r5 -> 35972242ef82ac0f587ca335a1769e61c2831e08
DBG: ra_plugin.c: 272: r6 -> 40b6fc0744fcc44419b4a6652a20b710a3d2db7d
DBG: ra_plugin.c: 272: r7 -> b1dafc5459544d29605cc89654e12953537be950
DBG: ra_plugin.c: 272: r8 -> d5ac4160703d4f7d769f0b31ca29875583ccec8c
DBG: ra_plugin.c: 272: r9 -> b2780bd85748fc3f7d9a1d0b26da69d1b322a5ce
DBG: ra_plugin.c: 272: r10 -> e498f545c9469d29e21de15338aa7ddef51df63c
DBG: ra_plugin.c: 272: r11 -> b41dc899b020fcc776ae44c896c220dca9345538
DBG: ra_plugin.c: 272: r12 -> 3769e9508a4e50fec3c912b497bfe486adbf09cb
DBG: ra_plugin.c: 272: r13 -> 400f30f3a451855d9b42d4a5e7e6ae0f13ab5810
DBG: ra_plugin.c: 272: r14 -> 843557ed5c9ecf7044449fe58bed538aa31c291a
DBG: ra_plugin.c: 272: r15 -> 4f6567d5655f782503d41d0e702a36fce1f2827c
DBG: ra_plugin.c: 272: r16 -> 212461b0ac473b6cffc48d65a00250d71d9e9f3b
DBG: ra_plugin.c: 272: r17 -> 54fe89bbe52aaf3dc9d9a38963735a4a31860ae8
DBG: ra_plugin.c: 272: r18 -> 891727fa17a953bcf686d59beeeb8b886a37a93c
DBG: ra_plugin.c: 272: r19 -> c0971512a155a7efc819bb534df20092dd62d838
DBG: ra_plugin.c: 272: r20 -> 0211055f2766fddb58da64fac6f5b35814d3dfe8
DBG: ra_plugin.c: 272: r21 -> ffecc89926ebb8ea947caa89d7e9cf4f29f2361a
DBG: ra_plugin.c: 272: r22 -> 0a9109b7950a26fc734e9ccdefab0e510506b345
DBG: ra_plugin.c: 272: r23 -> fdd11adc6615331c94aba142a3b7f2a2875f44b5
DBG: ra_plugin.c: 272: r24 -> 144af3a9e22f0fa05ac3539766b2f8e8d51bdfc7
DBG: ra_plugin.c: 272: r25 -> c08e6a2821558bda74eed4378476bf9d54362145
DBG: ra_plugin.c: 272: r26 -> 503094b8bd84187e6412a05621b8fbb81f9072f9
DBG: ra_plugin.c: 272: r27 -> 892ebc2709dec722e389d796d347ad7adf15091d
DBG: ra_plugin.c: 272: r28 -> a3c4a52d5ba910252131cb57b13f14ddab8514d2
DBG: ra_plugin.c: 279: done scanning git commits (28 revisions)
A jagged/.gitignore
A jagged/.travis.yml
A jagged/scripts
A jagged/scripts/build.sh
A jagged/scripts/build.cmd
A jagged/scripts/arch.mk
A jagged/src
A jagged/src/main
A jagged/src/main/native
A jagged/src/main/native/libjagged
A jagged/src/main/native/libjagged/util.h
A jagged/src/main/native/libjagged/exception.h
A jagged/src/main/native/libjagged/reference.h
A jagged/src/main/native/libjagged/repository.h
A jagged/src/main/native/libjagged/object.c
A jagged/src/main/native/libjagged/misc.c
A jagged/src/main/native/libjagged/CMakeLists.txt
A jagged/src/main/native/libjagged/reference.c
A jagged/src/main/native/libjagged/repository.c
A jagged/src/main/native/libjagged/global.c
A jagged/src/main/native/libjagged/oid.h
A jagged/src/main/java
A jagged/src/main/java/org
A jagged/src/main/java/org/libgit2
A jagged/src/main/java/org/libgit2/jagged
A jagged/src/main/java/org/libgit2/jagged/TreeEntry.java
A jagged/src/main/java/org/libgit2/jagged/ObjectId.java
A jagged/src/main/java/org/libgit2/jagged/DetachedHead.java
A jagged/src/main/java/org/libgit2/jagged/Mode.java
A jagged/src/main/java/org/libgit2/jagged/Version.java
A jagged/src/main/java/org/libgit2/jagged/Commit.java
A jagged/src/main/java/org/libgit2/jagged/Capabilities.java
A jagged/src/main/java/org/libgit2/jagged/Options.java
A jagged/src/main/java/org/libgit2/jagged/Branch.java
A jagged/src/main/java/org/libgit2/jagged/Reference.java
A jagged/src/main/java/org/libgit2/jagged/FilteringOptions.java
A jagged/src/main/java/org/libgit2/jagged/ConfigurationLevel.java
A jagged/src/main/java/org/libgit2/jagged/Tree.java
A jagged/src/main/java/org/libgit2/jagged/Signature.java
A jagged/src/main/java/org/libgit2/jagged/ObjectType.java
A jagged/src/main/java/org/libgit2/jagged/core
A jagged/src/main/java/org/libgit2/jagged/core/GitError.java
A jagged/src/main/java/org/libgit2/jagged/core/NativeLoader.java
A jagged/src/main/java/org/libgit2/jagged/core/HashCode.java
A jagged/src/main/java/org/libgit2/jagged/core/BlobMetadata.java
A jagged/src/main/java/org/libgit2/jagged/core/GitErrorType.java
A jagged/src/main/java/org/libgit2/jagged/core/Lazy.java
A jagged/src/main/java/org/libgit2/jagged/core/ReferenceType.java
A jagged/src/main/java/org/libgit2/jagged/core/Ensure.java
A jagged/src/main/java/org/libgit2/jagged/core/GitException.java
A jagged/src/main/java/org/libgit2/jagged/core/NativeHandle.java
A jagged/src/main/java/org/libgit2/jagged/core/BlobFilteredContentStream.java
A jagged/src/main/java/org/libgit2/jagged/core/Platform.java
A jagged/src/main/java/org/libgit2/jagged/core/BlobContentStream.java
A jagged/src/main/java/org/libgit2/jagged/core/CommitMetadata.java
A jagged/src/main/java/org/libgit2/jagged/core/NativeMethods.java
A jagged/src/main/java/org/libgit2/jagged/ReferenceCollection.java
A jagged/src/main/java/org/libgit2/jagged/GitObject.java
A jagged/src/main/java/org/libgit2/jagged/Blob.java
A jagged/src/main/java/org/libgit2/jagged/Repository.java
A jagged/src/test
A jagged/src/test/java
A jagged/src/test/java/org
A jagged/src/test/java/org/libgit2
A jagged/src/test/java/org/libgit2/jagged
A jagged/src/test/java/org/libgit2/jagged/BlobTest.java
A jagged/src/test/java/org/libgit2/jagged/ReferenceTest.java
A jagged/src/test/java/org/libgit2/jagged/RepositoryTest.java
A jagged/src/test/java/org/libgit2/jagged/TreeTest.java
A jagged/src/test/java/org/libgit2/jagged/GitTest.java
A jagged/src/test/java/org/libgit2/jagged/ObjectIdTest.java
A jagged/src/test/java/org/libgit2/jagged/VersionTest.java
A jagged/src/test/java/org/libgit2/jagged/CommitTest.java
A jagged/src/test/java/org/libgit2/jagged/core
A jagged/src/test/java/org/libgit2/jagged/core/NativeTestMethods.java
A jagged/src/test/java/org/libgit2/jagged/core/ExceptionTest.java
A jagged/src/test/java/org/libgit2/jagged/CapabilitiesTest.java
A jagged/src/test/java/org/libgit2/jagged/OptionsTest.java
A jagged/src/test/native
A jagged/src/test/native/libjagged_test
A jagged/src/test/native/libjagged_test/CMakeLists.txt
A jagged/src/test/native/libjagged_test/exception.c
A jagged/src/test/resources
A jagged/src/test/resources/testrepo
A jagged/src/test/resources/testrepo/.gitted
A jagged/src/test/resources/testrepo/.gitted/HEAD
A jagged/src/test/resources/testrepo/.gitted/description
A jagged/src/test/resources/testrepo/.gitted/logs
A jagged/src/test/resources/testrepo/.gitted/logs/HEAD
A jagged/src/test/resources/testrepo/.gitted/logs/refs
A jagged/src/test/resources/testrepo/.gitted/logs/refs/heads
A jagged/src/test/resources/testrepo/.gitted/logs/refs/heads/master
A jagged/src/test/resources/testrepo/.gitted/config
A jagged/src/test/resources/testrepo/.gitted/index
A jagged/src/test/resources/testrepo/.gitted/objects
A jagged/src/test/resources/testrepo/.gitted/objects/05
A jagged/src/test/resources/testrepo/.gitted/objects/05/5fe18dd1aef07991ebd08b4d54fc761dd022fb
A jagged/src/test/resources/testrepo/.gitted/objects/d1
A jagged/src/test/resources/testrepo/.gitted/objects/d1/796967d47949153bb852c07304d9e5f2f0040c
A jagged/src/test/resources/testrepo/.gitted/objects/2d
A jagged/src/test/resources/testrepo/.gitted/objects/2d/08ab4853a55488a4e3323ebf804c3a732a2f6d
A jagged/src/test/resources/testrepo/.gitted/objects/dc
A jagged/src/test/resources/testrepo/.gitted/objects/dc/48b6c38e967e57965e36c6f7a1c3ec5c3e1ff4
A jagged/src/test/resources/testrepo/.gitted/objects/d4
A jagged/src/test/resources/testrepo/.gitted/objects/d4/bcc68acd4410bf836a39f20afb2c2ece09584e
A jagged/src/test/resources/testrepo/.gitted/objects/5e
A jagged/src/test/resources/testrepo/.gitted/objects/5e/ab02d63a3676df528bcd878ac935ec0c4d5bdc
A jagged/src/test/resources/testrepo/.gitted/objects/57
A jagged/src/test/resources/testrepo/.gitted/objects/57/cf500670b83b1ad4d86db6436bb91531cf3e27
A jagged/src/test/resources/testrepo/.gitted/objects/e7
A jagged/src/test/resources/testrepo/.gitted/objects/e7/7ab1c63f3fbde9c5ef9972939aa0717012d7c0
A jagged/src/test/resources/testrepo/.gitted/objects/8f
A jagged/src/test/resources/testrepo/.gitted/objects/8f/be49af0d14c65f881b57709acae2ea3414089a
A jagged/src/test/resources/testrepo/.gitted/objects/96
A jagged/src/test/resources/testrepo/.gitted/objects/96/a82bbe56b718c4c452491014c91d9b63ab8a79
A jagged/src/test/resources/testrepo/.gitted/info
A jagged/src/test/resources/testrepo/.gitted/info/exclude
A jagged/src/test/resources/testrepo/.gitted/refs
A jagged/src/test/resources/testrepo/.gitted/refs/heads
A jagged/src/test/resources/testrepo/.gitted/refs/heads/master
A jagged/src/test/resources/testrepo/one.txt
A jagged/src/test/resources/testrepo/three.txt
A jagged/src/test/resources/testrepo/two.txt
A jagged/.gitmodules
A jagged/pom.xml
A jagged/README.md
A jagged/Makefile
A jagged/make.cmd
A jagged/settings
A jagged/settings/java-cleanup.xml
A jagged/settings/java-formatting.xml
A jagged/LICENSE
Checked out revision 28.
Received on 2014-04-01 14:16:21 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.