Hi programmers,
I work from two computers: a desktop and laptop. I often interrupt my work on one computer and continue on the other, where I don’t have access to uncommitted progress on the first computer. Frustrating!
Potential solution: using git to auto save progress.
I’m posting this to get feedback. Maybe I’m missing something and this is over complicated?
Here is how it could work:
Creating and managing the separate branch
Alias git commands (such as git checkout), such that I am always on a branch called “[branch]-autosave” where [branch] is the branch I intend to be on, and the autosave branch always branches from it. If the branch doesn’t exist, it is always created.
handling commits
Whenever I commit, the auto save branch would be squashed and merged with the underlying branch.
autosave functionality
I use neovim as my editor, but this could work for other editors.
I will write an editor hook that will always pull the latest from the autosave branch before opening a file.
Another hook will always commit and push to origin upon the file being saved from the editor.
This way, when I get on any of my devices, it will sync the changes pushed from the other device automatically.
Please share your thoughts.
Write code on a machine you can remote into from each computer? Less commits, possibly less reverts, less chance of forgetting to git pull after switching machines…idk.
I have considered this approach, but there are several things I had issues with.
To address the issues you brought up:
Your git solution still has all of these issues, as you need the git server to be alive, for number 3 use something like rsync so you keep a local copy that is backed up if you are concerned about the file share being offline.
Don’t even need to remote in to anything, just store your working code on a network share
I mean… That’s kinda what git does, in a way… Right?
Don’t think git as a sync storage, more like to merge works.
If you need to share files between computers use a shared storage.
Always use the right tool for the job. Mount a shared storage or use synctools rsync, etc
True!