On Dec 5, 2007, at 2:32 AM, Christopher Hunt wrote: To help explain my issue here's my SVN/filesystem layout:
folder1 folder1file1 folder2 folder2file1 folder2file2 project1 project1file1 project1file2
I have checked all of my files out (folder1, folder2 and project1) and configured SVN as project1's SCM.
If I make a change to a file of project1 e.g. project1file1, then Xcode correctly shows a nice little M next to the file in the Groups & Files view. However if I make a change to a folder1 or folder2 file such as folder1file1 then no M appears alongside it in the Groups & Files view.
This behaviour appears to be due to Xcode only managing SCM for project1's files given that they are below project1 in the filesystem (as opposed to folder1 and folder2 files which are alongside project1 in the filesystem).
From an intuitive perspective, I expected Xcode handle SCM for all files under the Groups & Files view. This is how Xcode 2 and earlier used to work.
Xcode 3 works a little differently, and it does so in part for the sake of efficiency.
As you showed in your original email, the Groups & Files tree in Xcode does not have to correspond with on-disk file and directory layout. One group could hold files from many different directories.
What Xcode 2 and earlier did was take all the files in Groups & Files, and attempted to find out individually if they were under directories that were under SCM. For large projects, this might take a long time.
What Xcode 3 does is assume that it should check the status of all files within what's called the Project Root. By default, an Xcode 3 project's project root is the directory which contains the project file. In your case, for both project file 1 and project file 2, this is the directory you call "project 1".
However, you can change the project root. Brint up the Project Info window (via Project -> Edit Project Settings). Near the top is an entry called "Root", which is set to "<Project File Directory>". Click the "Choose" button in the same row, and you will be allowed to choose any directory that directly contains the project file:
Other Directory 1 (Can't be project root) +----Other Directory 2 (Can't be project root) Super Super Parent (Can be project root) +----Other Directory 3 (Can't be project root) +----Super Parent (Can be project root) +----Other Directory 4 (Can't be project root) +----Parent (Can be project root) +----Project File
So what I would suggest is that you put all the folders that you specify above inside a single parent directory, and change the project root for both project file 1 and project file 2 to be that parent directory.
-- Andrew |