Rockbox Technical Forums

Rockbox Development => Starting Development and Compiling => Topic started by: torne on January 09, 2012, 06:00:07 PM

Title: SVN is dead, long live Git!
Post by: torne on January 09, 2012, 06:00:07 PM
Hi folks,

Just to let everyone know, we have now shut off commit access to the SVN server, and enabled commit access to the Git repository hosted on our Gerrit instance. This means that your svn checkouts are now obsolete, and to get newer versions of Rockbox you will need to check it out using Git.

For instructions on how to use the git server, see http://www.rockbox.org/wiki/UsingGit which hopefully explains it well enough :)

We are in the process of migrating the build system, the recent changes on the website, the CIA bot on IRC, and other services to be based on git. You should probably hold off on committing any significant code changes until we have the build system running again :p

The svn server is still available for read access up to the last version committed, r31646. This will eventually go away, but remains available for now in order to help anyone with pending changes in a svn checkout update to the last possible point before creating a diff.

If you want to help out with the migration process, there's several things you could do:

1) Help to update documentation on the wiki to refer to the UsingGit page - currently everything refers to SVN still.

2) Help to update references to SVN in the docs directory in the source.

3) Test out the process and suggest improvements to UsingGit.

4) Try your hand at writing html/css to embed into Gerrit to make it look more like the rest of our site (see http://gerrit.rockbox.org/r/Documentation/config-headerfooter.html for how this works)

5) Help people on #rockbox with the tools migration, if you know how the build system/etc work.

6) Be around on #rockbox to help people out in general with using git.

7) Anything else you can think of! (bug Torne about stuff).

One thing to note is that code reviews on Gerrit are not yet enabled. You can try this out on the sandbox repository by following the old GerritDemoGuide instructions on the wiki; I'll turn it on on the real repositories once we've written up some docs about how non-committers can use it and some guidelines on how to prepare acceptable patches to upload to it. We have enough work to be getting on with :)

Thanks to Zagor who has done all the server side work to get this hosted on our infrastructure, thanks to everyone who contributed ideas and comments while I was writing the docs and policies, and thanks in advance to everyone who helps out with getting the remaining tools and docs migrated over! Apologies for this taking so long, but I've been really busy :p
Title: Re: SVN is dead, long live Git!
Post by: sss on April 21, 2012, 12:27:40 AM
Thanks a lot for using non-resumable git which stops downloading halfway through every time (whoever decided to make the switch to git from svn).

Rockbox is becoming a mountain of endless regressions.  Git is one of them.
Title: Re: SVN is dead, long live Git!
Post by: saratoga on April 21, 2012, 01:09:58 AM
I don't think its possible to resume a git check out (although maybe there is some way?), so I don't see why you're complaining to us.  Go bug the git people to add it if you want it. 

The actual download size isn't that large though, so I'm not sure its really needed.
Title: Re: SVN is dead, long live Git!
Post by: torne on April 21, 2012, 06:21:27 AM
You can try git clone --depth=<some number> to only clone part of the repository history, which may be smaller (and then extend it with git fetch --depth later to get the rest of it), but I'm not sure it will help very much; our repository is very small, only ~130MB of packs. You might also want to try using the http:// url instead of the git:// url.

If your internet connection is not capable of downloading 130MB of data in one go, on any attempt, then you probably should work out why.. it's unfortunate that git doesn't have an easy way to resume a pack-receive, but this really isn't a problem for anyone else..
Title: Re: SVN is dead, long live Git!
Post by: sss on April 21, 2012, 07:23:01 AM
It seems there is indeed no way to resume a git clone the way it has been set up.

Any time files over a few megabytes are downloaded it is nice to have a resume feature.  I remember having a dial-up connection where a 20MB download would take hours (that was when people were byte-thifty and software and development tools didn't consume an entire DVD or more).

Please come up with another way to download the development repository.  Saying things like "no one else is having this problem" isn't helping the problem.
Title: Re: SVN is dead, long live Git!
Post by: gevaerts on April 21, 2012, 07:57:41 AM
Thanks a lot jerks for using non-resumable git which stops downloading halfway through every time.

Rockbox is becoming a mountain of endless regressions.  Git is one of them.

Yes, we're jerks. That's *exactly* why we switched to git. Glad to see it worked out.
Title: Re: SVN is dead, long live Git!
Post by: sss on April 21, 2012, 08:08:23 AM
You just don't know how frustrating it is to get stuck downloading this thing time after time.
Title: Re: SVN is dead, long live Git!
Post by: bluebrother on April 21, 2012, 09:47:43 AM
You just don't know how frustrating it is to get stuck downloading this thing time after time.

Which of course justifies calling people "jerks" for technical problems they are not responsible for. Thanks.

Please come up with another way to download the development repository.  Saying things like "no one else is having this problem" isn't helping the problem.

Your way of dealing with the case that you have problems with git justifies only one answer to this: no thanks. I'm not putting it in words similar to the ones you chose since I would consider that inappropriate (as I do with your language).

Apart from the fact that you've already been told that this is a git problem and a way to work around it: how are we supposed to solve a problem that lies within git if we're not developing git?
Title: Re: SVN is dead, long live Git!
Post by: torne on April 21, 2012, 09:53:03 AM
Cloning with --depth=1 only needs to download 89MB, if that helps any. You will need to fetch the rest of history with git fetch --depth=some_larger_number before you can actually push (you can do this in stages by fetching with increasingly large depths until there's no more of history to download), but you can look at the source at least. The total amount downloaded will be much larger, as the packs can't be compressed as efficiently :/

If I knew of something else I could do to make this easier, I would try, but I don't. I'm sure it is very frustrating; talk to git people, and if you find out something we could do, then let us know.
Title: Re: SVN is dead, long live Git!
Post by: sss on April 28, 2012, 06:43:42 PM
Yesterday I managed to get the download (or "clone") to finish completely, before that the operation would stop after about 20-50%.

For anyone else having this problem, don't forget about the stable source archive here:
http://www.rockbox.org/download/byhand.cgi

I think that suggestion would have been a good one.
Title: Re: SVN is dead, long live Git!
Post by: torne on April 29, 2012, 05:44:18 PM
Most people who are downloading the source are building the current development version, not the stable release; yes, the stable source is archived and can be downloaded but that's not what people generally want (and you didn't specify).

Now that you have a clone, you should hopefully not have any more problems. Updating the remote in future is much, much faster, since not only does it only have to download new changes, but it can use the changes you have already downloaded as a basis for delta compression.