What is tested, and on what
Every push to this repository runs the full end-to-end script — push a 16 MiB asset with the real
git lfs, clone it back, compare the bytes, take a lock, fail to steal it, release it — against:
| Platform | git-lfs |
|---|---|
| Linux | whatever the runner ships |
| macOS | whatever the runner ships |
| Windows | whatever Git for Windows ships |
| Linux | 3.0.2, the oldest version supported |
3.0 is the floor, because that is where the locking API settled. Older clients will do ordinary transfers, and nothing here goes out of its way to break them, but they are not exercised and a protocol detail that only they hit will not be caught.
That matters more than a version table usually does: the clients a studio actually runs are rarely the newest. Git for Windows, GitHub Desktop, Sourcetree, Rider and Unity's own integration each bundle a copy, and a project can easily be a year behind without anyone choosing that.
The graphical clients
Those cannot be automated here — they are what the artists run, so they are worth checking by hand after a change to the transfer or locking paths. The whole list is ten minutes.
- Clone a repository holding a large asset, and confirm the file opens in its editor rather
than arriving as a 130-byte pointer. This is the failure that looks like corruption and is
really a missing
git lfs install. - Push a new asset over a hundred megabytes, and watch the progress bar move. A stalled bar that then completes usually means the server buffered rather than streamed.
- Interrupt that push halfway — pull the network, not the process — and start it again. It should resume rather than restart.
- Take a lock on a scene or a PSD from the client's own UI, and confirm a second machine is refused and told who holds it.
- Release it, and confirm the first machine's UI notices.
- Check out an older commit that references an asset the working copy does not have, and confirm it downloads rather than failing the checkout.
Worth recording which client and version each check was run against, since the answer changes with the bundled copy rather than with this server.