SnowFS ❄️ Let's bring version control to graphic projects

SnowFS is a lightweight open-source command-line application to bring version control to graphic projects.

2 minute reading time

Why did we need SnowFS?

Snowtrack brings version control to artists and designers. The initial prototype for the Snowtrack UI application was built using Git and Git LFS. Given the effort of the Git community to support larger files and some successful initial tests we were optimistic about our approach.

Unfortunately, the devil is in the detail. Some features beneficial for the software development process can be counterintuitive for artistic endeavours. For example, the hash integrity of Git is great to ensure the integrity of a software repository, but not really needed for a graphic project. For such project types, the requirement to delete individual files or removing entire commits without rewriting the history all the time is more important.

Laying the foundation

In essence, for our prototype we needed Git. Except more lightweight, simple support for large files, and a fraction of the functionality. We decided to risk building our own system and started on the first draft of SnowFS.

It supported

  • Deleting of entire commits or individual files
  • Instant snapshots
  • Instant rollbacks
  • Super-fast-detection of large modified files
  • Block-cloning and copy-on-write supports for APFS, ReFS, and Btrfs
  • And more ...

In essence, for our prototype we needed Git, just more lightweight, support for big files, and a fraction of the functionality.

Difficult initial setup

Below is a comparison between Git and SnowFS on a Macbook Pro (2020) with an APFS formatted SSD to check-in, delete and restore a 4GB Photoshop File.

$ git lfs track *.psd $ git add texture.psd # 20164ms $ snow add texture.psd # 4596ms <-- Not bad $ git rm texture.psd # 575ms $ snow rm texture.psd # 111ms <-- Also ok $ git checkout HEAD~1 # 9739ms $ snow checkout HEAD~1 # 1ms <-- Yeah!

Where to go from here?

SnowFS was and is a great lightweight and flexible project to explore and experiment with new ideas for version control. If you are interested in the project, we are looking for your expertise to share and learn!

As Snowtrack evolved so did our version control system. From the foundation of SnowFS we are building SnowVCS. Want to know more about SnowVCS? Head over to the product page.

Learn more

Curious to see what's next?

Snowtrack is being developed hand-in-hand with our community. We are only as good as our feedback. If you are curious about our roadmap or have a feature request, join us on Discord.

Join our Discord