[darwinbuild-dev] How to find build version difference

Kevin Van Vechten kvv at apple.com
Tue Jan 8 18:09:52 PST 2008


Michael's plugin is a good start, however copying the whole Build  
plist (with all project attributes) to inspect it is a rather  
heavyweight process.  It's possible to use the plugin API to search  
the data in the sqlite database.  The use of this API also answers the  
question below.

On Jan 7, 2008, at 7:45 PM, Michael Franz wrote:

> I found a slight bug in my implementation.  I do not use a complete
> set of project names, so, when the src build has many more projects
> than the destination the diff is incorrect.  I am currently looking at
> a way to create a set of the two build project names.  This way I will
> have a complete set of all projects in both builds.

CFArrayRef DBCopyProjectNames(CFStringRef build);

This function returns an array of all projects in the given build  
(including inherited projects).  I believe this is already sorted, but  
I'm not 100% sure.

There's also the following function which you might be interested in:

CFArrayRef DBCopyChangedProjectNames(CFStringRef oldbuild, CFStringRef  
newbuild);

Also it's not clear to me why DBSetPlist() is called at the end... I  
don't think of "diff" as a mutagenic operation.

- Kevin


More information about the darwinbuild-dev mailing list