[Bf-committers] Docs: Migrating from SVN to Git + Git LFS

Aaron Carlisle carlisle.b3d at gmail.com
Wed Feb 19 19:17:30 CET 2020


Hi Blender Developers and Blender Documenters,

Over the years SVN, has caused several headaches from server database
corruptions to terrible download performance to poor branching support.
I believe it is time that we migrate from SVN to Git to some of our
projects,
notably, the documentation project. The issue has been in the past that Git
has
terrible support for binary files resulting in large download and
repository sizes.
Over the years several hacks were made to make Git work with binary files
but
their implementation was poor and those projects have since died.

There is however one project that made a proper implementation and over the
years
has grown in both popularity and stability/reliability, this being Git
Large File Support (Git + LFS).
I will not go into the details of how  Git + LFS works but it is described
well in the video [1].

Implementation on the client-side is easy, simply make sure Git LFS is
installed.
Server-side implementation is a bit trickier, as there is no official
implementation.
Many open-source implementations exist however are documented here: [2]

I have set up a test project on GitHub [3], if people want commit access
for testing
purpose let me know.

Converting the documentation project to Git + LFS will involve converting
both the
main repository and the translations repository. Unflortiantly, translators
will lose the
ability to checkout only there languages however once implementing Weblate
[4]
translators will no longer directly interact with the repository.

The primary focus of this is to test how well Git + LFS will work for us
and the community.
A goal in moving to Git + LFS is to make it easier to contribute to Blender,
a couple of weeks ago I had to help two already Blender contributors learn
SVN over Git.
If it is a success for us and the community then efforts can be made into
converting
other repositories as well. For example, the main Blender translation
repository,
and Blender's pre-compiled libraries.

A useful article I found from a game production studio that also made the
switch
is a very helpful and talks about why they made the switch along with the
process they took.
I have linked the article below [5].

1. https://youtu.be/uLR1RNqJ1Mw
2. https://github.com/git-lfs/git-lfs/wiki/Implementations
3. https://github.com/Blendify/blender-manual
4. https://developer.blender.org/T68588
5. https://labs.karmaninteractive.com/svn-to-git-its-about-time-ae4c468549be

Thanks for reading,

Aaron Carlisle

Project administrator for the Blender 3D Documentation Project
Email: carlisle.b3d at gmail.com


More information about the Bf-committers mailing list