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 😛

  • How can I add pattern that start with hash to gitignore
  • How to see difference of first and third commit in git?
  • Prevent git to push to wrong remote
  • View already-committed Git merge in external 3-way diff tool
  • How to shut off localization in git 1.8
  • How to merge only once when master branch diverged?
  • 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 switching between commits
  • Why does git rebase often have fewer merge conflicts than a merge?
  • Is there a way to push ClickOnce-Releases to Github branch?
  • Gitignore not working
  • SourceTree password after opening Bitbucket account with gmail
  • Git shallow fetch of a new tag
  • 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.