News for hackers. Stuff that matters.
Re:Microsoft and GitHub team up to take Git virtual file sys... by mkobit on Friday November 17, 2017 @03:21PM (#15725668)
Those kinds of use cases are what Git LFS [1] was created to help with. The major Git vendors support it (Bitbucket, GitHub, GitLab). I'm not as certain about the open source implementations.

[1] https://git-lfs.github.com/

Re:Microsoft and GitHub team up to take Git virtual file sys... by vvanders on Friday November 17, 2017 @04:46PM (#15726250)
Git LFS doesn't solve the gamedev/large asset problem.

The issue is that these giant binary files cannot be merged. Because of this you need a locking mechanism(which SVN and Perforce both support).

Without that you have two people working on the same file and someone having to throw away work which makes for a very unhappy team.

DVCS is great but not every problem domain maps to it.

Re:Microsoft and GitHub team up to take Git virtual file sys... by evanosaurus on Saturday November 18, 2017 @09:02AM (#15728947)
This is why we’re mostly stuck in Perforce hell in the games industry.
Re:Microsoft and GitHub team up to take Git virtual file sys... by ethomson on Friday November 17, 2017 @05:01PM (#15726360)
git-lfs supports locking, beginning in 2.0.
Re:Microsoft and GitHub team up to take Git virtual file sys... by vvanders on Friday November 17, 2017 @05:11PM (#15726419)
Man, had to really dig to find that. Ctrl-F "lock" didn't hit anything on the landing page or main docs page.

Even then it looks like an implementation that misses the mark. Both Perforce and SVN mark "lockable" files as Read-Only on a sync of the local copy. It looks like all this does is prevent a push of the file which will be the same result as if someone merged it ahead of you.

Without that guard in place it makes it really easy to make a mistake and then have changes to a binary file that will collide. Having a checkout process as part of locking workflow is pretty much mandatory.

[edit]

Nevermind, I finally found this[1] that explains Git LFS does it correctly, kudos! Could do with some more detailed documentation since it looks partially implemented from the man pages.

[1] https://github.com/git-lfs/git-lfs/wiki/File-Locking

Re:Microsoft and GitHub team up to take Git virtual file sys... by alkonaut on Friday November 17, 2017 @03:32PM (#15725739)
I dabbled a bit with lfs but it seems specifically geared towards a few very large resources that you need to manually take care of syncing etc.

What we need to move off large repos in tfvc or svn is something where the inconvenience is small enough that it doesn’t weigh heavier than the benefits of git. LFS was not that, this could be.

Re:Microsoft and GitHub team up to take Git virtual file sys... by drdaeman on Friday November 17, 2017 @07:51PM (#15727160)
Git LFS' Achilles' heel is pruning old data.

I made a stupid decision to use git-lfs to track a pre-initialized Docker database image (using LFS to store initial_data.sql.bz2). Now I have to live with few dozen gigabytes of the past I don't really need (it's a small database).

I know I can rewrite the history and then find something to garbage collect unreferenced blobs (haven't investigated it). The repo allows doing so as it only keeps those dumps, the Dockerfile and a pair of small shell scripts. And, most importantly, it has only 2 users - me and my CI. If it would be large assets and lots of code, checked out and worked on by a large team - I guess, rewriting the history isn't an option.

Storage is cheap, but still...