aboutsummaryrefslogtreecommitdiff
path: root/doc/forum/checkout_view_to_directory_outside_of_annex.mdwn
blob: 5a198b64ea4be35946844555a260a129ecbfce30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
i am working on a project where i need to copy many subsets of files stored in a single annex repo to separate folders outside of the annex repo (each subset to a separate folder).

to select each subset, i'm using `git annex metadata --set <tag>=<value> <path>`.

what i would like to do, ideally, is to leverage each `git annex view <tag>=<value>` invocation to directly check out the view's files to a specific directory outside of the annex repo.

the use case is basically the "Copying objects" strategy of the [syncthing special remote discussion](http://git-annex.branchable.com/todo/syncthing_special_remote/), although rather than having the 'directory' special remote contain files in that remote's specific layout, i would like them to be checked out simply with their original file names.

say i have these files in my main annex repo:

    a.pdf (metadata: topic=haskell)
    b.pdf (metadata: topic=haskell)
    c.pdf (metadata: topic=iojs)
    d.pdf (metadata: topic=python)
    e.pdf (metadata: topic=haskell)

if i issue `git annex view topic=haskell`, i have the files i want in my annex' root:

    a.pdf
    b.pdf
    e.pdf

obviously i could then simply run `rsync --exclude .git -aL --delete . ../other/dir`, which is totally fine, but maybe i'm just blindly missing something obvious and i could simply use something like `git annex --work-tree=../other/dir view topic=haskell` and see `a.pdf`, `b.pdf` and `e.pdf` appear in the target directory (i don't need any metadata in that directory, so only the plain files and no .git folder for a remote is fine).