Re: Related projects and version control
Re: Related projects and version control
- Subject: Re: Related projects and version control
- From: Stuart Smith <email@hidden>
- Date: Wed, 26 Sep 2007 08:48:40 -0700
- Thread-topic: Related projects and version control
on 9/25/07 12:10 PM, email@hidden at
email@hidden wrote:
> Message: 5
> Date: Tue, 25 Sep 2007 12:49:15 +1000
> From: Loukas Kalenderidis <email@hidden>
> Subject: Related projects and version control
> To: email@hidden
> Message-ID: <email@hidden>
> Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed
>
> Hey guys,
>
> I'd like to get a feel for how people approach this problem. We have
> a bunch of applications, some of which are still old CodeWarrior
> projects that are soon to be rewritten in Cocoa. A lot of them share
> the some of the same core functionality, and some of this
> functionality needs configuration via pref panes. So, I've rewritten
> one app in Cocoa that happens to encompass a lot of the shared
> functionality and I've just factored some of it out into plugins and
> frameworks.
>
> Basically we have a set of individual Xcode projects looking
> something like this.. names changed to more be more general:
>
> Engine1.framework Classes to handle some stuff
> Engine2.framework Other stuff
> Plugins.framework Framework containing plugin architecture that is
> used by all apps
>
> DataProcessor.plugin A plugin to do some data processing
> SomePrefPane.plugin A pref pane plugin
>
> App1 Some app, links against all frameworks, loads all plugins
> App2 Some other app, only needs Engine1 + Plugins frameworks, and
> the SomePrefPane plugin
>
> What is the way people would go about linking these projects? The
> "official" way seems to be to have the relevant projects as
> dependancies, so that to build App1 we build all the frameworks and
> plugins, then use Copy Files build phases to put them in the right
> place. That doesn't really work in some ways, consider the following
> situation:
>
> Developer 1 is working on App1 and needs to update some stuff in
> Engine1 framework
> Developer 2 needs to make a bug fix to App2
>
> D2 wants to use the current STABLE version of Engine1 when they build
> App2, rather than the version that's currently in development. Pretty
> common version control problem I guess. So say we have all of these
> projects in SCM.. how would you guys go about setting it all up?
> Would you check out a copy of Engine1, put it in the project folder
> with App1 and make it a dependancy?
> Drop copies of the built frameworks into App1 project folder and link
> against/copy those?
> Something else?
>
> We don't use any SCM at the moment. What I've been doing is building
> the frameworks and dropping a copy of the build products into the app
> project folders, linking against those. This is a bit annoying
> because I want to use Debug versions of the frameworks for Debug
> versions of the apps, etc. The other problem I've come across is that
> I can't do the same thing with the .plugin bundles. If I drag them
> into Xcode they appear as folders and I can't add them to the Copy
> Files build phase, it only seems to work if I add the whole plugin
> project as a dependancy and add the product of the project to the
> copy files build phase.
>
> I'm not even sure what I want to ask here, I really just want to know
> how people set this stuff up. Can anybody shed some light on this topic?
>
> Thanks
> Loukas
You asked how other people set this stuff up. Without giving away any
company secrets, I think I can tell you that:
1. we use version control. We recommend version control. Some of the
problems you describe are common and others have developed strategies for
dealing with them. A version control system will help you (it won't do
everything automatically for you, but it will help). Get a book about your
version control system (e.g. Pragmatic Version Control: Using Subversion, if
you're going to use Subversion). Or get books about all of them and spend a
weekend reading them.
2. Use a build script to build your final product. Xcode can't do everything
for you, and you gain a lot of flexibility if you use a build script.
There's absolutely no problem copying different bundles into your
application bundle dependent on whether the target is Debug or Deployment
(or whatever you choose to call them).
hth, Stuart
_______________________________________________
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