But what if I have software and images (e.g. as in game software)? Which version control system do I use? Honestly, I think the effort was better spent on an improved version of Git.
[0] https://dvc.org/
11–20 of 29 posts
But what if I have software and images (e.g. as in game software)? Which version control system do I use? Honestly, I think the effort was better spent on an improved version of Git.
[0] https://dvc.org/
But what if I have software and images (e.g. as in game software)? Which version control system do I use? Honestly, I think the effort was better spent on an improved version of Git.
Programmers, game makers and 2D/3D artists are very different target audiences with very different needs. To name one example, the commit hash integrity which is a foundation of Git is a must-have for software projects, but might be not useful in environments like VFX or CG productions
Yes, so if you want to make them use the same version control system (not a strange requirement, see Google monorepo), then the system should be all-encompassing, and not limited to one type of user.
And it may turn out that features meant for one type of user are also useful for other types of user. For example, programmers may need to store large image files as part of a deep-learning image classification system.
I'm usually not a fan of packing as many features as possible into a single tool, but in case of version control it makes sense. (A pluggable/modularized approach should of course be used if possible).
Earlier quoted context omitted.
Programmers, game makers and 2D/3D artists are very different target audiences with very different needs. To name one example, the commit hash integrity which is a foundation of Git is a must-have for software projects, but might be not useful in environments like VFX or CG productions
> Programmers, game makers and 2D/3D artists are very different target audiences with very different needs. Yes, so if you want to make them use the same version control system (not a strange requirement, see Google monorepo), then the system should be all-encompassing, and not limited to one type of user. And it may turn out that features meant for one type of user are also useful for other types of user. For exampl…
But what if I have software and images (e.g. as in game software)? Which version control system do I use? Honestly, I think the effort was better spent on an improved version of Git.
But what if I have software and images (e.g. as in game software)? Which version control system do I use? Honestly, I think the effort was better spent on an improved version of Git.
AFAIK big studios use perforce.
There is a somewhat related discussion going on about Pijul’s suitability for use with game editors: https://discourse.pijul.org/t/using-pijul-for-a-game-editor/...
I would also look at data science/ML as a potential use for the tool as there are real issues with using Git for training data.
Last point which is more of a tip: Show don’t tell. If you did some side by side workflow walkthroughs showing the difficulties with other tools it will make it easier for people to see that this problem is real (which it definitely is)
> Why not Git/Git-LFS, libgit2, or SVN?
> Disadvantages:
> (Without Git-LFS): Heavy cost with zipping, packing, and delta-compression for larger files
Given the caveat (without Git-LFS) it seems odd to include this in the list
> If not properly tracked, binaries become accidentally part of "base" history
That's a big "if", and not an inherent problem. This could easily be resolved by any good design-focused UI (e.g. SnowTrack), so this seems a poor argument against using Git as a backend.
> Removing older commits is cumbersome due to Gits commit hashing integrity
This (like the first bullet point) does not apply to Git-LFS.
> Complicated rewriting history procedure
What?
> Issues with binaries >4GB on Windows
A known bug in Git-LFS that they're working to fix. There are workarounds provided in the linked tickets (that could be leveraged by a UI / abstraction layer like SnowTrack).
This is the first item in the bullet list that is a real disadvantage of Git LFS, but the workaround for it seems much less effort than developing a new VCS backend from scratch.
> Slow in binary modification detection
I'm not sure if this applies to Git or Git LFS; there's little detail provided. But if it's significant, this is probably the only really compelling disadvantage listed.
> Git uses a restrictive license
And finally we see the real reason for not using Git.
---
NOTE: I don't mean to make out that building an alternative VCS to Git is not worth pursuing. Nor that it needs any specific justification. Just that listing a justification that seems (to me) mostly disingenuous is worth pointing out.
From the README: > Why not Git/Git-LFS, libgit2, or SVN? > Disadvantages: > (Without Git-LFS): Heavy cost with zipping, packing, and delta-compression for larger files Given the caveat (without Git-LFS) it seems odd to include this in the list > If not properly tracked, binaries become accidentally part of "base" history That's a big "if", and not an inherent problem. This could easily be resolved by any good design-…
The main requirement is performance (a missing point in your list). If Git would be a good candidate as a versioning system for DCC software packages, it would have been picked up by now, but it didn't happen, among others because of the reasons listed above. Git addresses a completely different target audience and lifecycle than SnowFS. The commit hash integrity is a problem in CG/VFX productions, so is the 4GB limitation, as well as the I/O performance for large binary files. The fact that these issues are still there are fully understandable, given the responsibility and dependencies of this project. That's why SnowFS tries to address the niche requirements with its light implementation.
In terms of the license, this is intentionally the weakest argument of all. It doesn't prevent anyone under the GPL to ship Git as an external program with a commercial software, same counts for libgit2 with its linking exception. So there is not even a real benefit here. But the chosen MIT license is an open invitation for everyone.
P.S. Certain features and technical solutions will be feature-proposed to libgit2