-
-
Save jase-perf/3f6328fb66427802090f458775e481df to your computer and use it in GitHub Desktop.
# Perforce File Type Mapping Specifications. | |
# | |
# TypeMap: a list of filetype mappings; one per line. | |
# Each line has two elements: | |
# | |
# Filetype: The filetype to use on 'p4 add'. | |
# | |
# Path: File pattern which will use this filetype. | |
# | |
# See 'p4 help typemap' for more information. | |
TypeMap: | |
# Text files. These lines are probably unnecessary as P4 will auto-detect the type. | |
text //....asmdef | |
text //....asmref | |
text //....cginc | |
text //....cm | |
text //....compute | |
text //....cs | |
text //....csv | |
text //....editorconfig | |
text //....gitignore | |
text //....hlsl | |
text //....js | |
text //....json | |
text //....md | |
text //....package | |
text //....proc | |
text //....proc | |
text //....rsp | |
text //....shader | |
text //....template | |
text //....txt | |
text //....uss | |
text //....xml | |
text //....yaml | |
# Text files that should be locked. (These are Unity3D files) | |
text+l //....md5anim | |
text+l //....md5mesh | |
text+l //....meta | |
# Text files that should remain writable (often automatically updated) | |
# Be EXTRA SURE to reconcile offline work to make sure they are submitted properly. | |
text+w //....config | |
text+w //....DotSettings | |
text+w //....ini | |
text+w //....log | |
text+w //....modules | |
text+w //....pdm | |
text+w //....target | |
text+w //....uatbuildrecord | |
text+w //....uproject | |
text+w //....version | |
# Binary files to lock and to store uncompressed (because they are likely already compressed) | |
binary+Fl //....avi | |
binary+Fl //....bz2 | |
binary+Fl //....gif | |
binary+Fl //....gz | |
binary+Fl //....jar | |
binary+Fl //....jpeg | |
binary+Fl //....jpg | |
binary+Fl //....mov | |
binary+Fl //....mpg | |
binary+Fl //....rar | |
binary+Fl //....tif | |
binary+Fl //....tiff | |
binary+Fl //....zip | |
# Most binary files should be locked to avoid merge conflicts. | |
# Feel free to add more file endings as needed. | |
# Also, if you want to take advantage of Delta Transfer in P4 | |
# you could add +F to all binaries to get faster sync/submit | |
# at the cost of using more storage space on the server. | |
binary+l //....a | |
binary+l //....aac | |
binary+l //....aar | |
binary+l //....aas | |
binary+l //....ae | |
binary+l //....ai | |
binary+l //....aiff | |
binary+l //....anim | |
binary+l //....apk | |
binary+l //....asset | |
binary+l //....bik | |
binary+l //....bin | |
binary+l //....blend | |
binary+l //....bmp | |
binary+l //....bnk | |
binary+l //....btr | |
binary+l //....celtx | |
binary+l //....cfm | |
binary+l //....class | |
binary+l //....clip | |
binary+l //....controller | |
binary+l //....cubemap | |
binary+l //....dae | |
binary+l //....data | |
binary+l //....dds | |
binary+l //....demo | |
binary+l //....doc | |
binary+l //....docx | |
binary+l //....dot | |
binary+l //....ear | |
binary+l //....fbx | |
binary+l //....flac | |
binary+l //....fnt | |
binary+l //....ibl | |
binary+l //....ico | |
binary+l //....ip | |
binary+l //....light | |
binary+l //....lighting | |
binary+l //....lwo | |
binary+l //....m4a | |
binary+l //....ma | |
binary+l //....mask | |
binary+l //....mat | |
binary+l //....mb | |
binary+l //....mp3 | |
binary+l //....mp4 | |
binary+l //....navmesh | |
binary+l //....obj | |
binary+l //....odg | |
binary+l //....odp | |
binary+l //....ods | |
binary+l //....odt | |
binary+l //....ogg | |
binary+l //....otf | |
binary+l //....otg | |
binary+l //....ots | |
binary+l //....ott | |
binary+l //....overrideController | |
binary+l //....pac | |
binary+l //....pdf | |
binary+l //....physicMaterial | |
binary+l //....png | |
binary+l //....ppt | |
binary+l //....pptx | |
binary+l //....prefab | |
binary+l //....prefab.unity | |
binary+l //....psb | |
binary+l //....psd | |
binary+l //....raw | |
binary+l //....renderTexture | |
binary+l //....res | |
binary+l //....response | |
binary+l //....roq | |
binary+l //....rpt | |
binary+l //....shadow | |
binary+l //....skp | |
binary+l //....so | |
binary+l //....sxw | |
binary+l //....tar | |
binary+l //....terrain | |
binary+l //....tga | |
binary+l //....tres | |
binary+l //....ttf | |
binary+l //....u | |
binary+l //....uasset | |
binary+l //....udk | |
binary+l //....umap | |
binary+l //....unity | |
binary+l //....unitypackage | |
binary+l //....upk | |
binary+l //....war | |
binary+l //....wav | |
binary+l //....webm | |
binary+l //....wma | |
binary+l //....wmv | |
binary+l //....xls | |
binary+l //....xlsx | |
# Binary files that should stay writable because they will be updated automatically, | |
# such as when building without requiring checkout first. | |
# Be EXTRA SURE to reconcile offline work to make sure they are submitted properly. | |
binary+w //....app | |
binary+w //....dll | |
binary+w //....dylib | |
binary+w //....exe | |
binary+w //....exp | |
binary+w //....ipa | |
binary+w //....lib | |
binary+w //....pdb | |
binary+w //....rc | |
binary+w //....stub | |
binary+w //....ubulk | |
binary+w //....uexp | |
# The Sn flag means the server will only keep the latest n versions of the file. | |
# This is useful for large files that we want to store but can be regenerated if needed. | |
binary+wS2 //..._BuildData.uasset |
Hello. This is a helpful typemap. I believe there's one error:
.exp files are set to be binary. I believe they need to be writeable in the workspace. At least in my case, trying to compile Unreal Engine 5.
I have a related question. Should the .exp and .lib files just be ignored in P4Ignore?
Cheers.
@michaelwbell
I just checked my gist for p4ignore here https://gist.github.com/jase-perf/b15b57d72fa8095c732fdbc4ca948903
which is based on Epic's recommendations and there is this line:
**/Engine/Binaries/**/*.exp
So it does seem like at least those ones should be ignored. I wonder if all of them should, though.
Thanks. I've also added .flac in my version.
Since information is limited, I am sharing my typemap with a more specific focus on Unity Engine that could complement this list:
Thanks for that @CitizenZultron ! I finally took the time to incorporate your changes and update the typemap. I made a few changes like removing +S from a couple file types, since I try to avoid recommending that without caveats since it could result in someone losing a version they needed and that can't be regenerated from the other files. Let me know if you think that was incorrect, though!
Thanks, @CitizenZultron ! I will look at incorporating this soon.
The P4 server will automatically detect if files are text or binary so I generally only use the typemap for files that I want to add special modifiers to, OR files that it incorrectly identifies (for example, a binary file with a long text-based header can sometimes incorrectly show up as text).
So unless you've found any of those text files to be interpreted incorrectly by the server, I'll probably leave those off.
The suggestion of adding .meta files as text+l makes sense! Definitely happy for the input on Unity files since I don't use Unity as often.