Uses the svn2git code from: https://github.com/svn-all-fast-export/svn2git or build the local copy in misc/svn2git/svn2git

rsync -av svn.code.sf.net::p/brlcad/code .

./svn-all-fast-export --add-metadata-notes --identity-map account-map --rules rules code

TODO: investigate --svn-branches flag - do we want to use it?

For tags, if you've used the supplied rules file, follow this post's approach:
http://blog.smartbear.com/software-quality/migrating-from-subversion-to-git-lessons-learned/

git branch |
# Remove spaces at beginning of line:
sed s/..// |
# Only get 'tag' branches:
grep ^tag-- |
# Strip down to just the tag name:
sed s/tag--// |
while read tagname; do
  git tag -a "$tagname" -m "Tag imported from SVN." "tag--$tagname" >/dev/null 2>/dev/null && echo "tagged: $tagname"
  git branch -D "tag--$tagname" >/dev/null 2>/dev/null && echo "deleted branch: tag--$tagname"
done

Also, probably want to archive inactive branches, since we aren't using them any more but don't
really want to completely delete them (see http://stackoverflow.com/questions/1307114/how-can-i-archive-git-branches/4292670#4292670)
archive_branches.sh has the list of branches that are no longer active in subversion
and (if a sufficiently new bash is available) will do the archiving process when run
in the BRL-CAD git repository directory.  (Should probably make it more portable...)

For viewing the results of the above with gitk, most users will probably want to filter
out the git note items - the following works fairly well to see all the branch interactions
when run in the brlcad git repository directory (gitk --all shows too much "behind the scenes"
info about note commits): gitk --branches="*"



Most of the time the rules and account-map file in this directory are the ones
you want to use - if they are out of date or need tweaking, a helpful resource
is Jeff Geerling's page:

http://www.midwesternmac.com/blogs/jeff-geerling/switching-svn-repository-svn2git

To incrementally build up a git repo that is mirroring an svn repo without having
to re-run the whole process, svn2git has a --resume-from option.

TODO - A *really* ambitious goal would be to have all the src/other projects be their own
git projects and have them use whatever the proper git sub-project inclusion mechanism
is.  We've extracted the utahrle work, so it is possible to do at least the first part
(albeit a lot of work) but the second bit is unclear.


Other misc items that fell out of this effort:

To get the complete log of BRL-CAD's entire svn history and convert it to csv
format for processing/filtering, use the rsync'd copy of the repo and the
svnlog2csv python script in this directory:

svn log --xml file:///home/user/brlcad-svn_repo/code > brlcad_full_log.xml
svnlog2csv > brlcad_full_log.csv

Sean found this article, which discusses the problem of two-way syncing with an svn repo:
http://ben.lobaugh.net/blog/147853/creating-a-two-way-sync-between-a-github-repository-and-subversion
