
On Thu, Dec 13, 2012 at 12:12 AM, Rene Rivera <grafikrobot@gmail.com> wrote:
I tried using the possible more direct svnrdump command (to talk to the github subversion bridge directly) and failed. It seems the github bridge doesn't support the svn webdav commands svn 1.7 uses. So I tried Beman's suggested commands..
...
1.5) Create an authors mapping file that has lines to match your github account:
echo "grafik = Rene Rivera <grafikrobot@gmail.com>" > github-authors.txt
2) From the command line, in a temporary directory:
git svn clone https://svn.boost.org/svn/boost/sandbox/endian
I added "-Agithub-authors.txt":
git svn clone -Agithub-authors.txt https://svn.boost.org/svn/boost/sandbox/boost/predef
I'm not recommending -A. It doesn't seem very robust.
(Got a "Error validating server certificate...", and gave "p" as a response to the "(R)eject, accept (t)emporarily or accept (p)ermanently?" query. The process ran for perhaps 10 minutes, but that was fine because it was successful at recovering history. And it is a one-time process.)
I've changed the recommendation to use http rather than https.
As I was experimenting I ended up running it multiple times.. And it worked the first time. Then after deleting/resetting it stopped working subsequent times. Even after trying the exact initial command. So it seems it's rather fragile?
If there is any kind of a failure, delete the temporary directory and start over at the beginning. Restarts are probably doable by someone who understands the way the svn <---> git bridge works, but if they know that much they probably aren't following my instructions anyhow.
cd endian
git branch -d git-svn
It error-ed for me at that point.
Turns out that step isn't needed anyhow.
git push --mirror git@github.com:Beman/endian.git
I pushed the repo anyway, using the HTTPS protocol:
git push --mirror https://github.com/grafikrobot/boost-predef.git
That's it! The git branch command deletes the git-svn branch, which is
an artifact of the conversion process.
Finish off by cloning the library in its permanent local location:
cd permanent-local-location git clone git@github.com:Beman/endian.git
I wouldn't bother with this part for documentation. As it's just using git.
The docs are aimed at new Git users, and reinforcing their growing understanding.
I sure hope there's a better way to do this.. As I can't seem to make it work more than once. And if it can't be replicated.. I wouldn't recommend this procedure.
I've run the procedure several times, and it has been reliable for me as long as I stuck to the Basic Procedure.
I have to say.. I keep being underwhelmed by git :-\
Moving from svn to git is like moving from C to C++. If all you ever do is write C programs in C++, then C++ is underwhelming, and that's being charitable. Same for Git - If all you ever do with git is what you did with svn, then git is underwhelming, and that is being charitable. It is when you do something that you couldn't do well, or even at all with svn, that git starts to appear in a different light. --Beman