This is a wrapper for Perforce's p4 client command which will handle transparently tarballing / untarballing and permissions setting for .nib and .framework bundles under MacOS X. When dropped in as the p4 command which Xcode uses, it allows proper Xcode / Perforce integration. Mostly. As anyone who's used Xcode and tried to use the Perforce integration knows, the existing integration doesn't work very well, as Xcode blindly tries to check in .nib and .framework bundles as if they were files instead of directories. So, this wrapper corrects that by accepting calls for .nib and .framework as if they were files, but silently converting them into tarballs for in the repository, and untarballing them on sync or edit. In order to use this, simply rename /usr/local/bin/p4 to /usr/local/bin/p4.orig, and place the 'p4wrap' script as /usr/local/bin/p4 instead. Now, Xcode should be able to check in or check out .nib and .framework bundles properly, as well as viewing their revision history. It also will allow you to, from the command line, do p4 operations on .nib and .framework bundles as if they were files. (For instance, 'p4 add MainMenu.nib' will actually work as if that were a file and not a directory.) There are doubtless some gotchas, since this is a little hack I whipped up in about two sessions, and I'd welcome bugfixes or whatnot. I can't really support this thing officially, alas, but I'm more than willing to help others try and hack on it, and to continue hacking on it as well. There are some notes on gotchas and what needs to still be done in the p4wrap script. --Rachel Blackman sparks@noderunner.net