On Nov 22, 2005, at 2:40 PM, Chuck Soper wrote: If you add the following lines to your Perforce typemap (on the server) then I don't think that you'll get the warnings: unicode+w //...project.pbxproj unicode+w //....pbxuser unicode+w //....mode1
This makes the files writeable for all users. If you do that be sure to use the Perforce reopen command on the project files to change their file types to unicode+w.
On Nov 22, 2005, at 3:41 PM, Chas Spillar wrote: You need to edit the appropriate project files to stop this warning from occurring. The reason that you are getting the message has to do with the fact that the project files are write protected until you chmod them or p4 edit them. I have found that I need to do the following to get the project to act properly:
Where MySourceDirectory is a variable containing the path of myproject.xcodeproj:
cd $MySourceDirectory p4 edit myproject.xcodeproj/* chmod -R +w myproject.xcodeproj/
This works for me. Then when any changes are made to the project file you can submit them whenever it is necessary.
Thanks guys. These ideas may work for a single-developer shop but they won't really work for me, for the following reasons:
- We have approx. 20 developers + testers who would all have to p4 add their *.pbxuser files. Then each user would get a copy of every *.pbxuser file and would need to p4 sync these when a user does such innocuous things as set breakpoints, etc. For this reason I want to keep the *.pbxuser files out of Perforce.
- Leaving the project.pbxproj read-write in each user's workspace also has problems. When the project really does need to be submitted (because a file was added or a build setting was changed) the developer doing this will not be notified that they need to check out the project first. Opening them all for p4 edit is even worse because then when a submit is done every single developer will need to do a p4 resolve!
- The unicode flag is a good idea, but as we're currently stuck on the previous p4d version that doesn't support it, I'll have to wait on that one.
Shawn's insight that the *.pbxuser files don't get created if project.pbxproj is write-locked was key. (Apple: This is a bug you need to fix!) Getting those files created by temporarily p4 edit-ing the project.pbxproj file has gotten us past this issue for now, but I think Apple has more work to do to make Xcode and Perforce work together seamlessly. (Can you say atomic updates and recursive syncs?)
--Michael
|