Re: Xcode project root and Subversion
Re: Xcode project root and Subversion
- Subject: Re: Xcode project root and Subversion
- From: Andrew Pontious <email@hidden>
- Date: Sat, 4 Apr 2009 13:33:16 -0700
On Apr 3, 2009, at 12:01 PM, Jim Prouty wrote:
(Using Xcode 3.1.2 and Subversion 1.5.6)
The root of my repository is checked out into a trunk folder
parallel to my
project folder:
full path to source: /Source/IgorDev/IgorSrc6.1/trunk
full path to project folder: /Source/IgorDev/IgorSrc6.1/Igor6.1Xcode
full path to project file:
/Source/IgorDev/IgorSrc6.1/Igor6.1Xcode/Igor61.xcodeproj
My project root is set to: <Project File Directory>/..
Which works out to: /Source/IgorDev/IgorSrc6.1/
I don't have any Subversion files checked out into
/Source/IgorDev/IgorSrc6.1/ (the trunk of the entire repository is
below
that in /Source/IgorDev/IgorSrc6.1/trunk).
Do you mean by that that /Source/IgorDev/IgorSrc6.1/ is a directory
you made yourself, not something you checked out? If not, you're going
to have problems in Xcode 3.0 and up.
What Xcode requires in 3.0 and up is that whatever directory is
pointed to by the project root is a single checkout from an SCM
repository. This was done to reduce the amount of work Xcode needs to
do (and CPU it needs to take up) to do SCM operations.
So you can have a directory setup like this, where CheckoutDirectory
was checked out from your SCM system:
CheckoutDirectory/MyProject/MyProject.xcodeproj
CheckoutDirectory/OtherStuff/
and if your project root is set to "../", then everything under
CheckoutDirectory is updated, including both MyProject/ and OtherStuff/.
However, if you have a directory setup like this, where
CheckoutDirectory1 and CheckoutDirectory2 are separate checkouts from
different places in your SCM repository:
LocalDirectory/CheckoutDirectory1/MyProject.xcodeproj
LocalDirectory/CheckoutDirectory2/OtherStuff/
then if your project root is set to "../", Xcode does what you
describe immediately below: skip the directory, because it expects
whatever directory is pointed to to be a checked-out directory from
your SCM system, and LocalDirectory/ isn't.
update /Source/IgorDev/IgorSrc6.1 revision HEAD
Skipped /Source/IgorDev/IgorSrc6.1
This isn't even mentioning whether Igor6.1Xcode/Igor61.xcodeproj is
under source control. In general, you should really check your Xcode
project into source control if you're using it for development. And on
top of that, Xcode requires that the project root directory be one of
the directly directories above the project directory (i.e. ../,
or ../../, or ../../../, etc.), so you can't, as you might have wanted
to do above, set the project root directory to an entirely unrelated
directory.
Not being able to handle multiple SCM checkout directories from a
single Xcode project is a known issue.
On Apr 3, 2009, at 3:25 PM, Quincey Morris wrote:
Also, Xcode SCM is a little confusing to set up, because you
typically need to set up your project files (xcodeproj, source, etc)
"locally", then import that into your repository, then discard the
original files and check out all the project files from the
repository. If you omitted that last step, then the SCM part won't
work.
This is true of any files you wish to put into an SCM system, at least
systems like CVS and Subversion. You create the files locally, import
them, then check them out. That is not an Xcode-specific workflow.
-- Andrew
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden