- git
- ruby
- A svnadmin dump of the YaST SVN repo, called yast-full.dump
- The svn2git tool from KDE (http://techbase.kde.org/Projects/MoveToGit/UsingSvn2Git)
- Some disk space (The YaST svn dump is 4GB already)
Edit yast-svn2git.sh and adapt the path to svn2git (the KDE tool)
You can use
ruby list-subdirs.rb
to extract possible module names from a SVN dump file
Run
yast-svn2git.sh <module>
where <module> is a subdirectory below /trunk or /branches/branchname at any time in the SVN history
This will result in a <module> directory with a svn subdir and a yast-module bare git repo.
The conversion script starts with extracting the relevant SVN revisions from the full dump into a new dump.
This is done with a Ruby program called dump-splitter.rb
This new dump is then loaded into a new SVN repo. This will only contain the commits relevant to the choosen module.
The last step is using the KDE svn2git tool to convert from SVN to GIT
Another approach is to use the new SVN repo and git svn clone for the conversion.
For this use the map2authors.rb Ruby script to convert the yast.map to an authors.txt file first.
Then start a local svn server
svnserve --foreground -d -R -r ./<module>/svn
and run the conversion
git svn clone --no-metadata -A authors.txt -Ttrunk -ttags -bbranches svn://localhost:3690 <name-of-git-repo>