Boost logo

Boost :

Subject: Re: [boost] [Git] Extracting libraries from the svn sandbox
From: Beman Dawes (bdawes_at_[hidden])
Date: 2012-12-13 12:15:45


On Thu, Dec 13, 2012 at 12:12 AM, Rene Rivera <grafikrobot_at_[hidden]> 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_at_[hidden]>" > 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_at_[hidden]: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_at_[hidden]: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


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk