| *.pbxproj -crlf -diff -merge |
| # xcode noise | |
| *.mode1v3 | |
| *.pbxuser | |
| *.perspective | |
| *.perspectivev3 | |
| *.pyc | |
| *~.nib/ | |
| build/* | |
| # Textmate - if you build your xcode projects with it | |
| *.tm_build_errors | |
| # old skool | |
| .svn | |
| # osx noise | |
| .DS_Store | |
| profile |
This comment has been minimized.
This comment has been minimized.
ckoehler
commented
Jun 22, 2011
|
Could you explain the gitattributes settings? Why are you treating the pbxproj file as binary? |
This comment has been minimized.
This comment has been minimized.
ELLIOTTCABLE
commented
Jun 22, 2011
|
Because they are. Many of Apple’s XML files are not actually introspectable; they are textually-serialized binary representations of memoryspace. You, the user, cannot safely “mess with” those files (which includes allowing git to “mess with” them on your behalf, such as merging them during tree merges.) Now, that |
This comment has been minimized.
This comment has been minimized.
|
Correct. I've found messing with those files manually a huge PITA. I
believe Xcode 4 with better git integration ignores tracking changes
in those files, and so should you (unless you really really need to).
Let Xcode do it.
…On Jun 22, 2011, at 2:07 PM, elliottcable ***@***.*** wrote:
Because they _are_. Many of Apple’s XML files are not _actually_ introspectable; they are textually-serialized binary representations of memoryspace. You, the user, cannot safely “mess with” those files (which includes allowing git to “mess with” them on your behalf, such as merging them during tree merges.)
Now, that `^^` is all the traditional wisdom. The truth is, you actually _can_, but it is an absolutely **massive** pain in the ass to do, and you have to do it all by hand, no via git-magic. I can give you more information about that if you like, or you can look at my [cocoa_play](http://github.com/elliottcable/cocoa_play) repo, wherein I manually comitted every single change I made to the project, along with an explanatory commit message about what those changes involved in the Xcode UI. (Most of that is only applicable to Xcode v3, unfortunately.)
##
Reply to this email directly or view it on GitHub:
https://gist.github.com/137348
|
This comment has been minimized.
This comment has been minimized.
ckoehler
commented
Jun 22, 2011
|
Then how do you handle branching to a topic branch, creating some new files, committing, switching back to master, adding some more different files, and then merging in the topic branch? |
This comment has been minimized.
This comment has been minimized.
|
Sounds like you've created a project, and then added it to a .git repo after the fact. You may be better off, letting Xcode (4) do the work of merging/branching within it's interface, it will do the right things, and then you won't get the merge conflicts with those files. You can view the documentation here: http://developer.apple.com/library/mac/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/SCM/SCM.html#//apple_ref/doc/uid/TP40010215-CH7-SW9 Also the Developer forums is a good place to get help if you're an official iOS/Mac developer. |
This comment has been minimized.
This comment has been minimized.
ckoehler
commented
Jun 22, 2011
|
Yeah that's right. I'm oldschool like that :) |
This comment has been minimized.
ELLIOTTCABLE commentedMay 29, 2011
.DS_Store shouldn’t be in the project’s versioned
.gitignorefile; it should be in the clone-specific.git/ignorefile, and then only for users which are using Macs (and thus deal with that file). (Of course, this is less of an issue with an Xcode project, as everybody’s guaranteed to be on a Mac; but still, it’s good practice.)