version control – Unity, LFS, and Bitbucket – 999+ Errors Missing Files


I’m just beginning to collaborate on a project with a second programmer. Unity Collab was causing issues with my teams unity causing 40 minute load times which was absolutely unmanageable.

Since then I’ve opted to use Bitbucket with LFS hosting and source tree for myself and artists.

I’ve been maintaining versions by myself but have not yet needed to roll back or make any significant changes to my files. Needless to say, my system is still working fine.

Now that I’ve got another programmer on my team to develop with, we’ve been getting him set up with bitbucket and the project. He however, has been completely unable to get the project to open as he’s having 999+ errors of missing files from all my various assets and tools.


What Is There

In the project settings, I have version control set to “Text Only”

I have Unity Asset store tools such as:

  • Dialogue System for Unity
  • DoozyUI
  • Vegetation Studio Pro
  • and more…

My .gitattributes file looks like this:

## Unity ##

*.cs diff=csharp text
*.cginc text
*.shader text

#*.mat merge=unityyamlmerge eol=lf
#*.anim merge=unityyamlmerge eol=lf
#*.unity merge=unityyamlmerge eol=lf
#*.prefab merge=unityyamlmerge eol=lf
#*.physicsMaterial2D merge=unityyamlmerge eol=lf
#*.physicMaterial merge=unityyamlmerge eol=lf
#*.asset merge=unityyamlmerge eol=lf
#*.meta merge=unityyamlmerge eol=lf
#*.controller merge=unityyamlmerge eol=lf


## git-lfs ##


# Unity
*.mat filter=lfs diff=lfs merge=lfs -text
*.anim filter=lfs diff=lfs merge=lfs -text
*.unity filter=lfs diff=lfs merge=lfs -text
*.prefab filter=lfs diff=lfs merge=lfs -text
*.physicsMaterial2D filter=lfs diff=lfs merge=lfs -text
*.physicMaterial filter=lfs diff=lfs merge=lfs -text
*.asset filter=lfs diff=lfs merge=lfs -text
*.meta filter=lfs diff=lfs merge=lfs -text
*.controller filter=lfs diff=lfs merge=lfs -text

#Image
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text
*.ai filter=lfs diff=lfs merge=lfs -text
*.tif filter=lfs diff=lfs merge=lfs -text

#Audio
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text

#Video
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.mov filter=lfs diff=lfs merge=lfs -text

#3D Object
*.FBX filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
*.blend filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text

#ETC
*.a filter=lfs diff=lfs merge=lfs -text
*.exr filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.dll filter=lfs diff=lfs merge=lfs -text
*.unitypackage filter=lfs diff=lfs merge=lfs -text
*.aif filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.rns filter=lfs diff=lfs merge=lfs -text
*.reason filter=lfs diff=lfs merge=lfs -text
*.lxo filter=lfs diff=lfs merge=lfs -text
*.so filter=lfs diff=lfs merge=lfs -text

At one point my sourcetree was notifying me that there were major files that were staged but not marked as an LFS file. Because of this, I commented out those unityamlmerge lines and added LFS lines for the same files.


Theories

  1. My collaborator doesn’t have all the asset store tools and thus cannot use them.
  2. My .gitattribute file is incomplete/incorrect.
  3. The asset store files may use their own proprietary filetypes that are not properly included in the .gitattributes file.
  4. Something I have yet to even comprehend.

Thanks for any help and feedback. I really need to get this team member set up and rolling.