3 ms·
I strongly suggest that you take a good look at git-annex[0]. git-annex manages (possible very large) files and helps you to copy/move them between different s
by aliasEli 5y ago
I strongly suggest that you take a good look at git-annex[0].
git-annex manages (possible very large) files and helps you to copy/move them between different storage location, e.g. usb sticks or hard drives (actually it supports far more than those). In your proposed scheme when you copy a file to a new location you must also copy the UID. This means that when you copy a file by traditional OS commands, your system will will not be able to recognize that the copies are actually identical. git-annex uses a smarter system because the unique identifier for a file is a hash of its contents. This means that it can detect if two files are identical or not[1].
In your description of a bin you have a name, description and tags as information about the bin. You only really need tags because they could be used to implement name and description. With git-annex you can add tags as metadata to each file [2].
git-annex is a great solution if you have many files stored in different locations.
[0] https://git-annex.branchable.com/ https://git-annex.branchable.com/
[1] If you think that you can produce SHA-256 collisions, you should be writing a scientific article about it and not spend so much time on HN.
[2] https://git-annex.branchable.com/git-annex-metadata/ https://git-annex.branchable.com/git-annex-metadata/