On Jan 16, 2008, at 4:55 AM, Joris De Ridder wrote: I'm an Eclipse user who has just begun to explore the possibilities of Xcode. There is one issue about Xcode and SCM that confuses me. The Xcode User Guide mentions that
"...you must also commit the project package [...] Otherwise, the project file may become out of sync with the rest of the project’s files (source code files, resource files, and so on)"
To what extend is this project file essential for Xcode to work with SCM?
In the latest version of Xcode, Xcode 3.0, there are two sets of operations you can perform.
The first is repository operations, which don't require a project. First, go to SCM -> Configure SCM Repositories, and tell Xcode about the repository or repositories you're interested in. Once you've done that, you can go to the Repositories window, SCM -> Repositories, and do certain things such as checking out a repository, adding a directory, copying something, etc.
The second is local operations, such as committing changes to the repository from your local copy, updating your local copy, discarding changes, etc. For this, you need a project, and you need to tell that project, via Project -> Edit Project Settings -> SCM Repository (popup button near the bottom of the window), which repository that project and its files are associated with.
Once you've done that, Xcode will attempt to process everything under your project's project root directory -- which by default is the same directory the project is located in, but can be changed to be a higher-level directory that also includes the project, from the same project info window where you set the SCM repository -- according to that repository's SCM information.
Unfortunately, at this time the Xcode SCM documentation is outdated; it doesn't include any of the above information, but instead refers to things as they were in Xcode 2.*. We are working on that.
Is Xcode useable when developing in a team with mixed IDEs? If one team member uses Eclipse (and therefore does not commit any Xcode project files), will my Xcode IDE automatically incorporate his changes in my local copy of the project, if I do an SVN update? Or put otherwise, will my Xcode project file be automatically updated?
What do you mean by "his changes to my local copy of the project"? Do you mean when he modifies files, adds files, removes files? If your Xcode project uses an outside tool, such as ant, to do its build, then as long as ant has been pointed at the right directories, then it should pick up these changes without there needing to be any change made to your Xcode project by another person.
However, if you're building pure Java applications/etc., then even on Mac OS X, Xcode may not provide you with many advantages over Eclipse, which tends to have more Java-specific features than Xcode does. Xcode really shines at helping you build native Macintosh applications using Objective-C.
-- Andrew |