This commit is contained in:
parent
ab2e432588
commit
9ceb6e2a9b
1 changed files with 68 additions and 0 deletions
68
doc/forum/git_annex_get_--want-get_another__95__repo.mdwn
Normal file
68
doc/forum/git_annex_get_--want-get_another__95__repo.mdwn
Normal file
|
@ -0,0 +1,68 @@
|
|||
Hi,
|
||||
|
||||
Git-annex is really awesome. It has made my life really easier when having to
|
||||
move files around.
|
||||
|
||||
Yet, I have been struggling with a use case that I cannot get working with git
|
||||
annex.
|
||||
|
||||
In short, my request is: could it be possible to have --want-get and --want-drop
|
||||
accept a repository as argument to match the preferred content of that
|
||||
repository instead of here?
|
||||
|
||||
Now, let me explain why I need this:a
|
||||
|
||||
All my files are stored into a NAS accessible via a local network.
|
||||
|
||||
I have an annex in my desktop computer. Using preferred content (via "git annex
|
||||
wanted") and "git annex get|drop --auto", I am able to almost automatically
|
||||
handle what files are put into my computer. What I do is to "git annex wanted"
|
||||
to indicate what I want to be here and launch a home made script that basically
|
||||
does "git annex get --auto" and "git annex drop --auto".
|
||||
|
||||
Let's say I have a android phone to which I connect via ssh over adb. It
|
||||
contains a git repository but few files are in it. It has no wifi and so no
|
||||
access to the network, meaning no access to the NAS.
|
||||
|
||||
The links between annexes then looks like:
|
||||
|
||||
NAS <-> Computer <-> Phone
|
||||
|
||||
When I want to put a file into my phone, I generally launch "git annex get file"
|
||||
from my computer (then I get the file from the NAS) and "git annex copy --to
|
||||
phone file".
|
||||
|
||||
I want to be able to automatise this a bit by playing with preferred content
|
||||
(like I do with my computer). This means that I want to launch "git annex
|
||||
wanted" to edit the preferred content of the phone annex and then "git annex get
|
||||
--auto" and launch "git annex copy --auto --to phone". This way, when I am not
|
||||
in front of my computer, I can still from my phone run "git annex wanted here
|
||||
'preferred content'" and hope for my synchronisation scripts (run in my
|
||||
computer) to put the good files into my phone.
|
||||
|
||||
Obviously those commands won't work since the git annex get --auto command will
|
||||
only get what my computer wants, not what my phone wants.
|
||||
|
||||
The intuitive (IMHO) way to do would be to launch:
|
||||
|
||||
git annex get --want-get phone
|
||||
git annex copy --auto --to phone
|
||||
git annex drop --auto
|
||||
|
||||
With "--want-get repository" meaning, "Matches files that the preferred content
|
||||
settings for the repository make it want to get.".
|
||||
|
||||
For the time being, I succeed in doing this with
|
||||
|
||||
OLD_WANTED=$(git annex wanted here)
|
||||
git annex wanted here $(git annex wanted phone)
|
||||
git annex copy --auto --to phone
|
||||
git annex wanted ${OLD_WANTED}
|
||||
git annex drop --auto
|
||||
|
||||
This is complicated and adds two extra commits in the git-annex branch (one for
|
||||
each setting of git annex wanted) each time I call the script.
|
||||
|
||||
What do you think?
|
||||
|
||||
Thanks for reading.
|
Loading…
Add table
Reference in a new issue