One of the things that people know me for is for continuing to develop on MyAppSales, my favorite tool to download and keep those elusive sales report from iTunes Connect. It’s always been a hobby and until now I’ve allowed people to access the source in exchange for a mandatory donation. This went on for almost two years now.
Those donations never made sufficient money for me to pay for professional development. But I felt that I had to ask the approx. 500 people on the google group about their opinion as they might see their donation as a purchase and not like the idea of this software now being available for free. Boy was I wrong. Resoundingly people voted “+1″ for going OpenSource.
So here it is. It’s Open. Read on for how I moved the repo from my SVN server to GitHub, including the entire revision history.
I wanted to move the entire history so far onto GitHub so that it was preserved. Fortunately this capability is already built into git. It will get all revisions and convert them into commits.
Create a local folder and init for a git repo:
mkdir MyAppSales cd MyAppSales git init
Set an SVN URL and fetch the entire history with all revisions. Amazing! This seems to be built into git. On the first go I made the mistake of importing the project root including trunk, tags and branches. So I aborted it, since I only wanted the contents of the trunk.
git svn init https://svn.cocoanetics.com/myappsales/trunk git svn fetch
Set the remote repo and push all there: The pull was necessary because I had commited and pushed a README before the import.
git remote add origin email@example.com:Cocoanetics/MyAppSales.git git pull origin master git push origin master
I almost couldn’t believe how easy it was, but from the upload taking a couple of seconds and not getting an error message I figured that it worked flawlessly. Upon checking the commits section of the online browser I found that amazingly the entire commit history was present. Made me smile to see the first import dated March 29, 2009.
One thing to notice is how my user name changed every time I moved to a new server. Commits by “oliver” where done to the first repo which my friends at Spielhaus hosted. Then I moved to my new server, changing to “odrobnik”. Now on github I’m “Cocoanetics”.
Also it turns out that the project is desperately in need of some cleanup work regarding where files are located in the folders. Class files in the root, images all over the place.
Two more things I had to do: I copied a license and a .gitignore file so that it would not push some unwanted files. The first is created by OSX, build folders we never want and the last two are user settings which you don’t need either.
.DS_Store build *.mode1v3 *.pbxuser
I have several updates to this source still in progress on my Laptop. I’m working on migrating the entire database to CoreData because at present bearable performance is only achieved by caching to compressed files. So this is what I’ll bring to this project next.
It’s also my hope that with the source being now open that this will encourage current and future users to contribute. The repo is located at https://github.com/Cocoanetics/MyAppSales. And of course donations are still very welcome, my PayPal address is firstname.lastname@example.org.