• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Xcode 3.0 and new SCM features
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Xcode 3.0 and new SCM features


  • Subject: Re: Xcode 3.0 and new SCM features
  • From: Andy O'Meara <email@hidden>
  • Date: Sun, 20 Jan 2008 19:04:55 -0500


On Jan 8, 2008, at 3:01 PM, Andrew Pontious wrote:

On Jan 8, 2008, at 6:48 AM, Jake Traynham wrote:

I'm trying to figure out how to get back functionality from Xcode 2.5 and previous with the SCM stuff. I have a CVS repository that looks similar to this:

/CVS/Common/
/CVS/Project1/
/CVS/Project2/

Both "Project1" and "Project2" use code from the "Common" code directory. In Xcode 2.5 and before, the SCM feature was able to figure out when code in the "Common" directory had changed and allowed me to update/commit/etc that code. Now in Xcode 3.0, it doesn't see those changes and the context menu for files in the "Common" directory show "Add to Repository" as if they aren't already. I tried changing the "root" of the project to my main / CVS/ directory, but when I do that, I see *all* the changes for every project in the CVS directory. I also tried adding a symlink to the Common directory under the Project directories to see if that would help, but it didn't.

Does anyone have any pointers or suggestions on how to get back this functionality where the SCM pane shows all changes to files in (and only in) the current Project's directory and the Common code directory? This seems simple enough.

In Xcode 2.*, Xcode's SCM system would go through all the files in your project, figure out their location, and figure out if those locations were under some sort of SCM system that it could detect.


As you can imagine, this could take a lot of time and resources.

For Xcode 3.0, we switched to a system based on the new Xcode project root. You specify one SCM system and location for your project, and that is used to evaluate every file under your project root.

We realize that this shuts out the kind of functionality that you're looking for, and I apologize for that. We are looking into potential solutions for future versions of Xcode, I can't give you any further information than that.


So our engineering office just finished upgrading our dev machines to leopard and updating our svn server, so I was looking forward to us finally using to Xcode 3... Unfortunately, our projects are basically how Jake described: we have a bunch of common/shared dirs and then we have project dirs (all within a single repository). The common dirs are checked out separately from the project dir, so the end result is that Xcode 3 thinks almost all our project files aren't under SCM, whereas Xcode 2.x properly matched each file with its respective checkout.

As many other posters have mentioned about this issue, it's really frustrating that Xcode 3 has what seems like a large limitation. I realize that the Xcode team was trying to address the performance downsides to Xcode 2's SCM file checking, but they had to realize how many devs would be left out in the cold here? The downsides of having of a master SCM root seem pretty harsh:

1) Like in Jake's case, *all* the other changes from other projects show up, etc.

2) Like in our case, since most code in our projects in the common dirs, most of our SCM interaction has regressed back to command line under Xcode 3. For committing stuff, that's not a huge setback, but not having the "M" status for project files is a huge, huge, setback; hour-to-hour development and code review *revolves* around that stuff!

3) Each of our projects use the "trunk", "branches", and "tags" subdir convention, so the idea of checking out the *entire* repository (which it a dizzying idea on its own) seems to add a lot of pain to that model (if not make it impossible altogether).

Like others have mentioned over the last couple months, it's quite frustrating to take a step back in productivity/workflow. I'm sure I speak for everyone who's posted on this issue when I say a solution for this issue would be really, really appreciated for the next version of Xcode. I'm sure the Xcode codebase is large and crazy, but I have to believe that it's possible to internally abstract its SCM support such that a project uses individual-item SCM or project-root SCM (it could just be a project setting?). Even if that couldn't happen, perhaps alternatives are possible, such as that if an item does not reside in the project master root, then individual-file SCM is used. Or, it seems reasonable that Xcode could figure out what the "checkout parents" are for a given project and get the best of both worlds (in terms of grouped SCM queries and support for independent checkouts). It would only need to re-perform such an analysis when the project opens or when items are added or removed. My ideas could be totally full of holes--I'm just trying to be helpful and encouraging--so please don't take any time to shoot them down.

Thqnks,
Andy O'Meara

P.S. I've already filed a radar.


_______________________________________________ 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
References: 
 >Xcode 3.0 and new SCM features (From: Jake Traynham <email@hidden>)
 >Re: Xcode 3.0 and new SCM features (From: Andrew Pontious <email@hidden>)

  • Prev by Date: Re: Compiler error ... crt1.o missing?!?
  • Next by Date: NSImage in NSTableView, how I change column data type?
  • Previous by thread: Re: Xcode 3.0 and new SCM features
  • Next by thread: Re: Xcode 3.0 and new SCM features
  • Index(es):
    • Date
    • Thread