Do you need SVN or is there another way to manage code?
We use and manage an SVN server dedicated to our xCode development, but mostly because we can, not because we need to. We have the servers, knowledge and experience to do this so we did.
I thought I would suggest another way to share code among multiple developers, and still keep thorough backups of all the things you need.
There are a few exceptions and we will list them first.
1. Technically SVN allows for two people to work on the same code at the same time, and for those changes to be mashed together. Sort of. However this is not really the case. SVN does such a lame job of mashing when compared to some TFS systems we have used for years, that we would advise strongly against thinking it will solve this problem.
For this reason, we treat SVN as a single user project for modifications, but that all users can update their local copy of the code any time, and test locally.
2. SVN encourages you to keep the server repository separate and Update or download a local version for working. “A working copy”, that you can then update back to the server when ready for check in. The process works well, and forces some dev discipline.
The suggested alternative to SVN with xCode working remotely for developers
What you need:
Skype, DropBox, Time Capsule
1. Create a DropBox account and share access to this for your developers. If you all use the same account, you can probably do this for free.
Drop Box will cache a folder to the cloud, and share that back to all users with the same account. Great service that just works!
2. Skype lets you talk to your other developers. Not really necessary, but a lever of communication is needed to ensure that you are not on the same project at the same time. This is nothing new to SVN that suffers the same problem and requires the same communication.
3. Time Capsule – This is to perform backups that are easy to revert to any point in time. We suggest that each developer has their own Time Capsule
Here is how it works
- Setup a Working folder for xCode, with a sub folder by developer name. Eg xCode Working /My Name. Setup a folder for each developer. We will call this the working folder.
- Setup a folder system / single folder and one sub folder for all your xCode projects. E.G. xCode Dev with sub folders /Project1 etc
- Setup a different folder and sub folders for supporting files. Original images, notes etc that relate to the same projects.
- Make sure that Drop Box is syncing these folders and all sub folders.
- Drop your projects into the related xCode project folders and sync to the cloud.
- When it is time to work. Clear your working folder of all files.
- Grab a copy of your xCode files from the project folder, and drop it into your working folder. Inform others that you have the folder checked our, by changed the folder name to: “/project1 – checked out to me” Work away.
- If you are online, drop box will be syncing everything you do. No problem as the xCode changes are usually small. Either online or off. Not really a big deal.
- When you are ready to submit your changes back to the “Server” just copy all files back to the folder that you changed to – “checked out to me”. And rename it back to it’s original name.
- Sync to dropbox, or let is be syncing all the time is even better.
- Make sure that your time capsule is backing up periodically.
1. The more connected and syncing to drop box the better.
2. Don’t work on code that is marked as check out to others, but you can grab a copy from any time and look / play with it in your working directory. You can even copy from someone’s working directory to yours.
3. Don’t check in over others checked out projects.
4. Be disciplined about notes and image originals into the correct notes folder.
That’s is. You own automates SVN in the cloud.
Disaster / Backup restore.
Easy. When you find a problem, you can use your time capsule to go back to any point in time for any project for any user directly from your time capsule. Any other team member with a time capsule can do the same.
The benefits are huge.
1. It actually gives you more protection and backup and SVN.
2. You all automatically have the latest code shared via Drop Box.
3. It costs almost nothing.
4. You have total control.
5. It works well.