Towards Better File Management

Use git-annex like your local library

Background: 🈶 ⛪ → 🌿

→ 📧 In the recent decade, organizations are replacing courrier with email. The reason is two-folded. 🌿 First, the later is more environmentally-friendly. 📨 Second, the later delivers the content to the recipient quick as a flash.

📧 📎 When one sends an email, one sometimes wants to attach a file to an email. If one has to sign a paper document and send it by email, then one will probably need a scanner. (Despite the emergence of scanning apps on mobile devices, the quality of a scanner is normally better since the page is flattened during the scan.)

Problem 📄 💾 → 🖥 / ☁

The documents are often saved to some local/cloud storages. How to manage their versions?

Solution Primer

Add a date to file name.

However, when one has hundreds of unorganized files in a folder, how can one deal with foo-bar-2018.odt and 2018-foo-bar.odt?

Use rsync

rsync is a quick solution, but it doesn’t scale. One has to do the backup for each machine. That’s no big deal for several devices, but that’s not the way for sharing files among an array of computers.

Use git-annex

git-annex is like a librarian. Only symbolic links 🔗 are written into the index. The binary files are stored as binary objects under 📁 .git/annex.