git-annex/doc/todo/transfer_between_git-annexes.mdwn

34 lines
1.8 KiB
Markdown

What do you think of the ability to transfer a file between unrelated annexes? With "migrate" already taken, I would suggest "catapult" (or "teleport")!
git annex catapult dir1/ $HOME/otherannex/somedir/
git annex catapult dir2/thisfile.jpg $HOME/otherannex/somedir/
git-annex would then:
* Get list of present files
* Copy the file to temporary space in $HOME/otherannex/.git/annex
* fsck file
* Move file to $HOME/otherannex/.git/annnex/objects
* Create symlinks/directories in $HOME/otherannex/somedir/
* Stage symlinks
* Drop content and rm symlink
with the usual modifiers (e.g. --fast would skip the fsck, --force to skip non-present files?).
Reason I ask: I have a huge annex from importing the contents of a bunch of random harddrives and will eventually sort the contents into various other annexes I can put files into (personal, general family, specific people). Having git-annex guiding and checking the transfers from the sorting annex to the individual ones would be really nice.
Not having this isn't a showstopper (I can use rsync) so no worries if you don't think it is worth it or think it is but put it on the backburner :) Would just be a nice-to-have.
> So I get the feeling you found a way to do this in a script using
> lower-level parts of git-annex. Closing on that basis, but feel free to
> reopen if I'm wrong. [[done]] --[[Joey]]
>> Adding the source annex as a cache
>> ([[tips/local_caching_of_annexed_files/]]) and then adding the
>> symlinks to the local annex allows the content to be transferred with
>> all of the safeguards one usually gets from git-annex, but without
>> the merging of the repositories.
>> This is also very clean as the source annex doesn't get included in
>> the location tracking.
>> This works *really well* for me (even better than the script I was
>> using!), so happy with this being closed. -- [[CandyAngel]]