DEV Community

Mika Feiler
Mika Feiler

Posted on

How I messed up using Git-Annex

I have been using Syncthing for quite a while. There are good reasons for its rapidly gained userbase.

What ever frustrated me was wanting to:

  • have it on a Haiku OS machine
  • have it easily configurable without the WebUI on older machines where I only had Seamonkey usable
  • being able to properly manage the safeguard-versioning
  • not have weird conflicts mess things up resulting in there silently being no sync until I'd look at the UI
  • be able to easily access even encrypted synchronized-without-trust files

So I ended up both creating a repo in my original Syncthing-active directory with all files unlocked and annex.thin set, and adding the directory as a directory importtree&exporttree special remote in Git-annex. I juggled both of these ways trying to achieve what I wanted, synchronizing it with another proper repo as a temporary duplicate.

That worked for a while, I had a workflow for managing file changes manually post-factum. Until at some point I did something, or not, and suddenly realized all my devices have gotten all files purged from the Syncthing-active directory, and I only have the files in my new proper repo directory.

And now I am no longer a user of Syncthing. I got migrated. By force — of a mistake of mine.

I am just still having to figure out the ways of the assistant and the webapp, especially the how to manage the webapp.

This occurence made me backtrack on some of my prior choices, however. A major problem for me was always not wanting to keep git commiting every small change in a small plaintext-source thing I would be publishing, while wanting it to be in sync as part of a larger bundle of things that I would have. For years already I was resolving to just having such kind of stuff in directories in Syncthing.

I am now realizing that I should find ways to:

  • automatically do commits with git, considering I already now let git-annex do that with its assistant (or at least, I intend to). Or at least bundle it up in really properly handy aliases
  • start using submodules with git-annex in a way that would have me get that synced between by devices

And let's hope the next time I sit down to a Haiku OS desktop, git-annex will turn out to be packaged or otherwise easy to build.

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Immerse yourself in a wealth of knowledge with this piece, supported by the inclusive DEV Community—every developer, no matter where they are in their journey, is invited to contribute to our collective wisdom.

A simple “thank you” goes a long way—express your gratitude below in the comments!

Gathering insights enriches our journey on DEV and fortifies our community ties. Did you find this article valuable? Taking a moment to thank the author can have a significant impact.

Okay