summaryrefslogtreecommitdiff
path: root/doc/walkthrough
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-09-18 20:56:37 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-09-18 20:56:37 -0400
commit8ea48c3e3976b16ee4588a24fe1524769ef42e56 (patch)
treecc82c76a89a09b7253e1f01bc93d995096710b8c /doc/walkthrough
parent33cd1ffbfe200188a4fc61fd5715e7aa29556d7f (diff)
update docs
Diffstat (limited to 'doc/walkthrough')
-rw-r--r--doc/walkthrough/powerful_file_matching.mdwn36
1 files changed, 36 insertions, 0 deletions
diff --git a/doc/walkthrough/powerful_file_matching.mdwn b/doc/walkthrough/powerful_file_matching.mdwn
new file mode 100644
index 000000000..c0af4615c
--- /dev/null
+++ b/doc/walkthrough/powerful_file_matching.mdwn
@@ -0,0 +1,36 @@
+git-annex has a powerful syntax for making it act on only certian files.
+
+The simplest thing is to exclude some files, using wild cards:
+
+ git annex get --exclude '*.mp3' --exclude '*.ogg'
+
+But you can also exclude files that git-annex's [[location_tracking]]
+information indicates are present in a given repository. For example,
+if you want to populate newarchive with files, but not those already
+on oldarchive, you could do it like this:
+
+ git annex copy --not -in oldarchive --to newarchive
+
+Without the --not, --in makes it act on files that *are* in the specified
+repository. So, to remove files that are on oldarchive:
+
+ git annex drop --in oldarchive
+
+Or maybe you're curious which files have a lot of copies, and then
+also want to know which files have only one copy:
+
+ git annex find --copies 7
+ git annex find --not --copies 2
+
+The above are the simple examples of specifying what files git-annex
+should act on. But you can specify anything you can dream up by combining
+the things above, with --and --or -( and -). Those last two strange-looking
+options are parentheses, for grouping other options. You will probably
+have to escape them from your shell.
+
+Here are the mp3 files that are in either of two repositories, but have
+less than 3 copies:
+
+ git annex find --not --exclude '*.mp3' --and \
+ -\( --in usbdrive --or --in archive -\) --and \
+ --not --copies 3