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 😛

  • git diff showing only commits that revision/branch A is ahead of revision/branch B
  • Multiple streams over single project in Git?
  • Rebase a merge commit when parents changed
  • git with --git-dir= results in 'not a git repository'
  • GitLab + Eclipse + SSH - “Auth failed” or “cannot open git-upload-pack”
  • indentation configuration only for some files
  • 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 !!!

  • Selectively importing other people's pull requests in your own Github fork
  • Getting errors when using GitHub for Windows
  • E325: ATTENTION Found a swap file by the name “.git/.COMMIT_EDITMSG.swp”
  • Git workflow: forking a project and maintaing a local modified copy, but keep up to date
  • How to use the default git commit message after resolving merge conflicts?
  • Difference between git remote add and git clone
  • 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.