DEV Community

loading...
Cover image for SnowFS ❄️ Let's bring version control to graphic projects

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

Sebastian Rath
Tech Entrepreneur • Founder of Snowtrack • On a mission to bring the open-source community and the graphics industry closer together
・2 min read

Introduction

Welcome to my first article here on Dev.to. In this article, I will be sharing an overview of an open-source project I kicked off to explore ideas and solutions on how to bring version control to graphic projects.

The open-source project is called SnowFS and it is a lightweight command-line application and library for binary files with a focus on graphic files.

But why?

I recently started developing an UI application that brings local version control and artists/designers together. Given the effort of the Git community to support larger files, I tried Git+LFS for my first prototype. It seemed, after several successful tests I've overcome the inner demons that were screaming Don't even try to use Git with such big files. Means Git with LFS is a nice solution to tackle such needs.

Unfortunately, the devil is in the detail, and some features beneficial for the software development process can be quite counterintuitive for other project types. 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.

Basically, I needed Git, just more lightweight, support for big files, and a fraction of the functionality. And that's how SnowFS was born. It supports...

  • ...deleting of entire commits or individual files
  • ...instant snapshots
  • ...instant rollback
  • ...super-fast-detection of large modified files
  • ...block-cloning and copy-on-write supports for APFS, ReFS, and Btrfs
  • ...and more.

How does SnowFS perform?

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!
Enter fullscreen mode Exit fullscreen mode

Where to go from here?

SnowFS 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!

In that sense, Happy versioning!

Discussion (3)

Collapse
paulasantamaria profile image
Paula Santamaría

This is a great idea! My sister works on audiovisual productions, and I always thought people in those fields could greatly benefit from a git-like tool. I'll definitely check out the repo.

Collapse
sebmtl profile image
Sebastian Rath Author • Edited

That's interesting, a lot of people mentioned the need for version control in the audio space. It is certainly something that can be covered by SnowFS. Thanks for sharing!

Collapse
aviyel4 profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
Jose - Aviyel

Hey Rath,

We just launched on Dev. to helping Open Source Projects Maintainers like yours. Our Focus is to scale projects like SnowFS from 1 to 5.

Please check out our manifesto - aviyel.com/post/33/manifesto-aviyel ;
Dev.to - dev.to/aviyel/open-source-monetisa...
If you are interested, please ping me here ;
calendly.com/jose-aviyel/30min

-JK

Forem Open with the Forem app