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