(At work we use git, but split into many repos, which is a pain, and with git-lfs, which is also a (mild) pain.)
(At work we use git, but split into many repos, which is a pain, and with git-lfs, which is also a (mild) pain.)
I don't see anywhere where Pijul would be different to be honest.
Then you have to use something like git lfs, which isn't terrible, but also isn't 100% smooth either.
Something that handled this as part of the native experience out of the box would be much nicer.
Edit: Pijul would be different by not having clone become slow, as I understand the blog post.
Maybe Pijul solves that magically somehow (e.g. can you change history without changing commit hashes?) but they haven't explained how IMO.
It got really really slow to clone (like multiple days -- we gave up on cloning and just copied the checked-out folder around); git lfs fixed this. I should note most of the binary assets had no changes and were not deleted; it seemed to be something inherent in git's handling of the binaries that made it slow, not just downloading the data. (I.e., I don't believe most of the wins in git-lfs were simply in doing a "shallow clone" as it were.)
So as I see it the situation is as follows:
- Even for a full clone, git becomes inefficient with a lot of large binaries
- For doing a partial clone, things like git-lfs work, but are clunky because git-lfs is not natively integrated with git
- The partial clone abilities of git-lfs are strictly "time-based" -- you go to a particular checkout, and then it goes off and downloads the files. There's no way to say, "I have a big monorepo with a bunch of binaries, but I'm only interested in some subset w/o the binaries."
So these are all areas where I think git can be improved on.