This is the second post in a series about iOS development from the perspective of a C# developer.
In the previous post in the series we got started with MonoTouch and installed MonoDevelop and XCode. In this post, we’ll look at how to set up version control for an existing MonoTouch solution.
I didn’t have enough time at the hackathon to learn how to set up version control for MonoDevelop on a Mac. So let’s fix that straight away.
I’m much more familiar with Mercurial, and while it’s possible to get TortoiseHg to run on a Mac, it seems that the Mac world prefers Git. MonoDevelop has Git integrated which I like very much so I’ll go with Git for now. I can always switch later.
Open a terminal and navigate to the root of your existing source code folder.
$ cd Projects/Babingo # replace with /path/to/your/repo
You need a .gitignore file to avoid version controlling compiled sources and user settings unnecessarily.
Create a new file .gitignore as follows. You can type
nano .gitignore if you don’t have a favourite text editor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Now initialise a repository for your existing source code and commit it.
$ git init $ git add . $ git commit -m "Initial commit."
Next create a private repository on BitBucket.
You will need the address for your repository from the BitBucket page circled in red below.
Then, from the terminal, push the code to BitBucket. Replace the Url below with the address of your your own repository.
$ git remote add origin https://email@example.com/shamp00/babingo.git $ git push -u origin --all
Integration with MonoDevelop
Open your solution in MonoDevelop and select the
Checkout... option from the
Version Control menu.
Git as the type of repository and put the address to your git repository in the
Url field. The rest of the fields are populated automatically. You need to set the
Target Directory to the location of your local repository including the trailing slash.
When you click Ok, you will be prompted for your BitBucket credentials.
That’s it. Now Git is integrated into your MonoDevelop environment. For instance, you can right-click in the editor to view the diff or the log of the current file, push changes, commit messages locally, etc.
Note that instead of BitBucket, it would have been just as straightforward to host the repository on GitHub instead.