Hi Mattias
Git LFS is designed for this purpose and I think this is probably the most effcient way without affecting how developers are used to work on daily basis.
It's a good idea to avoid checking in binary files, zip files etc yes. I agree on principle.
The zip-files for Episerver only change when upgrading Episerver though, which you are likely to do only once or twice per year normally.
I have yet to hit the limit in any of my projects. Missing zip-files however is a common problem that takes time to troubleshoot and correct especially when setting up deploy scripts to production etc. So although I agree on the principle I personally make an exception for these to simplify deployment and onboarding new devs. Let me know if you find a better way :)
Hi!
My colleague and I have discussed for serveral days how to handle the zip-files thats provided by EPiServer and by default "installed"/located in the /modules/_protected/xxxx/ folder(s).
Our current SCM is Git, however.. Git is not really supposed to handle compressed or binary files, and especially not larger files. (like for instance Shell.zip which is 10Mb+).
So one of our ideas was to simply exclude the modules folder from our repository and then let NuGet re-download this during a package restore.. however.. it turns out that NuGet does not re-dowload any content-files during a restore, which then causes the "Publish-tool" in Visual Studio to not "function properly" since we are now missing files which should be included according to the .csproj, but they cant be found (and even if the publish would work, we would still be missing some crucial files for EPiServer to function properly).
Another thing that comes to mind is that we could of course extract all the files thats zipped, and then just treat them all as a part of our source-code.. but I guess that could make an upgrade somewhat harder than just "Install-Package EPiServer.Cms -Version {next version}".., and besides that.. a recommendation is to not have any source code except the one you have written yourself handled by Git.
Is there any "neat" way to handle this problem?
We also dont want to affect how the developers are used to work with .Net and EPiServer too much, since that might slow down the developing process or make it harder to introduce new members to the team.