Xcode 4 and version control – But which one?

I have a question, the answer isn’t really hard technically, but I am more looking for the experience of most advanced programmers here.

So like many noobs, I am doing my version control in the crappiest way, which is to copy paste my project directory and rename it with the current date/time.
You will agree that it’s a quite limited solution 😛

  • Same code different git files, merging with keeping history
  • Which SCM to choose in this situation ? Redmine+git or Fossil or?
  • Git stuck at deltafying objects
  • error syncing with cyanogenmod repo
  • git svn - <file> was not found in commit <hash>
  • How to view git commits when local branch is ahead of origin Commits
  • I decided to learn version control system(s), but I am facing many choice, and I would like to know what are the best for your points of view ?

    • Using Xcode integrated version control (git or anything else), with organizer, cloning, commits from xcode etc. I mean totally or almost controlled by Xcode ?
    • Ignoring Xcode letting him think there no version control and doing it myself in command line ?
    • A merge of the two above ? How ?

    And then :

    • Using git ? Github is very popular and powerful, but you must learn git, and learn it hard.
    • Mercurial ? It seems more friendly.
    • Something else ?

    It would be priceless to have some feedbacks about more experienced people, so that me and many others I hope can choose their paths when facing the VCS wall 🙂

    Thanks a lot !!!

  • Git - revert significant changes
  • How to Handle Merge Conflicts through Custom Perl Script
  • Problems cloning a git repository (Newbie problems)
  • git: choose editor for a single command
  • Amending old commit
  • What is the correct way to convert SVN remote branches and tags into local Git branches/tags during SVN to Git migration
  • 4 Solutions collect form web for “Xcode 4 and version control – But which one?”

    I can only recommend git. Merging is easy, I remember the days when a merge conflicts occured with SVN, it was pain, horrible pain to resolve those. You can easily start a local repository with git, especially if you are the only one developer.

    Have a look at Which SCM system to use with Xcode 4 for a lone developer?.

    I suggest some reading on git for the beginning:

    • Git in five minutes
    • Git Community Book
    • The Thing About Git

    First: Use a VCS at all.

    The rest:
    Mercurial is nice, but Apple went with Git for Xcode. So if you want source control integration within the IDE, Git is the best option.
    The things I miss most when working with Xcode & Mercurial are the “Modified” indicators in the source list and the integrated diff-viewer. (Which is pretty good in Xcode IMO)

    The actions you perform in the Organizer are a bit limited at the moment, but you can always fall back to Terminal.app for that.

    Take some time to invest in learning the basics of git, it’s absolutely no rocket science to get you started on basic usage and you will benefit from it right away. Once you know the basics of git, you aren’t locked into another tool wrapping git, you can use git if there are some problems with XCode. Also, git is available for several OS so the knowledge you gain about git will not go away if you move between different computers that have different OS.

    Here are my best of bookmarks for git:


    I’ve had good success with SubVersion.

    Git Baby is a git and github fan, let's start git clone.