Our DNA is written in Swift

OpenSource’ing MyAppSales

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 git@github.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.


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 oliver@drobnik.com.

Categories: Projects


  1. Great move! Thanks.

  2. Wow, thanks! Forking now to work on an iPad UI.

  3. Just bear in mind that I am at present migrating to CoreData and so I am redoing all view controllers anyway.


  1. iOS development highlights: January 2011 at Ole Begemann: iOS Development
  2. Back … and Many News | Cocoanetics

Leave a Comment

%d bloggers like this: