Merge branch 'master' of ssh://git-annex.branchable.com
This commit is contained in:
commit
b5f9923927
3 changed files with 66 additions and 0 deletions
22
doc/forum/How_to_make_this_workflow_possible__63__.mdwn
Normal file
22
doc/forum/How_to_make_this_workflow_possible__63__.mdwn
Normal file
|
@ -0,0 +1,22 @@
|
|||
I have recently discovered git-annex and I'm interested in using it to manage my photo archive of about 10 years of raw photos. My existing workflow has worked well, but I'm trying to figure out how to automate it using git-annex. The archive is mirrored across 5-7 different external harddrives, each with a redundant copy of the entire archive (or as much as it can store since each drive capacity varies)
|
||||
|
||||
Current workflow:
|
||||
|
||||
1. Rename and organize photos on laptop
|
||||
2. Copy renamed photos to any two of the external harddrives
|
||||
2a. if the two harddrives are out sync, resync the harddrives
|
||||
3. Use laptop as local cache for editing
|
||||
3a. If photo is unavailable on laptop, plug in an external drive and create a local copy of desired photos.
|
||||
4. Resync laptop with external drives (this copies XMP sidecars to external harddrives and they will eventually propagate to other drives)
|
||||
|
||||
I can get pretty close to this workflow git-annex except for one quirk.
|
||||
|
||||
1. have a laptop repository in git-annex. Commit renamed raw photos in git-annex.
|
||||
2. Each harddrive have a git-annex repo and sync with laptop repo. The one caveat here is `git annex sync --content --no-pull` seems to ignore the no-pull option and tries to redownload all the raw files back to the laptop. How to do a one-way sync (laptop -> remote only with content)?
|
||||
3. XMP sidecars that are produced are tracked in regular git
|
||||
4. Try to sync with any available remote (this is the part I can't seem to figure out. I wish git-annex could be detect and try to to push to all available remotes instead me having to track which remotes are available).
|
||||
`git annex [copy|move]` have the `--to=here` option which will copy/move files from remotes to local repo. It would be exceptionally useful to have a `--to=reachable` option to send files to any reachable remote instead of having to copy/moves to each remote individually.
|
||||
|
||||
Things I need to figure out, but can't seem to grasp
|
||||
1. How to do a one-way sync? Or better yet, since each external drive needs to sync with any other reachable drive, can I exclude the laptop repo from the sync? The laptop repo is only a temporary staging area + local cache.
|
||||
2. If sync isn't the solution, how do move/copy to all reachable remotes instead of one-by-one?
|
|
@ -0,0 +1,35 @@
|
|||
[[!comment format=mdwn
|
||||
username="Atemu"
|
||||
avatar="http://cdn.libravatar.org/avatar/d1f0f4275931c552403f4c6707bead7a"
|
||||
subject="comment 1"
|
||||
date="2022-06-22T12:24:21Z"
|
||||
content="""
|
||||
> The one caveat here is `git annex sync --content --no-pull` seems to ignore the no-pull option and tries to redownload all the raw files back to the laptop. How to do a one-way sync (laptop -> remote only with content)?
|
||||
|
||||
AFAICT, pull only concerns `git` actions, not `git-annex` actions like transferring content.
|
||||
|
||||
What your laptop's repo tries to copy depends on what content it wants and numcopies.
|
||||
|
||||
The latter probably isn't your problem since you should have at least 2 copies of everything distributed over the drives.
|
||||
The former should ideally be solved with a proper customised groups setup but you can also set a wanted expression or use the built-in groups which is probably your best option. Your laptop's repo should be set to `client` or `manual`.
|
||||
|
||||
See https://git-annex.branchable.com/git-annex-preferred-content/ and https://git-annex.branchable.com/preferred_content/standard_groups/
|
||||
|
||||
> XMP sidecars that are produced are tracked in regular git
|
||||
|
||||
Have you set `annex.largefiles` to anything?
|
||||
|
||||
Sidecar files are just XML AFAICT, so a filter that would only add files with binary mimeencoding to annex would exclude these and add them to regular git.
|
||||
|
||||
If you haven't touched that setting (double check with `git config`), that's a bug.
|
||||
|
||||
> Try to sync with any available remote (this is the part I can't seem to figure out. I wish git-annex could be detect and try to to push to all available remotes instead me having to track which remotes are available).
|
||||
> `git annex [copy|move]` have the `--to=here` option which will copy/move files from remotes to local repo. It would be exceptionally useful to have a `--to=reachable` option to send files to any reachable remote instead of having to copy/moves to each remote individually.
|
||||
|
||||
By default, sync syncs with *all* available remotes.
|
||||
|
||||
How exactly are your repo's remotes set up?
|
||||
|
||||
What does it to when syncing that you don't want it to?
|
||||
|
||||
"""]]
|
|
@ -0,0 +1,9 @@
|
|||
[[!comment format=mdwn
|
||||
username="Atemu"
|
||||
avatar="http://cdn.libravatar.org/avatar/d1f0f4275931c552403f4c6707bead7a"
|
||||
subject="comment 2"
|
||||
date="2022-06-22T12:34:45Z"
|
||||
content="""
|
||||
My main use-case is actually the glob patterns; the first two use-cases. The other ones would just come as a bonus thanks to git-annex-matching-expressions.
|
||||
|
||||
"""]]
|
Loading…
Add table
Reference in a new issue